@iframe-resizer/jquery 6.0.0-beta.1 → 6.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -2
- package/index.cjs.js +9 -15
- package/index.esm.js +9 -15
- package/index.umd.js +2 -2
- package/index.umd.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
This package is part of the __[iframe-resizer](https://iframe-resizer.com)__ library, which automatically resizes the height and width of both same-origin and cross-origin iframes to match their content. It also includes a range of features designed to address common issues associated with using iframes.
|
|
8
8
|
|
|
9
9
|
|
|
10
|
-
__For more information, visit [iframe-resizer.com](https://iframe-resizer.com).__
|
|
10
|
+
__For more information, please visit [iframe-resizer.com](https://iframe-resizer.com).__
|
|
11
11
|
|
|
12
12
|
## Install
|
|
13
13
|
|
|
@@ -25,4 +25,4 @@ yarn add @iframe-resizer/jquery
|
|
|
25
25
|
|
|
26
26
|
---
|
|
27
27
|
|
|
28
|
-
_iframe-resizer version 6.0.0-beta.
|
|
28
|
+
_iframe-resizer version 6.0.0-beta.2 2026-04-08 - 17:04:11.389Z_
|
package/index.cjs.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @preserve
|
|
3
3
|
*
|
|
4
|
-
* @module iframe-resizer/jquery 6.0.0-beta.
|
|
4
|
+
* @module iframe-resizer/jquery 6.0.0-beta.2 (cjs) - 2026-04-08
|
|
5
5
|
*
|
|
6
6
|
* @license GPL-3.0 For use with GPL compliant sites (fully published front & backend source code)
|
|
7
7
|
* Alternatively for commercial use, you can purchase a license from
|
|
@@ -34,7 +34,7 @@ const id = (x) => x;
|
|
|
34
34
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
35
35
|
const esModuleInterop = (mod) =>
|
|
36
36
|
// eslint-disable-next-line no-underscore-dangle
|
|
37
|
-
|
|
37
|
+
mod?.__esModule ? mod.default : mod;
|
|
38
38
|
|
|
39
39
|
/* eslint-disable no-useless-escape */
|
|
40
40
|
/* eslint-disable security/detect-non-literal-regexp */
|
|
@@ -49,7 +49,7 @@ const TAGS = {
|
|
|
49
49
|
};
|
|
50
50
|
const keys = Object.keys(TAGS);
|
|
51
51
|
const tags = new RegExp(`<(${keys.join('|')})>`, 'gi');
|
|
52
|
-
const lookup = (_, tag) =>
|
|
52
|
+
const lookup = (_, tag) => TAGS[tag] ?? '';
|
|
53
53
|
const encode = (s) => s.replace(tags, lookup);
|
|
54
54
|
const filter = (s) => s.replaceAll('<br>', NEW_LINE).replaceAll(/<\/?[^>]+>/gi, '');
|
|
55
55
|
const createFormatAdvise = (formatLogMessage) => (message) => formatLogMessage(isString(message)
|
|
@@ -80,7 +80,7 @@ const advise = (iframeId, ...args) => settings[iframeId]
|
|
|
80
80
|
: queueMicrotask(() => {
|
|
81
81
|
const localFormatAdvise = createFormatAdvise(formatLogMsg(iframeId));
|
|
82
82
|
// eslint-disable-next-line no-console
|
|
83
|
-
console
|
|
83
|
+
console?.warn(...args.map(localFormatAdvise));
|
|
84
84
|
});
|
|
85
85
|
const deprecateAdvise = deprecate(advise);
|
|
86
86
|
const deprecateMethod = deprecateAdvise('Method');
|
|
@@ -88,27 +88,21 @@ const deprecateMethod = deprecateAdvise('Method');
|
|
|
88
88
|
switch (true) {
|
|
89
89
|
case window.jQuery === undefined:
|
|
90
90
|
warn('', 'Unable to bind to jQuery, it is not available.');
|
|
91
|
-
break
|
|
92
|
-
|
|
91
|
+
break;
|
|
93
92
|
case !window.jQuery.fn:
|
|
94
93
|
warn('', 'Unable to bind to jQuery, it is not fully loaded.');
|
|
95
|
-
break
|
|
96
|
-
|
|
94
|
+
break;
|
|
97
95
|
case window.jQuery.fn.iframeResize:
|
|
98
96
|
warn('', 'iframeResize is already assigned to jQuery.fn.');
|
|
99
|
-
break
|
|
100
|
-
|
|
97
|
+
break;
|
|
101
98
|
default:
|
|
102
99
|
window.jQuery.fn.iframeResize = function (options) {
|
|
103
100
|
const connectWithOptions = connectResizer(options);
|
|
104
101
|
const init = (i, el) => connectWithOptions(el);
|
|
105
|
-
|
|
106
|
-
return this.filter('iframe').each(init).end()
|
|
102
|
+
return this.filter('iframe').each(init).end();
|
|
107
103
|
};
|
|
108
|
-
|
|
109
104
|
window.jQuery.fn.iFrameResize = function (options) {
|
|
110
105
|
deprecateMethod('iFrameResize()', 'iframeResize()', '', 'jQuery');
|
|
111
|
-
|
|
112
|
-
return this.iframeResize(options)
|
|
106
|
+
return this.iframeResize(options);
|
|
113
107
|
};
|
|
114
108
|
}
|
package/index.esm.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @preserve
|
|
3
3
|
*
|
|
4
|
-
* @module iframe-resizer/jquery 6.0.0-beta.
|
|
4
|
+
* @module iframe-resizer/jquery 6.0.0-beta.2 (esm) - 2026-04-08
|
|
5
5
|
*
|
|
6
6
|
* @license GPL-3.0 For use with GPL compliant sites (fully published front & backend source code)
|
|
7
7
|
* Alternatively for commercial use, you can purchase a license from
|
|
@@ -32,7 +32,7 @@ const id = (x) => x;
|
|
|
32
32
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
33
33
|
const esModuleInterop = (mod) =>
|
|
34
34
|
// eslint-disable-next-line no-underscore-dangle
|
|
35
|
-
|
|
35
|
+
mod?.__esModule ? mod.default : mod;
|
|
36
36
|
|
|
37
37
|
/* eslint-disable no-useless-escape */
|
|
38
38
|
/* eslint-disable security/detect-non-literal-regexp */
|
|
@@ -47,7 +47,7 @@ const TAGS = {
|
|
|
47
47
|
};
|
|
48
48
|
const keys = Object.keys(TAGS);
|
|
49
49
|
const tags = new RegExp(`<(${keys.join('|')})>`, 'gi');
|
|
50
|
-
const lookup = (_, tag) =>
|
|
50
|
+
const lookup = (_, tag) => TAGS[tag] ?? '';
|
|
51
51
|
const encode = (s) => s.replace(tags, lookup);
|
|
52
52
|
const filter = (s) => s.replaceAll('<br>', NEW_LINE).replaceAll(/<\/?[^>]+>/gi, '');
|
|
53
53
|
const createFormatAdvise = (formatLogMessage) => (message) => formatLogMessage(isString(message)
|
|
@@ -78,7 +78,7 @@ const advise = (iframeId, ...args) => settings[iframeId]
|
|
|
78
78
|
: queueMicrotask(() => {
|
|
79
79
|
const localFormatAdvise = createFormatAdvise(formatLogMsg(iframeId));
|
|
80
80
|
// eslint-disable-next-line no-console
|
|
81
|
-
console
|
|
81
|
+
console?.warn(...args.map(localFormatAdvise));
|
|
82
82
|
});
|
|
83
83
|
const deprecateAdvise = deprecate(advise);
|
|
84
84
|
const deprecateMethod = deprecateAdvise('Method');
|
|
@@ -86,27 +86,21 @@ const deprecateMethod = deprecateAdvise('Method');
|
|
|
86
86
|
switch (true) {
|
|
87
87
|
case window.jQuery === undefined:
|
|
88
88
|
warn('', 'Unable to bind to jQuery, it is not available.');
|
|
89
|
-
break
|
|
90
|
-
|
|
89
|
+
break;
|
|
91
90
|
case !window.jQuery.fn:
|
|
92
91
|
warn('', 'Unable to bind to jQuery, it is not fully loaded.');
|
|
93
|
-
break
|
|
94
|
-
|
|
92
|
+
break;
|
|
95
93
|
case window.jQuery.fn.iframeResize:
|
|
96
94
|
warn('', 'iframeResize is already assigned to jQuery.fn.');
|
|
97
|
-
break
|
|
98
|
-
|
|
95
|
+
break;
|
|
99
96
|
default:
|
|
100
97
|
window.jQuery.fn.iframeResize = function (options) {
|
|
101
98
|
const connectWithOptions = connectResizer(options);
|
|
102
99
|
const init = (i, el) => connectWithOptions(el);
|
|
103
|
-
|
|
104
|
-
return this.filter('iframe').each(init).end()
|
|
100
|
+
return this.filter('iframe').each(init).end();
|
|
105
101
|
};
|
|
106
|
-
|
|
107
102
|
window.jQuery.fn.iFrameResize = function (options) {
|
|
108
103
|
deprecateMethod('iFrameResize()', 'iframeResize()', '', 'jQuery');
|
|
109
|
-
|
|
110
|
-
return this.iframeResize(options)
|
|
104
|
+
return this.iframeResize(options);
|
|
111
105
|
};
|
|
112
106
|
}
|
package/index.umd.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @preserve
|
|
3
3
|
*
|
|
4
|
-
* @module iframe-resizer/jquery 6.0.0-beta.
|
|
4
|
+
* @module iframe-resizer/jquery 6.0.0-beta.2 (umd) - 2026-04-08
|
|
5
5
|
*
|
|
6
6
|
* @license GPL-3.0 For use with GPL compliant sites (fully published front & backend source code)
|
|
7
7
|
* Alternatively for commercial use, you can purchase a license from
|
|
@@ -17,5 +17,5 @@
|
|
|
17
17
|
*/
|
|
18
18
|
|
|
19
19
|
|
|
20
|
-
!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";const e="6.0.0-beta.1",n="iframeResizer",t=":",i="autoResize",o="init",r="iframeReady",a="load",s="message",l="onload",c="pageInfo",u="parentInfo",d="reset",f="resize",p="scroll",m="\n",h="parent",g="string",y="object",v="function",b="auto",w="none",z="both",$="vertical",j="horizontal",k="[iFrameSizer]",M=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),T=Object.freeze({[l]:1,[o]:1,[r]:1}),x="expanded",O="collapsed",S=Object.freeze({[x]:1,[O]:1}),R="Use of the old name will be removed in a future version of <i>iframe-resizer</>.",I=e=>typeof e===y&&null!==e,C=e=>typeof e===g;const E=(e,n)=>Object.hasOwn?Object.hasOwn(e,n):((e,n)=>Object.prototype.hasOwnProperty.call(e,n))(e,n),A="font-weight: normal;",W=A+"font-style: italic;",L="default",F=Object.freeze({assert:!0,error:!0,warn:!0}),N={expand:!1,defaultEvent:void 0,event:void 0,label:"AutoConsoleGroup",showTime:!0},P={profile:0,profileEnd:0,timeStamp:0,trace:0},B=Object.assign(console);const{fromEntries:H,keys:q}=Object,D=e=>[e,B[e]],U=e=>n=>[n,function(t){e[n]=t}],Q=(e,n)=>H(q(e).map(n));const V=!(typeof window>"u"||"function"!=typeof window.matchMedia)&&window.matchMedia("(prefers-color-scheme: dark)").matches,J=V?"color: #A9C7FB;":"color: #135CD2;",Z=V?"color: #E3E3E3;":"color: #1F1F1F;",G={br:"\n",rb:"[31;1m",bb:"[34;1m",b:"[1m",i:"[3m",u:"[4m","/":"[m"},X=Object.keys(G),Y=new RegExp(`<(${X.join("|")})>`,"gi"),_=(e,n)=>{var t;return null!==(t=G[n])&&void 0!==t?t:""},K=e=>n=>e(C(n)?window.chrome?n.replace(Y,_):(e=>e.replaceAll("<br>",m).replaceAll(/<\/?[^>]+>/gi,""))(n):n),ee={},ne=(te=function(e={}){const n={},t={},i=[],o={...N,expand:!e.collapsed||N.expanded,...e};let r="";function a(){i.length=0,r=""}function s(){delete o.event,a()}const l=()=>!!i.some(([e])=>e in F)||!!o.expand;function c(){if(0!==i.length){B[l()?"group":"groupCollapsed"](`%c${o.label}%c ${(e=>{const n=e.event||e.defaultEvent;return n?`${n}`:""})(o)} %c${o.showTime?r:""}`,A,"font-weight: bold;",W);for(const[e,...n]of i)B.assert(e in B,`Unknown console method: ${e}`),e in B&&B[e](...n);B.groupEnd(),s()}else s()}function u(){""===r&&(r=function(){const e=new Date,n=(n,t)=>e[n]().toString().padStart(t,"0");return`@ ${n("getHours",2)}:${n("getMinutes",2)}:${n("getSeconds",2)}.${n("getMilliseconds",3)}`}(),queueMicrotask(()=>queueMicrotask(c)))}function d(e,...n){0===i.length&&u(),i.push([e,...n])}function f(e=L,...t){n[e]?d("log",`${e}: ${performance.now()-n[e]} ms`,...t):d("timeLog",e,...t)}return{...Q(o,U(o)),...Q(console,e=>[e,(...n)=>d(e,...n)]),...Q(P,D),assert:function(e,...n){!0!==e&&d("assert",e,...n)},count:function(e=L){t[e]?t[e]+=1:t[e]=1,d("log",`${e}: ${t[e]}`)},countReset:function(e=L){delete t[e]},endAutoGroup:c,errorBoundary:e=>(...n)=>{let t;try{t=e(...n)}catch(e){if(!Error.prototype.isPrototypeOf(e))throw e;d("error",e),c()}return t},event:function(e){u(),o.event=e},purge:a,time:function(e=L){u(),n[e]=performance.now()},timeEnd:function(e=L){f(e),delete n[e]},timeLog:f,touch:u}},(null==te?void 0:te.__esModule)?te.default:te);var te;let ie=!0;const oe=ne({expand:!1,label:h}),re=e=>window.top===window.self?`parent(${e})`:`nested parent(${e})`;const ae=e=>(n,...t)=>ee[n]?ee[n].console[e](...t):oe[e](...t),se=e=>(n,...t)=>!0===(e=>ee[e]?ee[e].log:ie)(n)?ae(e)(n,...t):null,le=se("log"),ce=le,ue=se("debug"),de=ae("warn"),fe=ae("error"),pe=ae("event"),me=ae("purge"),he=ae("endAutoGroup"),ge=ae("errorBoundary");const ye=K(e=>e),ve=(e,...t)=>ee[e]?ee[e].console.warn(...t.map(ye)):queueMicrotask(()=>{const i=K((e=>(...t)=>[`${n}(${e})`,...t].join(" "))(e));null===console||void 0===console||console.warn(...t.map(i))}),be=(e=>(n,t="renamed to")=>(i,o,r="",a="")=>e(a,`<rb>Deprecated ${n}(${i.replace("()","")})</>\n\nThe <b>${i}</> ${n.toLowerCase()} has been ${t} <b>${o}</>. ${r}Use of the old ${n.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`))(ve),we=be("Method"),ze=be("Option"),$e=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:$,firstRun:!0,inPageLinks:!1,heightCalculationMethod:b,id:"iFrameResizer",log:!1,logExpand:!1,license:void 0,mouseEvents:!0,offsetHeight:null,offsetWidth:null,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,waitForLoad:!1,warningTimeout:5e3,widthCalculationMethod:b,onBeforeClose:()=>!0,onAfterClose(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{typeof ee[e.id].onInit===v&&(ze("init()","onReady()","",e.id),ee[e.id].onInit(e))},onResized(){},onScroll:()=>!0});let je=0;function ke(e,n){let{id:t}=e;if(t&&!C(t))throw new TypeError("Invalid id for iFrame. Expected String");return t&&""!==t||(t=function(e){const n=(null==e?void 0:e.id)||$e.id+je++;return null===document.getElementById(n)?n:`${n}${je++}`}(n),e.id=t,pe(t,"assignId"),le(t,`Added missing iframe ID: ${t} (${e.src})`)),t}const Me=(e,n,t,i)=>e.addEventListener(n,t,i||!1),Te=(e,n,t)=>e.removeEventListener(n,t,!1);function xe(e,n,i){function o(o){const r=e in T?(e=>e.split(t).filter((e,n)=>19!==n).join(t))(n):n;ce(i,o,J,Z,J),ce(i,`Message data: %c${r}`,J)}const{iframe:r,postMessageTarget:a,sameOrigin:s,targetOrigin:l}=ee[i];if(s)try{return r.contentWindow.iframeChildListener(k+n),void o(`Sending message to iframe %c${i}%c via same origin%c`)}catch(n){e in T?(ee[i].sameOrigin=!1,le(i,"New iframe does not support same origin")):de(i,"Same origin messaging failed, falling back to postMessage")}o(`Sending message to iframe: %c${i}%c targetOrigin: %c${l.join(", ")}`);for(const e of l)a.postMessage(k+n,e)}function Oe(e,n,t){var i;pe(t,e),(null===(i=ee[t])||void 0===i?void 0:i.postMessageTarget)?xe(e,n,t):de(t,"Iframe not found")}function Se(){!0!==document.hidden&&((e,n)=>{Object.values(ee).filter(({autoResize:e,firstRun:n})=>e&&!n).forEach(({iframe:t})=>Oe(e,n,t.id))})("tabVisible",f)}function Re(e){if("border-box"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function Ie(e){if("border-box"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}const Ce={true:1,false:1,undefined:1};function Ee(e){const{id:n,msg:t,iframe:i}=e,o=function(e){if(!I(e))return!1;try{return"IFRAME"===e.tagName||e instanceof HTMLIFrameElement}catch(e){return!1}}(i);return o||(le(n,`Received: %c${t}`,J),de(n,"The target iframe was not found.")),o}function Ae(e,n,t){if(!ee[e])return null;const i=ee[e][n];if(typeof i!==v)throw new TypeError(`${n} on iframe[${e}] is not a function`);if("onBeforeClose"!==n&&"onScroll"!==n)return((e,...n)=>setTimeout(()=>e(...n),0))(i,t);try{return i(t)}catch(t){return console.error(t),de(e,`Error in ${n} callback`),null}}function We(e,n){const{lastMessage:i}=ee[e];return i.slice(i.indexOf(t)+7+n)}function Le(e,n){const{id:i,iframe:o,height:r,type:a,width:s}=n;let l={x:0,y:0};if(0===s&&0===r){const e=We(i,9).split(t);l={x:e[1],y:e[0]}}else l={x:s,y:r};Ae(i,e,{iframe:o,screenX:Number(l.x),screenY:Number(l.y),type:a})}const Fe={position:null,version:e};function Ne(){Fe.position=null}function Pe(e){return null===Fe.position&&(Fe.position={x:window.scrollX,y:window.scrollY}),le(e,`Get page position: %c${Fe.position.x}%c, %c${Fe.position.y}`,J,Z,J),Fe.position}function Be(e){null!==Fe.position&&(window.scrollTo(Fe.position.x,Fe.position.y),ce(e,`Set page position: %c${Fe.position.x}%c, %c${Fe.position.y}`,J,Z,J),Ne())}function He(e,n){const{id:t}=n,i=`${n[e]}px`;ee[t].iframe.style[e]=i,ce(t,`Set ${e}: %c${i}`,J)}function qe(e){const{id:n}=e,{sizeHeight:t,sizeWidth:i}=ee[n];t&&He("height",e),i&&He("width",e)}function De(e){const{id:n}=e;qe(e),Be(n),Ae(n,"onResized",e)}function Ue(e){const{id:n}=e;le(n,"Disconnected from iframe"),delete ee[n],delete e.iframeResizer}function Qe(e){const{id:n}=e;if(!1!==Ae(n,"onBeforeClose",n)){le(n,`Removing iFrame: %c${n}`,J);try{e.parentNode&&e.remove()}catch(e){de(n,e)}Ae(n,"onAfterClose",n),Ue(e)}else le(n,"Close iframe cancelled by onBeforeClose")}function Ve(e){const{id:n,type:t}=e;le(n,"Size reset requested by "+(t===o?"parent page":"child page")),Pe(n),qe(e),Oe(d,d,n)}const Je=(e,n)=>{const t={};return(i,o)=>{const{iframe:r}=ee[o];var a,s;a=function(){Oe(`${i} (${e})`,`${e}:${n(r)}`,o)},t[s=o]||(a(),t[s]=requestAnimationFrame(()=>{t[s]=null}))}},Ze=e=>n=>{e in ee[n]&&(ee[n][e](),delete ee[n][e])},Ge=(e,n)=>t=>{let i=!1;const o=n=>()=>{ee[t]?i&&i!==n||(e(n,t),i=n,requestAnimationFrame(()=>{i=!1})):d()},r=o(p),s=o("resize window"),l=new ResizeObserver(o("pageObserver")),c=new ResizeObserver(o("iframeObserver"));function u(e,i){le(t,`${e}listeners for send${n}`),i(window,p,r),i(window,f,s)}function d(){pe(t,`stop${n}`),u("Remove ",Te),l.disconnect(),c.disconnect(),ee[t]&&Te(ee[t].iframe,a,d)}ee[t]&&(ee[t][`stop${n}`]=d,Me(ee[t].iframe,a,d),u("Add ",Me),l.observe(document.body),c.observe(ee[t].iframe))};const Xe=Ge(Je(c,function(e){const n=document.body.getBoundingClientRect(),t=e.getBoundingClientRect(),{scrollY:i,scrollX:o,innerHeight:r,innerWidth:a}=window,{clientHeight:s,clientWidth:l}=document.documentElement;return JSON.stringify({iframeHeight:t.height,iframeWidth:t.width,clientHeight:Math.max(s,r||0),clientWidth:Math.max(l,a||0),offsetTop:Math.trunc(t.top-n.top),offsetLeft:Math.trunc(t.left-n.left),scrollTop:i,scrollLeft:o,documentHeight:s,documentWidth:l,windowHeight:r,windowWidth:a})}),"PageInfo"),Ye=Ze("stopPageInfo");const _e=Ge(Je(u,function(e){const{scrollWidth:n,scrollHeight:t}=document.documentElement,{width:i,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}=window.visualViewport;return JSON.stringify({iframe:e.getBoundingClientRect(),document:{scrollWidth:n,scrollHeight:t},viewport:{width:i,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:l,scale:c}})}),"ParentInfo"),Ke=Ze("stopParentInfo");function en(e){const n=e.getBoundingClientRect(),t=Pe(e.id);return{x:Number(n.left)+Number(t.x),y:Number(n.top)+Number(t.y)}}function nn(e){var n;const{x:t,y:i}=Fe.position;!1!==Ae(e,"onScroll",{iframe:null===(n=ee[e])||void 0===n?void 0:n.iframe,top:i,left:t,x:t,y:i})?Be(e):Ne()}const tn=e=>n=>{const{id:t,iframe:i,height:o,width:r}=n;const a=e?en(i):{x:0,y:0},s=(e=>({x:r+e.x,y:o+e.y}))(a),l=window.parentIframe||window.parentIFrame;ce(t,`Reposition requested (offset x:%c${a.x}%c y:%c${a.y})`,J,Z,J),l?function(n,t){n["scrollTo"+(e?"Offset":"")](t.x,t.y)}(l,s):function(e){var n;n=e,Fe.position=n,nn(t)}(s)},on=tn(!1),rn=tn(!0);function an(e,n){const t=n.split("#")[1]||"",i=decodeURIComponent(t),o=document.getElementById(i)||document.getElementsByName(i)[0];o?function(e,n,t){const{x:i,y:o}=en(t);ce(e,`Moving to in page link: %c#${n}`,J),Fe.position={x:i,y:o},nn(e),window.location.hash=n}(e,t,o):window.top!==window.self?function(e,n){const t=window.parentIframe||window.parentIFrame;t?t.moveToAnchor(n):le(e,`In page link #${n} not found`)}(e,t):le(e,`In page link #${t} not found`)}function sn(e){var n,t;const i=null===(t=null===(n=ee[e])||void 0===n?void 0:n.iframe)||void 0===t?void 0:t.title;return""===i||void 0===i}const ln=e=>{if(!e)return"";let n=-559038744,t=1103547984;for(let i,o=0;o<e.length;o++)i=e.codePointAt(o),n=Math.imul(n^i,2246822519),t=Math.imul(t^i,3266489917);return n^=Math.imul(n^t>>>15,1935289751),t^=Math.imul(t^n>>>15,3405138345),n^=t>>>16,t^=n>>>16,(2097152*(t>>>0)+(n>>>11)).toString(36)},cn=e=>e.replace(/[A-Za-z]/g,e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26)),un=new Date,dn=e=>new Set(Array.from({length:9},e)),fn=["spjluzl","rlf","clyzpvu","rlf2","nlaMbssFlhy"],pn=["<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.","<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> vm <p>pmyhtl-ylzpgly</> fvb jhu bzl aol mpyza 11 johyhjalyz vm fvb spjlujl rlf av nla h 60% kpzjvbua ha <ii>oaaw://pmyhtl-ylzpgly.jvt</>.","<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Av bwnyhkl av clyzpvu 6 vm<p>pmyhtl-ylzpgly</> wslhzl kvdusvhk aol shalza rlf myvt sltvu-zxbllgf.jvt.","<yi>VLT rlf lewpylk</><iy><iy>Wslhzl kvdusvhk aol shalza rlf myvt sltvu-zxbllgf.jvt."],mn=[(hn=["NWSc3","zvsv","wyv","ibzpulzz","VLT"])[0],...hn.slice(1).map(e=>`${e} - lewpylk`),`${hn[4]} - lewpylk`,...hn.slice(1)];var hn;const gn=Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5","1foobarqaz","2b5sdlfhbev","zo4ui3arjo","oclbb4thgl","igb1wzrjqr"].map((e,n)=>[e,Math.max(0,n-1)])),yn=un[cn(fn[4])](),vn=dn((e,n)=>ln(`${yn+n}`)),bn=dn((e,n)=>ln(""+(yn-++n))),wn=e=>cn(pn[e]),zn=e=>{const n=e[cn(fn[0])]||e[cn(fn[1])]||e[cn(fn[2])]||e[cn(fn[3])];if(!n)return-1;const t=n.split("-");let i=function(e="",n=""){let t=-2;const i=ln(cn(e));return i in gn&&(t=gn[i]),9===t?(o=n,vn.has(o)?9:bn.has(o)?5:-2):t;var o}(...t);return 0===i||(e=>e[2]===ln(e[0]+e[1]))(t)||(i=-2),i};let $n=!1,jn=!1;function kn(n,t=-3){if($n)return;const i=Math.max(ee[n].mode,t);if(i>ee[n].mode&&(ee[n].mode=i),i<0)throw me(n),ee[n].vAdvised||ve(n||"Parent",`${wn(i+2)}${wn(2)}`),ee[n].vAdvised=!0,wn(i+2).replace(/<\/?[a-z][^>]*>|<\/>/gi,"");switch(i>5&&jn||function(e,n){queueMicrotask(()=>console.info(`%ciframe-resizer ${e}`,ie||n<1?"font-weight: bold;":A))}(`v${e} (${(e=>cn(mn[e]))(i)})`,i),i){case 1:case 2:case 3:ve(n,wn(6));break;case 4:ve(n,wn(7));break;case 5:ve(n,wn(8));break;default:i<1&&ve("Parent",wn(3))}$n=!0}function Mn(n){var t;const{height:r,id:a,iframe:l,mode:f,message:p,type:m,width:h}=n,{lastMessage:g}=ee[a];switch((null===(t=ee[a])||void 0===t?void 0:t.firstRun)&&function(e,n){ee[e]&&(le(e,`First run for ${e}`),kn(e,void 0===n?void 0:Number(n)),ee[e].firstRun=!1)}(a,f),le(a,`Received: %c${g}`,J),m){case i:ee[a].autoResize=JSON.parse(We(a,9));break;case"beforeUnload":ce(a,"Ready state reset"),ee[a].initialised=!1;break;case"close":Qe(l);break;case"inPageLink":an(a,We(a,9));break;case o:De(n),function(e){var n,t,i;try{ee[e].sameOrigin=!!(null===(i=null===(t=null===(n=ee[e])||void 0===n?void 0:n.iframe)||void 0===t?void 0:t.contentWindow)||void 0===i?void 0:i.iframeChildListener)}catch(n){ee[e].sameOrigin=!1}le(e,`sameOrigin: %c${ee[e].sameOrigin}`,J)}(a),function(n,t){t!==e&&(void 0!==t?le(n,`Version mismatch (Child: %c${t}%c !== Parent: %c${e})`,J,Z,J):ve(n,"<rb>Legacy version detected in iframe</>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use <b>@iframe-resizer/child</>.\n\nSee <u>https://iframe-resizer.com/setup/#child-page-setup</> for more details.\n"))}(a,p),ee[a].initialised=!0,Ae(a,"onReady",l);break;case s:!function(e,n){const{id:t,iframe:i}=e;le(t,`onMessage passed: {iframe: %c${t}%c, message: %c${n}%c}`,J,Z,J,Z),Ae(t,"onMessage",{iframe:i,message:JSON.parse(n)})}(n,We(a,6));break;case"mouseenter":Le("onMouseEnter",n);break;case"mouseleave":Le("onMouseLeave",n);break;case c:Xe(a);break;case u:_e(a);break;case"pageInfoStop":Ye(a);break;case"parentInfoStop":Ke(a);break;case d:Ve(n);break;case"scrollBy":!function(e){const{id:n,height:t,width:i}=e,o=window.parentIframe||window.parentIFrame||window;ce(n,`scrollBy: x: %c${i}%c y: %c${t}`,J,Z,J),o.scrollBy(i,t)}(n);break;case"scrollTo":on(n);break;case"scrollToOffset":rn(n);break;case"title":!function(e,n){var t;(null===(t=ee[e])||void 0===t?void 0:t.syncTitle)&&(ee[e].iframe.title=n,ce(e,`Set iframe title attribute: %c${n}`,J))}(a,p);break;default:if(0===h&&0===r)return void de(a,`Unsupported message received (${m}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===h||0===r)return void le(a,"Ignoring message with 0 height or width");if(document.hidden)return void le(a,"Page hidden - ignored resize request");De(n)}}function Tn(e){const n=e.data;if("[iFrameResizerChild]Ready"===n)return t=e.source,void Object.values(ee).forEach((e=>({initChild:n,postMessageTarget:t})=>{e===t&&n()})(t));var t,i;if(k!==`${i=n}`.slice(0,13)||!(i.slice(13).split(":")[0]in ee)){if(typeof n!==g)return;return pe(h,"ignoredMessage"),void ue(h,n)}const o=function(e){var n;const t=e.slice(13).split(":"),i=t[1]?Number(t[1]):0,o=null===(n=ee[t[0]])||void 0===n?void 0:n.iframe,r=getComputedStyle(o),a={iframe:o,id:t[0],height:i+Re(r)+Ie(r),width:Number(t[2]),type:t[3],msg:t[4],message:t[4]};return t[5]&&(a.mode=t[5]),a}(n),{id:r,type:a}=o;switch(pe(r,a),!0){case!ee[r]:throw new Error(`${a} No settings for ${r}. Message was: ${n}`);case!Ee(o):case function(e){const{id:n,type:t}=e,i=t in Ce;return i&&le(n,"Ignoring init message from meta parent page"),i}(o):case!function(e,n){var t;const{id:i}=e,{data:o,origin:r}=n;if("sameOrigin"in n&&n.sameOrigin)return!0;const a=null===(t=ee[i])||void 0===t?void 0:t.checkOrigin;if(a&&"null"!=`${r}`&&!(a.constructor===Array?function(){le(i,`Checking connection is from allowed list of origins: %c${a}`,J);for(const e of a)if(e===r)return!0;return!1}():function(){var e;const n=null===(e=ee[i])||void 0===e?void 0:e.remoteHost;return le(i,`Checking connection is from: %c${n}`,J),r===n}()))throw new Error(`Unexpected message received from: ${r} for ${i}. Message was: ${o}. This error can be disabled by setting the checkOrigin: false option or by providing an array of trusted domains.`);return!0}(o,e):return;default:ee[r].lastMessage=e.data,ge(r,Mn)(o)}}const xn=(e=>{let n=!1;return function(...t){return n?void 0:(n=!0,e.apply(this,t))}})(()=>{Me(window,s,Tn),Me(document,"visibilitychange",Se),window.iframeParentListener=e=>setTimeout(()=>Tn({data:e,sameOrigin:!0}))}),On={};const Sn=`<rb>Deprecated Method Name</>\n\nThe <b>removeListeners()</> method has been renamed to <b>disconnect()</>. ${R}`;function Rn(e){if(ee[e]){const{iframe:n}=ee[e],t={close:Qe.bind(null,n),disconnect:Ue.bind(null,n),moveToAnchor(n){((e,n,t)=>{if(typeof e!==n)throw new TypeError(`${t} is not a ${i=n,i.charAt(0).toUpperCase()+i.slice(1)}`);var i})(n,g,"moveToAnchor(anchor) anchor"),Oe("Move to anchor",`moveToAnchor:${n}`,e)},removeListeners(){ve(e,Sn),this.disconnect()},resize(){ve(e,"<rb>Deprecated Method</>\n\nUse of the <b>resize()</> method from the parent page is deprecated and will be removed in a future version of <i>iframe-resizer</>. As there are no longer any edge cases that require triggering a resize from the parent page, it is recommended to remove this method from your code."),Oe("Window resize",f,e)},sendMessage(n){n=JSON.stringify(n),Oe(s,`${s}:${n}`,e)}};n.iframeResizer=t,n.iFrameResizer=t}}const In="8",Cn="32",En="child",An=!0;function Wn(e,n){const{checkOrigin:t,iframe:{src:i,sandbox:o},initialisedFirstPage:r,waitForLoad:a}=n[e],s=(e=>{try{return new URL(e).origin}catch(e){return null}})(i);pe(e,"noResponse"),ve(e,`<rb>No response from iframe</>\n\nThe iframe (<i>${e}</>) has not responded within ${n[e].warningTimeout/1e3} seconds. Check <b>@iframe-resizer/child</> package has been loaded in the iframe.\n${t&&s?`\nThe <b>checkOrigin</> option is currently enabled. If the iframe redirects away from <i>${s}</>, then the connection to the iframe may be blocked by the browser. To disable this option, set <b>checkOrigin</> to <bb>false</> or an array of allowed origins. See <u>https://iframe-resizer.com/checkorigin</> for more information.\n`:""}${a&&!r?"\nThe <b>waitForLoad</> option is currently set to <bb>true</>. If the iframe loads before <i>iframe-resizer</> runs, this option will prevent <i>iframe-resizer</> initialising. To disable this option, set <b>waitForLoad</> to <bb>false</>.\n":""}${(e=>typeof e===y&&e.length>0&&!(e.contains("allow-scripts")&&e.contains("allow-same-origin")))(o)?"\nThe iframe has the <b>sandbox</> attribute, please ensure it contains both the <bb>allow-same-origin</> and <bb>allow-scripts</> values.\n":""}\nThis message can be ignored if everything is working, or you can set the <b>warningTimeout</> option to a higher value or zero to suppress this warning.\n`)}function Ln(e,n){const t=t=>()=>{if(!ee[e])return;const{firstRun:i,iframe:r}=ee[e];Oe(t,n,e),(e=>e===o)(t)&&(e=>"lazy"===e.loading)(r)||function(e,n){const{msgTimeout:t,warningTimeout:i}=n[e];i&&(t&&clearTimeout(t),n[e].msgTimeout=setTimeout(function(){if(void 0===n[e])return;const{initialised:t,loadErrorShown:i}=n[e];n[e].msgTimeout=void 0,t?n[e].initialisedFirstPage=!0:i||(n[e].loadErrorShown=!0,Wn(e,n))},i))}(e,ee),i||function(e){var n;(null===(n=ee[e])||void 0===n?void 0:n.heightCalculationMethod)in M&&Ve({id:e,iframe:ee[e].iframe,height:1,width:1,type:o})}(e)},{iframe:i}=ee[e];ee[e].initChild=t(r),function(e,n){Me(e,a,()=>setTimeout(n,1))}(i,t(l)),function(e,n){const{iframe:t,waitForLoad:i}=ee[e];!0!==i&&((e=>{const{src:n,srcdoc:t}=e;return!t&&(null==n||""===n||"about:blank"===n)})(t)?setTimeout(()=>{pe(e,"noContent"),ce(e,"No content detected in the iframe, delaying initialisation")}):setTimeout(n))}(e,t(o))}const Fn=e=>""===e||null!==e.match(/^(about:blank|javascript:|file:\/\/)/)?"*":e;function Nn(e,n,t){E(ee[e],n)&&(ve(e,`<rb>Deprecated option</>\n\nThe <b>${n}</> option has been renamed to <b>${t}</>. ${R}`),ee[e][t]=ee[e][n],delete ee[e][n])}const Pn=e=>E(e,"onMouseEnter")||E(e,"onMouseLeave");function Bn(e,n){const{id:t}=e;ee[t]=Object.assign(Object.assign(Object.assign(Object.assign(Object.assign({},ee[t]),{iframe:e,remoteHost:null==e?void 0:e.src.split("/").slice(0,3).join("/")}),$e),function(e,n){return n?(("sizeWidth"in n||"sizeHeight"in n||i in n)&&ve(e,`<rb>Deprecated Option</>\n\nThe <b>sizeWidth</>, <b>sizeHeight</> and <b>autoResize</> options have been replaced with new <b>direction</> option which expects values of <bb>${$}</>, <bb>${j}</>, <bb>${z}</> or <bb>${w}</>.\n`),n):{}}(t,n)),{mouseEvents:Pn(n),mode:zn(n),syncTitle:sn(t)}),function(e){Nn(e,"offset","offsetSize"),Nn(e,"onClose","onBeforeClose"),Nn(e,"onClosed","onAfterClose")}(t),function(e){const{direction:n}=ee[e];switch(n){case $:break;case j:ee[e].sizeHeight=!1;case z:ee[e].sizeWidth=!0;break;case w:ee[e].sizeWidth=!1,ee[e].sizeHeight=!1,ee[e].autoResize=!1;break;default:throw new TypeError(`Direction value of "${n}" is not valid`)}le(e,`direction: %c${n}`,J)}(t),function(e,{offset:n,offsetSize:t}){const i=t||n;i&&(ee[e].direction===$?(ee[e].offsetHeight=i,le(e,`Offset height: %c${i}`,J)):(ee[e].offsetWidth=i,le(e,`Offset width: %c${i}`,J)))}(t,n),function(e){ee[e].warningTimeout||ce(e,"warningTimeout:%c disabled",J)}(t),function(e){const{id:n}=e;null===ee[n].postMessageTarget&&(ee[n].postMessageTarget=e.contentWindow)}(e),function(e){const{checkOrigin:n,remoteHost:t}=ee[e];Array.isArray(n)&&0===n.length&&de(e,"checkOrigin is an empty array — no messages will be sent to the iframe"),ee[e].targetOrigin=Array.isArray(n)?n.map(Fn):[!1===n?"*":Fn(t)]}(t)}function Hn(e,n,i){Bn(n,i),le(e,`src: %c${n.srcdoc||n.src}`,J),function(e){if($n)return;const{mode:n}=ee[e];n>5&&kn(e,n)}(e),function(e){var n,t,i,o;const{id:r}=e;switch(le(r,`Iframe scrolling ${(null===(n=ee[r])||void 0===n?void 0:n.scrolling)?"enabled":"disabled"} for ${r}`),e.style.overflow=!1===(null===(t=ee[r])||void 0===t?void 0:t.scrolling)?"hidden":b,null===(i=ee[r])||void 0===i?void 0:i.scrolling){case"omit":break;case!0:e.scrolling="yes";break;case!1:e.scrolling="no";break;default:e.scrolling=(null===(o=ee[r])||void 0===o?void 0:o.scrolling)||"no"}}(n),function(e){const{bodyMargin:n}=ee[e];"number"!=typeof n&&"0"!==n||(ee[e].bodyMargin=`${n}px`)}(e),Ln(e,function(e){const{autoResize:n,bodyBackground:i,bodyMargin:o,bodyPadding:r,heightCalculationMethod:a,inPageLinks:s,license:l,log:c,logExpand:u,mouseEvents:d,offsetHeight:f,offsetWidth:p,mode:m,sizeHeight:h,sizeWidth:g,tolerance:y,widthCalculationMethod:v}=ee[e];return[e,In,g,c,Cn,An,n,o,a,i,r,y,s,En,v,d,f,p,h,l,Fe.version,m,"",u].join(t)}(e)),Rn(e),le(e,"Setup complete")}function qn(e,n){const{id:t}=e;pe(t,"setup"),function(e){if(!0===On[e])return!1;const n=document.querySelectorAll(`iframe#${CSS.escape(e)}`);if(n.length<=1)return!0;On[e]=!0;const t=Array.from(n).flatMap(e=>[m,e,m]);return ve(e,`<rb>Duplicate ID attributes detected</>\n\nThe <b>${e}</> ID is not unique. Having multiple iframes on the same page with the same ID causes problems with communication between the iframe and parent page. Please ensure that the ID of each iframe has a unique value.\n\nFound <bb>${n.length}</> iframes with the <b>${e}</> ID:`,...t,m),!1}(t)&&Hn(t,e,n),he(t)}function Dn(e,n){0===n.log?n.log=!1:1===n.log?n.log=O:2===n.log&&(n.log=x);const t=E(n,"log"),i=C(n.log),o=t?!!i||n.log:$e.log;E(n,"logExpand")||(n.logExpand=t&&i?n.log===x:$e.logExpand),function(e){-1===(null==e?void 0:e.log)&&(e.log=!1,jn=!0)}(n),function({enabled:e,expand:n,iframeId:t}){const i=ne({expand:n,label:re(t)});ie=e,ee[t]||(ee[t]={console:i})}({enabled:o,expand:n.logExpand,iframeId:e}),i&&!(n.log in S)&&fe(e,`Invalid value for options.log: Accepted values are "${x}" and "${O}"`),n.log=o}function Un(e){if(!I(e))throw new TypeError("Options is not an object");return xn(),function(e){const{search:n}=window.location;if(n.includes("ifrlog"))switch(new URLSearchParams(n).get("ifrlog")){case String(0):e.log=!1;break;case x:case String(2):e.log=x;break;case O:case String(1):default:e.log=O}}(e),t=>{const i=ke(t,e);return n in t?(pe(i,"alreadySetup"),de(i,`Ignored iframe (${i}), already setup.`)):(Dn(i,e),ge(i,qn)(t,e)),null==t?void 0:t.iframeResizer}}switch(!0){case void 0===window.jQuery:de("","Unable to bind to jQuery, it is not available.");break;case!window.jQuery.fn:de("","Unable to bind to jQuery, it is not fully loaded.");break;case window.jQuery.fn.iframeResize:de("","iframeResize is already assigned to jQuery.fn.");break;default:window.jQuery.fn.iframeResize=function(e){const n=Un(e);return this.filter("iframe").each((e,t)=>n(t)).end()},window.jQuery.fn.iFrameResize=function(e){return we("iFrameResize()","iframeResize()","","jQuery"),this.iframeResize(e)}}});
|
|
20
|
+
!function(e){"function"==typeof define&&define.amd?define(e):e()}(function(){"use strict";const e="6.0.0-beta.2",t="iframeResizer",n=":",i="autoResize",o="init",r="iframeReady",a="load",s="message",l="onload",c="pageInfo",u="parentInfo",f="reset",d="resize",p="scroll",h="\n",m="parent",y="string",g="object",b="function",v="auto",w="none",z="both",$="vertical",j="horizontal",k="[iFrameSizer]",M=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),T=Object.freeze({[l]:1,[o]:1,[r]:1}),x="expanded",S="collapsed",O=Object.freeze({[x]:1,[S]:1}),R="Use of the old name will be removed in a future version of <i>iframe-resizer</>.",I=e=>typeof e===g&&null!==e,C=e=>typeof e===y;const E=(e,t)=>Object.hasOwn?Object.hasOwn(e,t):((e,t)=>Object.prototype.hasOwnProperty.call(e,t))(e,t),A="font-weight: normal;",W=A+"font-style: italic;",L="default",F=Object.freeze({assert:!0,error:!0,warn:!0}),P={expand:!1,defaultEvent:void 0,event:void 0,label:"AutoConsoleGroup",showTime:!0},N={profile:0,profileEnd:0,timeStamp:0,trace:0},B=Object.assign(console);const{fromEntries:H,keys:q}=Object,D=e=>[e,B[e]],U=e=>t=>[t,function(n){e[t]=n}],Q=(e,t)=>H(q(e).map(t));const V=!(typeof window>"u"||"function"!=typeof window.matchMedia)&&window.matchMedia("(prefers-color-scheme: dark)").matches,J=V?"color: #A9C7FB;":"color: #135CD2;",Z=V?"color: #E3E3E3;":"color: #1F1F1F;",G={br:"\n",rb:"[31;1m",bb:"[34;1m",b:"[1m",i:"[3m",u:"[4m","/":"[m"},X=Object.keys(G),Y=new RegExp(`<(${X.join("|")})>`,"gi"),_=(e,t)=>G[t]??"",K=e=>t=>e(C(t)?window.chrome?t.replace(Y,_):(e=>e.replaceAll("<br>",h).replaceAll(/<\/?[^>]+>/gi,""))(t):t),ee={},te=(ne=function(e={}){const t={},n={},i=[],o={...P,expand:!e.collapsed||P.expanded,...e};let r="";function a(){i.length=0,r=""}function s(){delete o.event,a()}const l=()=>!!i.some(([e])=>e in F)||!!o.expand;function c(){if(0!==i.length){B[l()?"group":"groupCollapsed"](`%c${o.label}%c ${(e=>{const t=e.event||e.defaultEvent;return t?`${t}`:""})(o)} %c${o.showTime?r:""}`,A,"font-weight: bold;",W);for(const[e,...t]of i)B.assert(e in B,`Unknown console method: ${e}`),e in B&&B[e](...t);B.groupEnd(),s()}else s()}function u(){""===r&&(r=function(){const e=new Date,t=(t,n)=>e[t]().toString().padStart(n,"0");return`@ ${t("getHours",2)}:${t("getMinutes",2)}:${t("getSeconds",2)}.${t("getMilliseconds",3)}`}(),queueMicrotask(()=>queueMicrotask(c)))}function f(e,...t){0===i.length&&u(),i.push([e,...t])}function d(e=L,...n){t[e]?f("log",`${e}: ${performance.now()-t[e]} ms`,...n):f("timeLog",e,...n)}return{...Q(o,U(o)),...Q(console,e=>[e,(...t)=>f(e,...t)]),...Q(N,D),assert:function(e,...t){!0!==e&&f("assert",e,...t)},count:function(e=L){n[e]?n[e]+=1:n[e]=1,f("log",`${e}: ${n[e]}`)},countReset:function(e=L){delete n[e]},endAutoGroup:c,errorBoundary:e=>(...t)=>{let n;try{n=e(...t)}catch(e){if(!Error.prototype.isPrototypeOf(e))throw e;f("error",e),c()}return n},event:function(e){u(),o.event=e},purge:a,time:function(e=L){u(),t[e]=performance.now()},timeEnd:function(e=L){d(e),delete t[e]},timeLog:d,touch:u}},ne?.__esModule?ne.default:ne);var ne;let ie=!0;const oe=te({expand:!1,label:m}),re=e=>window.top===window.self?`parent(${e})`:`nested parent(${e})`;const ae=e=>(t,...n)=>ee[t]?ee[t].console[e](...n):oe[e](...n),se=e=>(t,...n)=>!0===(e=>ee[e]?ee[e].log:ie)(t)?ae(e)(t,...n):null,le=se("log"),ce=le,ue=se("debug"),fe=ae("warn"),de=ae("error"),pe=ae("event"),he=ae("purge"),me=ae("endAutoGroup"),ye=ae("errorBoundary");const ge=K(e=>e),be=(e,...n)=>ee[e]?ee[e].console.warn(...n.map(ge)):queueMicrotask(()=>{const i=K((e=>(...n)=>[`${t}(${e})`,...n].join(" "))(e));console?.warn(...n.map(i))}),ve=(e=>(t,n="renamed to")=>(i,o,r="",a="")=>e(a,`<rb>Deprecated ${t}(${i.replace("()","")})</>\n\nThe <b>${i}</> ${t.toLowerCase()} has been ${n} <b>${o}</>. ${r}Use of the old ${t.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`))(be),we=ve("Method"),ze=ve("Option"),$e=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:$,firstRun:!0,inPageLinks:!1,heightCalculationMethod:v,id:"iFrameResizer",log:!1,logExpand:!1,license:void 0,mouseEvents:!0,offsetHeight:null,offsetWidth:null,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,tolerance:0,waitForLoad:!1,warningTimeout:5e3,widthCalculationMethod:v,onBeforeClose:()=>!0,onAfterClose(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{typeof ee[e.id].onInit===b&&(ze("init()","onReady()","",e.id),ee[e.id].onInit(e))},onResized(){},onScroll:()=>!0});let je=0;function ke(e,t){let{id:n}=e;if(n&&!C(n))throw new TypeError("Invalid id for iFrame. Expected String");return n&&""!==n||(n=function(e){const t=e?.id||$e.id+je++;return null===document.getElementById(t)?t:`${t}${je++}`}(t),e.id=n,pe(n,"assignId"),le(n,`Added missing iframe ID: ${n} (${e.src})`)),n}const Me=(e,t,n,i)=>e.addEventListener(t,n,i||!1),Te=(e,t,n)=>e.removeEventListener(t,n,!1);function xe(e,t,i){function o(o){const r=e in T?(e=>e.split(n).filter((e,t)=>19!==t).join(n))(t):t;ce(i,o,J,Z,J),ce(i,`Message data: %c${r}`,J)}const{iframe:r,postMessageTarget:a,sameOrigin:s,targetOrigin:l}=ee[i];if(s)try{return r.contentWindow.iframeChildListener(k+t),void o(`Sending message to iframe %c${i}%c via same origin%c`)}catch(t){e in T?(ee[i].sameOrigin=!1,le(i,"New iframe does not support same origin")):fe(i,"Same origin messaging failed, falling back to postMessage")}o(`Sending message to iframe: %c${i}%c targetOrigin: %c${l.join(", ")}`);for(const e of l)a.postMessage(k+t,e)}function Se(e,t,n){pe(n,e),ee[n]?.postMessageTarget?xe(e,t,n):fe(n,"Iframe not found")}function Oe(){!0!==document.hidden&&((e,t)=>{Object.values(ee).filter(({autoResize:e,firstRun:t})=>e&&!t).forEach(({iframe:n})=>Se(e,t,n.id))})("tabVisible",d)}function Re(e){const t=e.slice(13).split(":"),n=t[1]?Number(t[1]):0,i=ee[t[0]]?.iframe,o=i?getComputedStyle(i):null,r=o?function(e){return"border-box"!==e.boxSizing?0:(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}(o)+function(e){return"border-box"!==e.boxSizing?0:(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}(o):0,a={iframe:i,id:t[0],height:n+r,width:Number(t[2]),type:t[3],msg:t[4],message:t[4]};return t[5]&&(a.mode=t[5]),a}const Ie={true:1,false:1,undefined:1};function Ce(e){const{id:t,msg:n,iframe:i}=e,o=function(e){if(!I(e))return!1;try{return"IFRAME"===e.tagName||e instanceof HTMLIFrameElement}catch(e){return!1}}(i);return o||(le(t,`Received: %c${n}`,J),fe(t,"The target iframe was not found.")),o}function Ee(e,t,n){if(!ee[e])return null;const i=ee[e][t];if(typeof i!==b)throw new TypeError(`${t} on iframe[${e}] is not a function`);if("onBeforeClose"!==t&&"onScroll"!==t)return((e,...t)=>setTimeout(()=>e(...t),0))(i,n);try{return i(n)}catch(n){return console.error(n),fe(e,`Error in ${t} callback`),null}}function Ae(e,t){const{lastMessage:i}=ee[e];return i.slice(i.indexOf(n)+7+t)}function We(e,t){const{id:i,iframe:o,height:r,type:a,width:s}=t;let l={x:0,y:0};if(0===s&&0===r){const e=Ae(i,9).split(n);l={x:e[1],y:e[0]}}else l={x:s,y:r};Ee(i,e,{iframe:o,screenX:Number(l.x),screenY:Number(l.y),type:a})}const Le={position:null,version:e};function Fe(){Le.position=null}function Pe(e){return null===Le.position&&(Le.position={x:window.scrollX,y:window.scrollY}),le(e,`Get page position: %c${Le.position.x}%c, %c${Le.position.y}`,J,Z,J),Le.position}function Ne(e){null!==Le.position&&(window.scrollTo(Le.position.x,Le.position.y),ce(e,`Set page position: %c${Le.position.x}%c, %c${Le.position.y}`,J,Z,J),Fe())}function Be(e,t){const{id:n}=t,i=`${t[e]}px`;ee[n].iframe.style[e]=i,ce(n,`Set ${e}: %c${i}`,J)}function He(e){const{id:t}=e,{sizeHeight:n,sizeWidth:i}=ee[t];n&&Be("height",e),i&&Be("width",e)}function qe(e){const{id:t}=e;He(e),Ne(t),Ee(t,"onResized",e)}function De(e){const{id:t}=e;le(t,"Disconnected from iframe"),delete ee[t],delete e.iframeResizer}function Ue(e){const{id:t}=e;if(!1!==Ee(t,"onBeforeClose",t)){le(t,`Removing iFrame: %c${t}`,J);try{e.parentNode&&e.remove()}catch(e){fe(t,e)}Ee(t,"onAfterClose",t),De(e)}else le(t,"Close iframe cancelled by onBeforeClose")}function Qe(e){const{id:t,type:n}=e;le(t,"Size reset requested by "+(n===o?"parent page":"child page")),Pe(t),He(e),Se(f,f,t)}const Ve=(e,t)=>{const n={};return(i,o)=>{const{iframe:r}=ee[o];var a,s;a=function(){Se(`${i} (${e})`,`${e}:${t(r)}`,o)},n[s=o]||(a(),n[s]=requestAnimationFrame(()=>{n[s]=null}))}},Je=e=>t=>{e in ee[t]&&(ee[t][e](),delete ee[t][e])},Ze=(e,t)=>n=>{let i=!1;const o=t=>()=>{ee[n]?i&&i!==t||(e(t,n),i=t,requestAnimationFrame(()=>{i=!1})):f()},r=o(p),s=o("resize window"),l=new ResizeObserver(o("pageObserver")),c=new ResizeObserver(o("iframeObserver"));function u(e,i){le(n,`${e}listeners for send${t}`),i(window,p,r),i(window,d,s)}function f(){pe(n,`stop${t}`),u("Remove ",Te),l.disconnect(),c.disconnect(),ee[n]&&Te(ee[n].iframe,a,f)}ee[n]&&(ee[n][`stop${t}`]=f,Me(ee[n].iframe,a,f),u("Add ",Me),l.observe(document.body),c.observe(ee[n].iframe))};const Ge=Ze(Ve(c,function(e){const t=document.body.getBoundingClientRect(),n=e.getBoundingClientRect(),{scrollY:i,scrollX:o,innerHeight:r,innerWidth:a}=window,{clientHeight:s,clientWidth:l}=document.documentElement;return JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(s,r||0),clientWidth:Math.max(l,a||0),offsetTop:Math.trunc(n.top-t.top),offsetLeft:Math.trunc(n.left-t.left),scrollTop:i,scrollLeft:o,documentHeight:s,documentWidth:l,windowHeight:r,windowWidth:a})}),"PageInfo"),Xe=Je("stopPageInfo");const Ye=Ze(Ve(u,function(e){const{scrollWidth:t,scrollHeight:n}=document.documentElement,i="undefined"!=typeof window&&window.visualViewport?window.visualViewport:{},{width:o=0,height:r=0,offsetLeft:a=0,offsetTop:s=0,pageLeft:l=0,pageTop:c=0,scale:u=1}=i;return JSON.stringify({iframe:e.getBoundingClientRect(),document:{scrollWidth:t,scrollHeight:n},viewport:{width:o,height:r,offsetLeft:a,offsetTop:s,pageLeft:l,pageTop:c,scale:u}})}),"ParentInfo"),_e=Je("stopParentInfo");function Ke(e){const t=e.getBoundingClientRect(),n=Pe(e.id);return{x:Number(t.left)+Number(n.x),y:Number(t.top)+Number(n.y)}}function et(e){const{x:t,y:n}=Le.position,i=ee[e]?.iframe;!1!==Ee(e,"onScroll",{iframe:i,top:n,left:t,x:t,y:n})?Ne(e):Fe()}const tt=e=>t=>{const{id:n,iframe:i,height:o,width:r}=t;const a=e?Ke(i):{x:0,y:0},s=(e=>({x:r+e.x,y:o+e.y}))(a),l=window.parentIframe||window.parentIFrame;ce(n,`Reposition requested (offset x:%c${a.x}%c y:%c${a.y})`,J,Z,J),l?function(t,n){t["scrollTo"+(e?"Offset":"")](n.x,n.y)}(l,s):function(e){var t;t=e,Le.position=t,et(n)}(s)},nt=tt(!1),it=tt(!0);function ot(e,t){const n=t.split("#")[1]||"",i=decodeURIComponent(n),o=document.getElementById(i)||document.getElementsByName(i)[0];o?function(e,t,n){const{x:i,y:o}=Ke(n);ce(e,`Moving to in page link: %c#${t}`,J),Le.position={x:i,y:o},et(e),window.location.hash=t}(e,n,o):window.top!==window.self?function(e,t){const n=window.parentIframe||window.parentIFrame;n?n.moveToAnchor(t):le(e,`In page link #${t} not found`)}(e,n):le(e,`In page link #${n} not found`)}function rt(e){const t=ee[e]?.iframe?.title;return""===t||void 0===t}const at=e=>{if(!e)return"";let t=-559038744,n=1103547984;for(let i,o=0;o<e.length;o++)i=e.codePointAt(o),t=Math.imul(t^i,2246822519),n=Math.imul(n^i,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)},st=e=>e.replace(/[A-Za-z]/g,e=>String.fromCodePoint((e<="Z"?90:122)>=(e=e.codePointAt(0)+19)?e:e-26)),lt=new Date,ct=e=>new Set(Array.from({length:9},e)),ut=" - lewpylk",ft=["spjluzl","rlf","clyzpvu","rlf2","nlaMbssFlhy"],dt=["<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.","<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Fvb hyl jbyyluasf bzpun h spjluzl rlf mvy aol wylcpvbz clyzpvu vm <p>pmyhtl-ylzpgly</>.</><iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> fvb jhu bzl aol <i>mpyza 11 johyhjalyz vm fvb spjluzl rlf</> av nla h 60% kpzjvbua ha oaawz://pmyhtl-ylzpgly.jvt/wypjpun.","<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Fvb hyl jbyyluasf bzpun h spjluzl rlf mvy aol wylcpvbz clyzpvu vm <p>pmyhtl-ylzpgly</>.<iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> vm <p>pmyhtl-ylzpgly</> wslhzl kvdusvhk aol shalza rlf myvt oaawz://pmyhtl-ylzpgly.jvt/tf-vyklyz.","<yi> VLT rlf lewpylk</><iy><iy>Aol spjluzl rlf fvb hyl bzpun mvy <p>pmyhtl-ylzpgly</> pz myvt h wypvy flhy huk ohz lewpylk. Hu bwkhalk rlf pz ylslhzlk vu aol mpyza vm Uvcltily lhjo flhy.<iy><iy>Wslhzl kvdusvhk aol shalza rlf myvt oaawz://pmyhtl-ylzpgly.jvt/tf-vyklyz."],pt=[(bt=["NWSc3","zvsv","wyv","ibzpulzz","VLT"])[0],...bt.slice(1).map(e=>`${e}${ut}`),`${bt[4]}${ut}`,...bt.slice(1)],ht=Object.fromEntries(["2cgs7fdf4xb","1c9ctcccr4z","1q2pc4eebgb","ueokt0969w","w2zxchhgqz","1umuxblj2e5","1foobarqaz","2b5sdlfhbev","zo4ui3arjo","oclbb4thgl","igb1wzrjqr"].map((e,t)=>[e,Math.max(0,t-1)])),mt=lt[st(ft[4])](),yt=ct((e,t)=>at(`${mt+t}`)),gt=ct((e,t)=>at(""+(mt-++t)));var bt;const vt=e=>st(dt[e]),wt=e=>{const t=e[st(ft[0])]||e[st(ft[1])]||e[st(ft[2])]||e[st(ft[3])];if(!t)return-1;const n=t.split("-");let i=function(e="",t=""){let n=-2;const i=at(st(e));return i in ht&&(n=ht[i]),9===n?(o=t,yt.has(o)?9:gt.has(o)?5:-2):n;var o}(...n);return 0===i||(e=>e[2]===at(e[0]+e[1]))(n)||(i=-2),i};let zt=!1,$t=!1;function jt(t,n=-3){if(zt)return;const i=Math.max(ee[t].mode,n);if(i>ee[t].mode&&(ee[t].mode=i),i<0)throw he(t),ee[t].vAdvised||be(t||"Parent",`${vt(i+2)}${vt(2)}`),ee[t].vAdvised=!0,vt(i+2).replace(/<\/?[a-z][^>]*>|<\/>/gi,"");switch(i>5&&$t||function(e,t){queueMicrotask(()=>console.info(`%ciframe-resizer ${e}`,ie||t<1?"font-weight: bold;":A))}(`v${e} (${(e=>st(pt[e]))(i)})`,i),i){case 1:case 2:case 3:be("Parent",vt(6));break;case 4:be("Parent",vt(7));break;case 5:be("Parent",vt(8));break;default:i<1&&be("Parent",vt(3))}zt=!0}function kt(t){const{height:n,id:r,iframe:a,mode:l,message:d,type:p,width:h}=t,{lastMessage:m}=ee[r];switch(ee[r]?.firstRun&&function(e,t){ee[e]&&(le(e,`First run for ${e}`),jt(e,void 0===t?void 0:Number(t)),ee[e].firstRun=!1)}(r,l),le(r,`Received: %c${m}`,J),p){case i:ee[r].autoResize=JSON.parse(Ae(r,9));break;case"beforeUnload":ce(r,"Ready state reset"),ee[r].initialised=!1;break;case"close":Ue(a);break;case"inPageLink":ot(r,Ae(r,9));break;case o:qe(t),function(e){try{ee[e].sameOrigin=!!ee[e]?.iframe?.contentWindow?.iframeChildListener}catch(t){ee[e].sameOrigin=!1}le(e,`sameOrigin: %c${ee[e].sameOrigin}`,J)}(r),function(t,n){n!==e&&(void 0!==n?le(t,`Version mismatch (Child: %c${n}%c !== Parent: %c${e})`,J,Z,J):be(t,"<rb>Legacy version detected in iframe</>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use <b>@iframe-resizer/child</>.\n\nSee <u>https://iframe-resizer.com/setup/#child-page-setup</> for more details.\n"))}(r,d),ee[r].initialised=!0,Ee(r,"onReady",a);break;case s:!function(e,t){const{id:n,iframe:i}=e;le(n,`onMessage passed: {iframe: %c${n}%c, message: %c${t}%c}`,J,Z,J,Z),Ee(n,"onMessage",{iframe:i,message:JSON.parse(t)})}(t,Ae(r,6));break;case"mouseenter":We("onMouseEnter",t);break;case"mouseleave":We("onMouseLeave",t);break;case c:Ge(r);break;case u:Ye(r);break;case"pageInfoStop":Xe(r);break;case"parentInfoStop":_e(r);break;case f:Qe(t);break;case"scrollBy":!function(e){const{id:t,height:n,width:i}=e,o=window.parentIframe||window.parentIFrame||window;ce(t,`scrollBy: x: %c${i}%c y: %c${n}`,J,Z,J),o.scrollBy(i,n)}(t);break;case"scrollTo":nt(t);break;case"scrollToOffset":it(t);break;case"title":!function(e,t){ee[e]?.syncTitle&&(ee[e].iframe.title=t,ce(e,`Set iframe title attribute: %c${t}`,J))}(r,d);break;default:if(0===h&&0===n)return void fe(r,`Unsupported message received (${p}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===h||0===n)return void le(r,"Ignoring message with 0 height or width");if(document.hidden)return void le(r,"Page hidden - ignored resize request");qe(t)}}function Mt(e){const t=e.data;if("[iFrameResizerChild]Ready"===t)return n=e.source,void Object.values(ee).forEach((e=>({initChild:t,postMessageTarget:n})=>{e===n&&t()})(n));var n,i;if(k!==`${i=t}`.slice(0,13)||!(i.slice(13).split(":")[0]in ee)){if(typeof t!==y)return;return pe(m,"ignoredMessage"),void ue(m,t)}const o=Re(t),{id:r,type:a}=o;switch(pe(r,a),!0){case!ee[r]:throw new Error(`${a} No settings for ${r}. Message was: ${t}`);case!Ce(o):case function(e){const{id:t,type:n}=e,i=n in Ie;return i&&le(t,"Ignoring init message from meta parent page"),i}(o):case!function(e,t){const{id:n}=e,{data:i,origin:o}=t;if("sameOrigin"in t&&t.sameOrigin)return!0;const r=ee[n]?.checkOrigin;if(r&&"null"!=`${o}`&&!(r.constructor===Array?function(){le(n,`Checking connection is from allowed list of origins: %c${r}`,J);for(const e of r)if(e===o)return!0;return!1}():function(){const e=ee[n]?.remoteHost;return le(n,`Checking connection is from: %c${e}`,J),o===e}()))throw new Error(`Unexpected message received from: ${o} for ${n}. Message was: ${i}. This error can be disabled by setting the checkOrigin: false option or by providing an array of trusted domains.`);return!0}(o,e):return;default:ee[r].lastMessage=e.data,ye(r,kt)(o)}}const Tt=(e=>{let t=!1;return function(...n){return t?void 0:(t=!0,e.apply(this,n))}})(()=>{Me(window,s,Mt),Me(document,"visibilitychange",Oe),window.iframeParentListener=e=>setTimeout(()=>Mt({data:e,sameOrigin:!0}))}),xt={};const St=`<rb>Deprecated Method Name</>\n\nThe <b>removeListeners()</> method has been renamed to <b>disconnect()</>. ${R}`;function Ot(e){if(ee[e]){const{iframe:t}=ee[e],n={close:Ue.bind(null,t),disconnect:De.bind(null,t),moveToAnchor(t){((e,t,n)=>{if(typeof e!==t)throw new TypeError(`${n} is not a ${i=t,i.charAt(0).toUpperCase()+i.slice(1)}`);var i})(t,y,"moveToAnchor(anchor) anchor"),Se("Move to anchor",`moveToAnchor:${t}`,e)},removeListeners(){be(e,St),this.disconnect()},resize(){be(e,"<rb>Deprecated Method</>\n\nUse of the <b>resize()</> method from the parent page is deprecated and will be removed in a future version of <i>iframe-resizer</>. As there are no longer any edge cases that require triggering a resize from the parent page, it is recommended to remove this method from your code."),Se("Window resize",d,e)},sendMessage(t){t=JSON.stringify(t),Se(s,`${s}:${t}`,e)}};t.iframeResizer=n,t.iFrameResizer=n}}const Rt="8",It="32",Ct="child",Et=!0;function At(e,t){const{checkOrigin:n,iframe:{src:i,sandbox:o},initialisedFirstPage:r,waitForLoad:a}=t[e],s=(e=>{try{return new URL(e).origin}catch(e){return null}})(i);pe(e,"noResponse"),be(e,`<rb>No response from iframe</>\n\nThe iframe (<i>${e}</>) has not responded within ${t[e].warningTimeout/1e3} seconds. Check <b>@iframe-resizer/child</> package has been loaded in the iframe.\n${n&&s?`\nThe <b>checkOrigin</> option is currently enabled. If the iframe redirects away from <i>${s}</>, then the connection to the iframe may be blocked by the browser. To disable this option, set <b>checkOrigin</> to <bb>false</> or an array of allowed origins. See <u>https://iframe-resizer.com/checkorigin</> for more information.\n`:""}${a&&!r?"\nThe <b>waitForLoad</> option is currently set to <bb>true</>. If the iframe loads before <i>iframe-resizer</> runs, this option will prevent <i>iframe-resizer</> initialising. To disable this option, set <b>waitForLoad</> to <bb>false</>.\n":""}${(e=>typeof e===g&&e.length>0&&!(e.contains("allow-scripts")&&e.contains("allow-same-origin")))(o)?"\nThe iframe has the <b>sandbox</> attribute, please ensure it contains both the <bb>allow-same-origin</> and <bb>allow-scripts</> values.\n":""}\nThis message can be ignored if everything is working, or you can set the <b>warningTimeout</> option to a higher value or zero to suppress this warning.\n`)}function Wt(e,t){const n=n=>()=>{if(!ee[e])return;const{firstRun:i,iframe:r}=ee[e];Se(n,t,e),(e=>e===o)(n)&&(e=>"lazy"===e.loading)(r)||function(e,t){const{msgTimeout:n,warningTimeout:i}=t[e];i&&(n&&clearTimeout(n),t[e].msgTimeout=setTimeout(function(){if(void 0===t[e])return;const{initialised:n,loadErrorShown:i}=t[e];t[e].msgTimeout=void 0,n?t[e].initialisedFirstPage=!0:i||(t[e].loadErrorShown=!0,At(e,t))},i))}(e,ee),i||function(e){ee[e]?.heightCalculationMethod in M&&Qe({id:e,iframe:ee[e].iframe,height:1,width:1,type:o})}(e)},{iframe:i}=ee[e];ee[e].initChild=n(r),function(e,t){Me(e,a,()=>setTimeout(t,1))}(i,n(l)),function(e,t){const{iframe:n,waitForLoad:i}=ee[e];!0!==i&&((e=>{const{src:t,srcdoc:n}=e;return!n&&(null==t||""===t||"about:blank"===t)})(n)?setTimeout(()=>{pe(e,"noContent"),ce(e,"No content detected in the iframe, delaying initialisation")}):setTimeout(t))}(e,n(o))}function Lt(e,t){return t?(("sizeWidth"in t||"sizeHeight"in t||i in t)&&be(e,`<rb>Deprecated Option</>\n\nThe <b>sizeWidth</>, <b>sizeHeight</> and <b>autoResize</> options have been replaced with new <b>direction</> option which expects values of <bb>${$}</>, <bb>${j}</>, <bb>${z}</> or <bb>${w}</>.\n`),t):{}}const Ft=e=>""===e||null!==e.match(/^(about:blank|javascript:|file:\/\/)/)?"*":e;function Pt(e,t,n){E(ee[e],t)&&(be(e,`<rb>Deprecated option</>\n\nThe <b>${t}</> option has been renamed to <b>${n}</>. ${R}`),ee[e][n]=ee[e][t],delete ee[e][t])}const Nt=e=>E(e,"onMouseEnter")||E(e,"onMouseLeave");function Bt(e,t){const{id:n}=e;ee[n]={...ee[n],iframe:e,remoteHost:e?.src.split("/").slice(0,3).join("/"),...$e,...Lt(n,t),mouseEvents:Nt(t),mode:wt(t),syncTitle:rt(n)},function(e){Pt(e,"offset","offsetSize"),Pt(e,"onClose","onBeforeClose"),Pt(e,"onClosed","onAfterClose")}(n),function(e){const{direction:t}=ee[e];switch(t){case $:break;case j:ee[e].sizeHeight=!1;case z:ee[e].sizeWidth=!0;break;case w:ee[e].sizeWidth=!1,ee[e].sizeHeight=!1,ee[e].autoResize=!1;break;default:throw new TypeError(`Direction value of "${t}" is not valid`)}le(e,`direction: %c${t}`,J)}(n),function(e,{offset:t,offsetSize:n}){const i=n||t;i&&(ee[e].direction===$?(ee[e].offsetHeight=i,le(e,`Offset height: %c${i}`,J)):(ee[e].offsetWidth=i,le(e,`Offset width: %c${i}`,J)))}(n,t),function(e){ee[e].warningTimeout||ce(e,"warningTimeout:%c disabled",J)}(n),function(e){const{id:t}=e;null===ee[t].postMessageTarget&&(ee[t].postMessageTarget=e.contentWindow)}(e),function(e){const{checkOrigin:t,remoteHost:n}=ee[e];Array.isArray(t)&&0===t.length&&fe(e,"checkOrigin is an empty array — no messages will be sent to the iframe"),ee[e].targetOrigin=Array.isArray(t)?t.map(Ft):[!1===t?"*":Ft(n)]}(n)}function Ht(e,t,i){Bt(t,i),le(e,`src: %c${t.srcdoc||t.src}`,J),function(e){if(zt)return;const{mode:t}=ee[e];t>5&&jt(e,t)}(e),function(e){const{id:t}=e;switch(le(t,`Iframe scrolling ${ee[t]?.scrolling?"enabled":"disabled"} for ${t}`),e.style.overflow=!1===ee[t]?.scrolling?"hidden":v,ee[t]?.scrolling){case"omit":break;case!0:e.scrolling="yes";break;case!1:e.scrolling="no";break;default:e.scrolling=ee[t]?.scrolling||"no"}}(t),function(e){const{bodyMargin:t}=ee[e];"number"!=typeof t&&"0"!==t||(ee[e].bodyMargin=`${t}px`)}(e),Wt(e,function(e){const{autoResize:t,bodyBackground:i,bodyMargin:o,bodyPadding:r,heightCalculationMethod:a,inPageLinks:s,license:l,log:c,logExpand:u,mouseEvents:f,offsetHeight:d,offsetWidth:p,mode:h,sizeHeight:m,sizeWidth:y,tolerance:g,widthCalculationMethod:b}=ee[e];return[e,Rt,y,c,It,Et,t,o,a,i,r,g,s,Ct,b,f,d,p,m,l,Le.version,h,"",u].join(n)}(e)),Ot(e),le(e,"Setup complete")}function qt(e,t){const{id:n}=e;pe(n,"setup"),function(e){if(!0===xt[e])return!1;const t=document.querySelectorAll(`iframe#${CSS.escape(e)}`);if(t.length<=1)return!0;xt[e]=!0;const n=Array.from(t).flatMap(e=>[h,e,h]);return be(e,`<rb>Duplicate ID attributes detected</>\n\nThe <b>${e}</> ID is not unique. Having multiple iframes on the same page with the same ID causes problems with communication between the iframe and parent page. Please ensure that the ID of each iframe has a unique value.\n\nFound <bb>${t.length}</> iframes with the <b>${e}</> ID:`,...n,h),!1}(n)&&Ht(n,e,t),me(n)}function Dt(e,t){0===t.log?t.log=!1:1===t.log?t.log=S:2===t.log&&(t.log=x);const n=E(t,"log"),i=C(t.log),o=n?!!i||t.log:$e.log;E(t,"logExpand")||(t.logExpand=n&&i?t.log===x:$e.logExpand),function(e){-1===e?.log&&(e.log=!1,$t=!0)}(t),function({enabled:e,expand:t,iframeId:n}){const i=te({expand:t,label:re(n)});ie=e,ee[n]||(ee[n]={console:i})}({enabled:o,expand:t.logExpand,iframeId:e}),i&&!(t.log in O)&&de(e,`Invalid value for options.log: Accepted values are "${x}" and "${S}"`),t.log=o}function Ut(e){if(!I(e))throw new TypeError("Options is not an object");return Tt(),function(e){const{search:t}=window.location;if(t.includes("ifrlog"))switch(new URLSearchParams(t).get("ifrlog")){case String(0):e.log=!1;break;case x:case String(2):e.log=x;break;case S:case String(1):default:e.log=S}}(e),n=>{const i=ke(n,e);return t in n?(pe(i,"alreadySetup"),fe(i,`Ignored iframe (${i}), already setup.`)):(Dt(i,e),ye(i,qt)(n,e)),n?.iframeResizer}}switch(!0){case void 0===window.jQuery:fe("","Unable to bind to jQuery, it is not available.");break;case!window.jQuery.fn:fe("","Unable to bind to jQuery, it is not fully loaded.");break;case window.jQuery.fn.iframeResize:fe("","iframeResize is already assigned to jQuery.fn.");break;default:window.jQuery.fn.iframeResize=function(e){const t=Ut(e);return this.filter("iframe").each((e,n)=>t(n)).end()},window.jQuery.fn.iFrameResize=function(e){return we("iFrameResize()","iframeResize()","","jQuery"),this.iframeResize(e)}}});
|
|
21
21
|
//# sourceMappingURL=index.umd.js.map
|
package/index.umd.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.umd.js","sources":["../../packages/common/consts.ts","../../packages/common/utils.ts","../../node_modules/auto-console-group/dist/index.js","../../packages/common/format-advise.ts","../../packages/core/values/settings.ts","../../packages/core/console.ts","../../packages/common/deprecate.ts","../../packages/core/values/defaults.ts","../../packages/core/checks/id.ts","../../packages/common/listeners.ts","../../packages/core/send/trigger.ts","../../packages/core/events/visible.ts","../../packages/core/received/decode.ts","../../packages/core/received/preflight.ts","../../packages/core/events/wrapper.ts","../../packages/core/received/message.ts","../../packages/core/events/mouse.ts","../../packages/core/values/page.ts","../../packages/core/page/position.ts","../../packages/core/events/size.ts","../../packages/core/events/resize.ts","../../packages/core/methods/disconnect.ts","../../packages/core/methods/close.ts","../../packages/core/methods/reset.ts","../../packages/core/monitor/common.ts","../../packages/core/monitor/page-info.ts","../../packages/core/monitor/props.ts","../../packages/core/page/scroll.ts","../../packages/core/page/in-page-link.ts","../../packages/core/page/title.ts","../../packages/common/mode.ts","../../packages/core/checks/mode.ts","../../packages/core/router.ts","../../packages/core/setup/first-run.ts","../../packages/core/checks/origin.ts","../../packages/core/checks/version.ts","../../packages/core/events/message.ts","../../packages/core/listeners.ts","../../packages/core/send/ready.ts","../../packages/core/checks/unique.ts","../../packages/core/methods/attach.ts","../../packages/core/send/outgoing.ts","../../packages/core/send/timeout.ts","../../packages/core/setup/init.ts","../../packages/core/setup/target-origin.ts","../../packages/core/setup/update-option-names.ts","../../packages/core/setup/process-options.ts","../../packages/core/checks/options.ts","../../packages/core/setup/direction.ts","../../packages/core/send/offset.ts","../../packages/core/checks/warning-timeout.ts","../../packages/core/setup/index.ts","../../packages/core/setup/scrolling.ts","../../packages/core/setup/body-margin.ts","../../packages/core/setup/logging.ts","../../packages/core/index.ts","../../packages/core/checks/manual-logging.ts","../../packages/jquery/plugin.js"],"sourcesContent":["export const VERSION = '[VI]{version}[/VI]'\nexport const LABEL = 'iframeResizer'\nexport const SEPARATOR = ':'\nexport const CHILD_READY_MESSAGE = '[iFrameResizerChild]Ready'\n\nexport const AUTO_RESIZE = 'autoResize'\nexport const BEFORE_UNLOAD = 'beforeUnload'\nexport const CLOSE = 'close'\nexport const IN_PAGE_LINK = 'inPageLink'\nexport const INIT = 'init'\nexport const INIT_FROM_IFRAME = 'iframeReady'\nexport const LAZY = 'lazy'\nexport const LOAD = 'load'\nexport const MESSAGE = 'message'\nexport const MOUSE_ENTER = 'mouseenter'\nexport const MOUSE_LEAVE = 'mouseleave'\nexport const ONLOAD = 'onload'\nexport const PAGE_HIDE = 'pageHide'\nexport const PAGE_INFO = 'pageInfo'\nexport const PARENT_INFO = 'parentInfo'\nexport const PAGE_INFO_STOP = 'pageInfoStop'\nexport const PARENT_INFO_STOP = 'parentInfoStop'\nexport const RESET = 'reset'\nexport const RESIZE = 'resize'\nexport const SCROLL_BY = 'scrollBy'\nexport const SCROLL_TO = 'scrollTo'\nexport const SCROLL_TO_OFFSET = 'scrollToOffset'\nexport const TITLE = 'title'\n\nexport const BASE = 10\nexport const SINGLE = 1\nexport const MIN_SIZE = 1\n\nexport const SIZE_ATTR = 'data-iframe-size'\nexport const OVERFLOW_ATTR = 'data-iframe-overflowed'\nexport const IGNORE_ATTR = 'data-iframe-ignore'\n\nexport const HEIGHT = 'height'\nexport const WIDTH = 'width'\nexport const OFFSET = 'offset'\nexport const OFFSET_HEIGHT = 'offsetHeight'\nexport const OFFSET_SIZE = 'offsetSize'\nexport const SCROLL = 'scroll'\nexport const NEW_LINE = '\\n'\n\nexport const HIDDEN = 'hidden'\nexport const VISIBLE = 'visible'\n\nexport const CHILD = 'child'\nexport const PARENT = 'parent'\n\nexport const STRING = 'string'\nexport const NUMBER = 'number'\nexport const BOOLEAN = 'boolean'\nexport const OBJECT = 'object'\nexport const FUNCTION = 'function'\nexport const SYMBOL = 'symbol'\nexport const UNDEFINED = 'undefined'\n\nexport const TRUE = 'true'\nexport const FALSE = 'false'\n\nexport const NULL = 'null'\nexport const AUTO = 'auto'\n\nexport const READY_STATE_CHANGE = 'readystatechange'\n\nexport const HEIGHT_EDGE = 'bottom'\nexport const WIDTH_EDGE = 'right'\n\nexport const ENABLE = 'autoResizeEnabled'\nexport const SIZE_CHANGE_DETECTED = Symbol('sizeChanged')\nexport const MANUAL_RESIZE_REQUEST = 'manualResize'\nexport const PARENT_RESIZE_REQUEST = 'parentResize'\nexport const IGNORE_DISABLE_RESIZE = {\n [MANUAL_RESIZE_REQUEST]: 1,\n [PARENT_RESIZE_REQUEST]: 1,\n}\n\nexport const SET_OFFSET_SIZE = 'setOffsetSize'\n\nexport const RESIZE_OBSERVER = 'resizeObserver'\nexport const OVERFLOW_OBSERVER = 'overflowObserver'\nexport const MUTATION_OBSERVER = 'mutationObserver'\nexport const VISIBILITY_OBSERVER = 'visibilityObserver'\n\nexport const BOLD = 'font-weight: bold;'\nexport const NORMAL = 'font-weight: normal;'\nexport const ITALIC = 'font-style: italic;'\nexport const BLUE = 'color: #135CD2;'\nexport const BLUE_LIGHT = 'color: #A9C7FB;'\nexport const BLACK = 'color: black;'\nexport const WHITE = 'color: #E3E3E3;'\n\nexport const NONE = 'none'\nexport const BOTH = 'both'\nexport const VERTICAL = 'vertical'\nexport const HORIZONTAL = 'horizontal'\nexport const OMIT = 'omit'\n\nexport const NO_CHANGE = 'No change in content size detected'\n\nexport const MESSAGE_HEADER_LENGTH = MESSAGE.length\nexport const MESSAGE_ID = '[iFrameSizer]' // Must match iframe msg ID\nexport const MESSAGE_ID_LENGTH = MESSAGE_ID.length\nexport const RESET_REQUIRED_METHODS = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1,\n})\n\nexport const INIT_EVENTS = Object.freeze({\n [ONLOAD]: 1,\n [INIT]: 1,\n [INIT_FROM_IFRAME]: 1,\n})\n\nexport const EXPAND = 'expanded'\nexport const COLLAPSE = 'collapsed'\n\nexport const LOG_DISABLED = 0\nexport const LOG_COLLAPSED = 1\nexport const LOG_EXPANDED = 2\n\nexport const HEIGHT_CALC_MODE_DEFAULT = AUTO\nexport const WIDTH_CALC_MODE_DEFAULT = SCROLL\n\nexport const EVENT_CANCEL_TIMER = 128\n\nexport const LOG_OPTIONS = Object.freeze({\n [EXPAND]: 1,\n [COLLAPSE]: 1,\n})\n\nexport const IGNORE_TAGS = new Set([\n 'head',\n 'body',\n 'meta',\n 'base',\n 'title',\n 'script',\n 'link',\n 'style',\n 'map',\n 'area',\n 'option',\n 'optgroup',\n 'template',\n 'track',\n 'wbr',\n 'nobr',\n])\n\nexport const REMOVED_NEXT_VERSION =\n 'Use of the old name will be removed in a future version of <i>iframe-resizer</>.'\n","import { OBJECT, STRING } from './consts'\n\nexport const isElement = (node: Node): boolean =>\n node.nodeType === Node.ELEMENT_NODE\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value)\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === OBJECT && value !== null\nexport const isString = (value: unknown): value is string =>\n typeof value === STRING\n\nexport const isSafari: boolean = /^((?!chrome|android).)*safari/i.test(\n navigator.userAgent,\n)\n\nexport function isIframe(element: unknown): element is HTMLIFrameElement {\n if (!isObject(element)) return false\n\n try {\n return (\n (element as unknown as HTMLElement).tagName === 'IFRAME' ||\n element instanceof HTMLIFrameElement\n )\n } catch (error) {\n return false\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyFunction = (...args: any[]) => any\n\nexport const isolateUserCode = (\n func: AnyFunction,\n ...val: unknown[]\n): ReturnType<typeof setTimeout> => setTimeout(() => func(...val), 0)\n\nexport const once = <T extends AnyFunction>(fn: T): T => {\n let done = false\n\n return function (this: unknown, ...args: unknown[]) {\n return done ? undefined : ((done = true), fn.apply(this, args))\n } as unknown as T\n}\n\nconst hasOwnFallback = (o: object, k: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(o, k)\n\nexport const hasOwn = (o: object, k: PropertyKey): boolean =>\n Object.hasOwn ? Object.hasOwn(o, k) : hasOwnFallback(o, k)\n\nexport const isDarkModeEnabled = (): boolean =>\n window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n\nexport const id = <T>(x: T): T => x\n\nconst ROUNDING = 1000\n\nexport const round = (value: number): number =>\n Math.round(value * ROUNDING) / ROUNDING\n\nexport const capitalizeFirstLetter = (string: string): string =>\n string.charAt(0).toUpperCase() + string.slice(1)\n\nexport const isDef = (value: unknown): boolean =>\n `${value}` !== '' && value !== undefined\n\nexport const invoke = <T>(fn: () => T): T => fn()\n\nexport const lower = (str: string): string => str.toLowerCase()\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getElementName(el: any): string {\n switch (true) {\n case !isDef(el):\n return ''\n\n case isDef(el.id):\n return `${el.nodeName}#${el.id}`\n\n case isDef(el.name):\n return `${el.nodeName} (${el.name}`\n\n case isDef(el.className):\n return `${el.nodeName}.${el.className}`\n\n default:\n return el.nodeName\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const esModuleInterop = <T = any>(mod: any): T =>\n // eslint-disable-next-line no-underscore-dangle\n mod?.__esModule ? mod.default : mod\n\nexport const typeAssert = (\n value: unknown,\n type: string,\n error: string,\n): void => {\n // eslint-disable-next-line valid-typeof\n if (typeof value !== type) {\n throw new TypeError(`${error} is not a ${capitalizeFirstLetter(type)}`)\n }\n}\n","/*!\n * @module auto-console-group v1.3.0\n *\n * @description Automagically group console logs in the browser console.\n *\n * @author David J. Bradshaw <info@iframe-resizer.com>\n * @see {@link https://github.com/davidjbradshaw/auto-console-group#readme}\n * @license MIT\n *\n * @copyright (c) 2025, David J. Bradshaw. All rights reserved.\n */\n\nconst $ = \"font-weight: normal;\", F = \"font-weight: bold;\", H = \"font-style: italic;\", U = $ + H, N = \"color: #135CD2;\", S = \"color: #A9C7FB;\", k = \"color: #1F1F1F;\", j = \"color: #E3E3E3;\", f = \"default\", Q = \"error\", C = \"log\", _ = Object.freeze({\n assert: !0,\n error: !0,\n warn: !0\n}), L = {\n expand: !1,\n defaultEvent: void 0,\n event: void 0,\n label: \"AutoConsoleGroup\",\n showTime: !0\n}, q = {\n profile: 0,\n profileEnd: 0,\n timeStamp: 0,\n trace: 0\n}, P = (o) => {\n const t = o.event || o.defaultEvent;\n return t ? `${t}` : \"\";\n}, u = Object.assign(console);\nfunction V() {\n const o = /* @__PURE__ */ new Date(), t = (l, d) => o[l]().toString().padStart(d, \"0\"), s = t(\"getHours\", 2), c = t(\"getMinutes\", 2), r = t(\"getSeconds\", 2), i = t(\"getMilliseconds\", 3);\n return `@ ${s}:${c}:${r}.${i}`;\n}\nconst { fromEntries: W, keys: b } = Object, z = (o) => [\n o,\n u[o]\n], K = (o) => (t) => [\n t,\n function(s) {\n o[t] = s;\n }\n], h = (o, t) => W(b(o).map(t));\nfunction X(o = {}) {\n const t = {}, s = {}, c = [], r = {\n ...L,\n // @ts-expect-error: backwards compatibility\n expand: !o.collapsed || L.expanded,\n ...o\n };\n let i = \"\";\n function l() {\n c.length = 0, i = \"\";\n }\n function d() {\n delete r.event, l();\n }\n const v = () => c.some(([e]) => e in _), O = () => v() ? !0 : !!r.expand, A = () => r.showTime ? i : \"\";\n function g() {\n if (c.length === 0) {\n d();\n return;\n }\n u[O() ? \"group\" : \"groupCollapsed\"](\n `%c${r.label}%c ${P(r)} %c${A()}`,\n $,\n F,\n U\n );\n for (const [e, ...n] of c)\n u.assert(\n e in u,\n `Unknown console method: ${e}`\n ), e in u && u[e](...n);\n u.groupEnd(), d();\n }\n function p() {\n i === \"\" && (i = V(), queueMicrotask(() => queueMicrotask(g)));\n }\n function G(e) {\n p(), r.event = e;\n }\n function a(e, ...n) {\n c.length === 0 && p(), c.push([e, ...n]);\n }\n const D = (e) => (...n) => {\n let m;\n try {\n m = e(...n);\n } catch (E) {\n if (!Error.prototype.isPrototypeOf(E)) throw E;\n a(Q, E), g();\n }\n return m;\n };\n function M(e, ...n) {\n e !== !0 && a(\"assert\", e, ...n);\n }\n function I(e = f) {\n s[e] ? s[e] += 1 : s[e] = 1, a(C, `${e}: ${s[e]}`);\n }\n function R(e = f) {\n delete s[e];\n }\n function x(e = f) {\n p(), t[e] = performance.now();\n }\n function w(e = f, ...n) {\n if (!t[e]) {\n a(\"timeLog\", e, ...n);\n return;\n }\n const m = performance.now() - t[e];\n a(C, `${e}: ${m} ms`, ...n);\n }\n function y(e = f) {\n w(e), delete t[e];\n }\n const B = (e) => [\n e,\n (...n) => a(e, ...n)\n ];\n return {\n ...h(r, K(r)),\n ...h(console, B),\n ...h(q, z),\n assert: M,\n count: I,\n countReset: R,\n endAutoGroup: g,\n errorBoundary: D,\n event: G,\n purge: l,\n time: x,\n timeEnd: y,\n timeLog: w,\n touch: p\n };\n}\nconst T = typeof window > \"u\" || typeof window.matchMedia != \"function\" ? !1 : window.matchMedia(\"(prefers-color-scheme: dark)\").matches, J = T ? S : N, Y = T ? j : k;\nexport {\n F as BOLD,\n Y as FOREGROUND,\n J as HIGHLIGHT,\n H as ITALIC,\n $ as NORMAL,\n X as default\n};\n","/* eslint-disable no-useless-escape */\n/* eslint-disable security/detect-non-literal-regexp */\n\nimport { NEW_LINE } from './consts'\nimport { isString } from './utils'\n\nconst TAGS = {\n br: '\\n',\n rb: '\\u001B[31;1m', // red bold\n bb: '\\u001B[34;1m', // blue bold\n b: '\\u001B[1m', // bold\n i: '\\u001B[3m', // italic\n u: '\\u001B[4m', // underline\n '/': '\\u001B[m', // reset\n}\n\nconst keys = Object.keys(TAGS)\nconst tags = new RegExp(`<(${keys.join('|')})>`, 'gi')\n\nconst lookup = (_: string, tag: string): string =>\n TAGS[tag as keyof typeof TAGS] ?? ''\n\nconst encode = (s: string): string => s.replace(tags, lookup)\n\nconst filter = (s: string): string =>\n s.replaceAll('<br>', NEW_LINE).replaceAll(/<\\/?[^>]+>/gi, '')\n\ntype FormatLogMessageFn = (message: unknown) => void\n\nexport default (formatLogMessage: FormatLogMessageFn) =>\n (message: unknown): void =>\n formatLogMessage(\n isString(message)\n ? window.chrome\n ? encode(message)\n : filter(message)\n : message,\n )\n\n/* eslint-enable security/detect-non-literal-regexp */\n/* eslint-enable no-useless-escape */\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst settings: Record<string, any> = {}\n\nexport default settings\n","import acg, { NORMAL } from 'auto-console-group'\n\nimport { BOLD, LABEL, PARENT } from '../common/consts'\nimport deprecate from '../common/deprecate'\nimport createFormatAdvise from '../common/format-advise'\nimport { esModuleInterop, id as identity } from '../common/utils'\nimport settings from './values/settings'\n\n// Deal with UMD not converting default exports to named exports\nconst createConsoleGroup = esModuleInterop(acg)\n\nlet consoleEnabled = true\n\nconst parent = createConsoleGroup({\n expand: false,\n label: PARENT,\n})\n\nconst getMyId = (iframeId: string): string =>\n window.top === window.self\n ? `parent(${iframeId})`\n : `nested parent(${iframeId})`\n\nconst isLogEnabled = (iframeId: string): boolean =>\n settings[iframeId] ? settings[iframeId].log : consoleEnabled\n\nexport function setupConsole({\n enabled,\n expand,\n iframeId,\n}: {\n enabled: boolean\n expand: boolean\n iframeId: string\n}): void {\n const consoleGroup = createConsoleGroup({\n expand,\n label: getMyId(iframeId),\n })\n\n consoleEnabled = enabled\n\n if (!settings[iframeId])\n settings[iframeId] = {\n console: consoleGroup,\n }\n}\n\nconst output =\n (type: string) =>\n (iframeId: string, ...args: any[]): any =>\n settings[iframeId]\n ? settings[iframeId].console[type](...args)\n : parent[type](...args)\n\nexport const outputSwitched =\n (type: string) =>\n (iframeId: string, ...args: any[]): any =>\n isLogEnabled(iframeId) === true ? output(type)(iframeId, ...args) : null\n\nexport const log = outputSwitched('log')\nexport const info = log // outputSwitched('info')\nexport const debug = outputSwitched('debug')\nexport const assert = output('assert')\nexport const warn = output('warn')\nexport const error = output('error')\nexport const event = output('event')\nexport const purge = output('purge')\nexport const endAutoGroup = output('endAutoGroup')\nexport const errorBoundary = output('errorBoundary')\n\nexport function vInfo(ver: string, mode: number): void {\n queueMicrotask(() =>\n // eslint-disable-next-line no-console\n console.info(\n `%ciframe-resizer ${ver}`,\n consoleEnabled || mode < 1 ? BOLD : NORMAL,\n ),\n )\n}\n\nconst formatLogMsg =\n (iframeId: string) =>\n (...args: any[]): string =>\n [`${LABEL}(${iframeId})`, ...args].join(' ')\n\nconst formatAdvise = createFormatAdvise(identity)\nexport const advise = (iframeId: string, ...args: any[]): void =>\n settings[iframeId]\n ? settings[iframeId].console.warn(...args.map(formatAdvise))\n : queueMicrotask(() => {\n const localFormatAdvise = createFormatAdvise(formatLogMsg(iframeId))\n // eslint-disable-next-line no-console\n console?.warn(...args.map(localFormatAdvise))\n })\n\nconst deprecateAdvise = deprecate(advise)\nexport const deprecateFunction = deprecateAdvise('Function')\nexport const deprecateMethod = deprecateAdvise('Method')\nexport const deprecateOption = deprecateAdvise('Option')\n","type AdviseFn = (iframeId: string, message: string) => void\n\nexport default (advise: AdviseFn) =>\n (type: string, change = 'renamed to') =>\n (old: string, replacement: string, info = '', iframeId = ''): void =>\n advise(\n iframeId,\n `<rb>Deprecated ${type}(${old.replace('()', '')})</>\\n\\nThe <b>${old}</> ${type.toLowerCase()} has been ${change} <b>${replacement}</>. ${info}Use of the old ${type.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`,\n )\n","import { AUTO, FUNCTION, VERTICAL } from '../../common/consts'\nimport { deprecateOption } from '../console'\nimport settings from './settings'\n\nconst onReadyDeprecated = (messageData: {\n id: string\n iframe: HTMLIFrameElement\n}): void => {\n if (typeof settings[messageData.id].onInit === FUNCTION) {\n deprecateOption('init()', 'onReady()', '', messageData.id)\n settings[messageData.id].onInit(messageData)\n }\n}\n\nexport default Object.freeze({\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyPadding: null,\n checkOrigin: true,\n direction: VERTICAL,\n firstRun: true,\n inPageLinks: false,\n heightCalculationMethod: AUTO,\n id: 'iFrameResizer', // TODO: v6 change to 'iframeResizer'\n log: false,\n logExpand: false,\n license: undefined,\n mouseEvents: true,\n offsetHeight: null,\n offsetWidth: null,\n postMessageTarget: null,\n sameDomain: false,\n scrolling: false,\n sizeHeight: true,\n // sizeSelector: '',\n sizeWidth: false,\n tolerance: 0,\n waitForLoad: false,\n warningTimeout: 5000,\n widthCalculationMethod: AUTO,\n\n onBeforeClose: () => true,\n onAfterClose() {},\n onInit: false,\n onMessage: null,\n onMouseEnter() {},\n onMouseLeave() {},\n onReady: onReadyDeprecated,\n onResized() {},\n onScroll: () => true,\n})\n","import { isString } from '../../common/utils'\nimport { event as consoleEvent, log } from '../console'\nimport defaults from '../values/defaults'\n\nlet count = 0\n\nfunction newId(options: Record<string, any>): string {\n const id = options?.id || defaults.id + count++\n return document.getElementById(id) === null ? id : `${id}${count++}`\n}\n\nexport default function ensureHasId(\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): string {\n let { id } = iframe\n\n if (id && !isString(id)) {\n throw new TypeError('Invalid id for iFrame. Expected String')\n }\n\n if (!id || id === '') {\n id = newId(options)\n iframe.id = id\n consoleEvent(id, 'assignId')\n log(id, `Added missing iframe ID: ${id} (${iframe.src})`)\n }\n\n return id\n}\n","export const addEventListener = (\n el: EventTarget,\n evt: string,\n func: EventListenerOrEventListenerObject,\n options?: AddEventListenerOptions | boolean,\n): void => el.addEventListener(evt, func, options || false)\n\nexport const removeEventListener = (\n el: EventTarget,\n evt: string,\n func: EventListenerOrEventListenerObject,\n): void => el.removeEventListener(evt, func, false)\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { INIT_EVENTS, MESSAGE_ID, SEPARATOR } from '../../common/consts'\nimport { event as consoleEvent, info, log, warn } from '../console'\nimport settings from '../values/settings'\n\nconst filterMsg = (msg: string): string =>\n msg\n .split(SEPARATOR)\n .filter((_, index) => index !== 19)\n .join(SEPARATOR)\n\nfunction dispatch(calleeMsg: string, msg: string, id: string): void {\n function logSent(route: string): void {\n const displayMsg = calleeMsg in INIT_EVENTS ? filterMsg(msg) : msg\n info(id, route, HIGHLIGHT, FOREGROUND, HIGHLIGHT)\n info(id, `Message data: %c${displayMsg}`, HIGHLIGHT)\n }\n\n const { iframe, postMessageTarget, sameOrigin, targetOrigin } = settings[id]\n\n if (sameOrigin) {\n try {\n iframe.contentWindow.iframeChildListener(MESSAGE_ID + msg)\n logSent(`Sending message to iframe %c${id}%c via same origin%c`)\n return\n } catch (error) {\n if (calleeMsg in INIT_EVENTS) {\n settings[id].sameOrigin = false\n log(id, 'New iframe does not support same origin')\n } else {\n warn(id, 'Same origin messaging failed, falling back to postMessage')\n }\n }\n }\n\n logSent(\n `Sending message to iframe: %c${id}%c targetOrigin: %c${targetOrigin.join(', ')}`,\n )\n\n for (const origin of targetOrigin) {\n postMessageTarget.postMessage(MESSAGE_ID + msg, origin)\n }\n}\n\nfunction trigger(calleeMsg: string, msg: string, id: string): void {\n consoleEvent(id, calleeMsg)\n\n if (!settings[id]?.postMessageTarget) {\n warn(id, `Iframe not found`)\n return\n }\n\n dispatch(calleeMsg, msg, id)\n}\n\nexport default trigger\n","import { RESIZE } from '../../common/consts'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nconst sendTriggerMsg = (eventName: string, event: string): void =>\n Object.values(settings)\n .filter(({ autoResize, firstRun }) => autoResize && !firstRun)\n .forEach(({ iframe }) => trigger(eventName, event, iframe.id))\n\nexport default function tabVisible(): void {\n if (document.hidden === true) return\n sendTriggerMsg('tabVisible', RESIZE)\n}\n","import { MESSAGE_ID_LENGTH } from '../../common/consts'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nexport function getPaddingEnds(compStyle: CSSStyleDeclaration): number {\n if (compStyle.boxSizing !== 'border-box') return 0\n\n const top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0\n const bot = compStyle.paddingBottom\n ? parseInt(compStyle.paddingBottom, 10)\n : 0\n\n return top + bot\n}\n\nexport function getBorderEnds(compStyle: CSSStyleDeclaration): number {\n if (compStyle.boxSizing !== 'border-box') return 0\n\n const top = compStyle.borderTopWidth\n ? parseInt(compStyle.borderTopWidth, 10)\n : 0\n\n const bot = compStyle.borderBottomWidth\n ? parseInt(compStyle.borderBottomWidth, 10)\n : 0\n\n return top + bot\n}\n\nexport default function decodeMessage(msg: string): MessageData {\n const data = msg.slice(MESSAGE_ID_LENGTH).split(':')\n const height = data[1] ? Number(data[1]) : 0\n const iframe = settings[data[0]]?.iframe\n const compStyle = getComputedStyle(iframe)\n\n const messageData: MessageData = {\n iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: Number(data[2]),\n type: data[3],\n msg: data[4],\n message: data[4],\n }\n\n // eslint-disable-next-line prefer-destructuring\n if (data[5]) messageData.mode = data[5]\n\n return messageData\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { MESSAGE_ID, MESSAGE_ID_LENGTH } from '../../common/consts'\nimport { isIframe } from '../../common/utils'\nimport { log, warn } from '../console'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nconst ABOVE_TYPES: Record<string, number> = { true: 1, false: 1, undefined: 1 }\n\nexport function checkIframeExists(messageData: MessageData): boolean {\n const { id, msg, iframe } = messageData\n const detectedIframe = isIframe(iframe)\n\n if (!detectedIframe) {\n log(id, `Received: %c${msg}`, HIGHLIGHT)\n warn(id, `The target iframe was not found.`)\n }\n\n return detectedIframe\n}\n\nexport function isMessageFromIframe(\n messageData: MessageData,\n event: MessageEvent | { data: any; origin?: string; sameOrigin?: boolean },\n): boolean {\n const { id } = messageData\n const { data, origin } = event\n const sameOrigin = 'sameOrigin' in event && event.sameOrigin\n\n if (sameOrigin) return true\n\n const checkOrigin = settings[id]?.checkOrigin\n\n function checkAllowedOrigin(): boolean {\n function checkList(): boolean {\n log(\n id,\n `Checking connection is from allowed list of origins: %c${checkOrigin}`,\n HIGHLIGHT,\n )\n\n for (const element of checkOrigin) {\n if (element === origin) {\n return true\n }\n }\n\n return false\n }\n\n function checkSingle(): boolean {\n const remoteHost = settings[id]?.remoteHost\n log(id, `Checking connection is from: %c${remoteHost}`, HIGHLIGHT)\n return origin === remoteHost\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\n }\n\n if (checkOrigin && `${origin}` !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n `Unexpected message received from: ${origin} for ${id}. Message was: ${data}. This error can be disabled by setting the checkOrigin: false option or by providing an array of trusted domains.`,\n )\n }\n\n return true\n}\n\nexport const isMessageForUs = (message: any): boolean =>\n MESSAGE_ID === `${message}`.slice(0, MESSAGE_ID_LENGTH) &&\n message.slice(MESSAGE_ID_LENGTH).split(':')[0] in settings\n\nexport function isMessageFromMetaParent(messageData: MessageData): boolean {\n const { id, type } = messageData\n\n // Test if this message is from a parent above us. This is an ugly test,\n // however, updating the message format would break backwards compatibility.\n const isMetaParent = type in ABOVE_TYPES\n\n if (isMetaParent) {\n log(id, 'Ignoring init message from meta parent page')\n }\n\n return isMetaParent\n}\n","import { FUNCTION } from '../../common/consts'\nimport { isolateUserCode } from '../../common/utils'\nimport { warn } from '../console'\nimport settings from '../values/settings'\n\nfunction on(iframeId: string, funcName: string, val: any): any {\n if (!settings[iframeId]) return null\n\n const func = settings[iframeId][funcName]\n\n if (typeof func !== FUNCTION)\n throw new TypeError(`${funcName} on iframe[${iframeId}] is not a function`)\n\n if (funcName !== 'onBeforeClose' && funcName !== 'onScroll')\n return isolateUserCode(func, val)\n\n try {\n return func(val)\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n warn(iframeId, `Error in ${funcName} callback`)\n return null\n }\n}\n\nexport default on\n","import { MESSAGE_HEADER_LENGTH, SEPARATOR } from '../../common/consts'\nimport settings from '../values/settings'\n\nexport default function getMessageBody(id: string, offset: number): string {\n const { lastMessage } = settings[id]\n return lastMessage.slice(\n lastMessage.indexOf(SEPARATOR) + MESSAGE_HEADER_LENGTH + offset,\n )\n}\n","import { SEPARATOR } from '../../common/consts'\nimport getMessageBody from '../received/message'\nimport type { MessageData } from '../types'\nimport on from './wrapper'\n\nexport default function onMouse(event: string, messageData: MessageData): void {\n const { id, iframe, height, type, width } = messageData\n let mousePos: { x: string | number; y: string | number } = { x: 0, y: 0 }\n\n if (width === 0 && height === 0) {\n const coords = getMessageBody(id, 9).split(SEPARATOR)\n mousePos = {\n x: coords[1],\n y: coords[0],\n }\n } else {\n mousePos = {\n x: width,\n y: height,\n }\n }\n\n on(id, event, {\n iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type,\n })\n}\n","import { VERSION } from '../../common/consts'\n\ninterface PageState {\n position: { x: number; y: number } | null\n version: string\n}\n\nconst page: PageState = {\n position: null,\n version: VERSION,\n}\n\nexport default page\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { info, log } from '../console'\nimport page from '../values/page'\n\ninterface Position {\n x: number\n y: number\n}\n\nexport function unsetPagePosition(): void {\n page.position = null\n}\n\nexport const getStoredPagePosition = (): Position | null => page.position\n\nexport function setStoredPagePosition(position: Position): void {\n page.position = position\n}\n\nexport function getPagePosition(id: string): Position {\n if (page.position === null)\n page.position = {\n x: window.scrollX,\n y: window.scrollY,\n }\n\n log(\n id,\n `Get page position: %c${page.position.x}%c, %c${page.position.y}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n return page.position\n}\n\nexport function setPagePosition(id: string): void {\n if (page.position === null) return\n\n window.scrollTo(page.position.x, page.position.y)\n\n info(\n id,\n `Set page position: %c${page.position.x}%c, %c${page.position.y}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n unsetPagePosition()\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { HEIGHT, WIDTH } from '../../common/consts'\nimport { info } from '../console'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nfunction setDimension(dimension: string, messageData: MessageData): void {\n const { id } = messageData\n const size = `${messageData[dimension]}px`\n settings[id].iframe.style[dimension] = size\n info(id, `Set ${dimension}: %c${size}`, HIGHLIGHT)\n}\n\nexport default function setSize(messageData: MessageData): void {\n const { id } = messageData\n const { sizeHeight, sizeWidth } = settings[id]\n\n if (sizeHeight) setDimension(HEIGHT, messageData)\n if (sizeWidth) setDimension(WIDTH, messageData)\n}\n","import { setPagePosition } from '../page/position'\nimport type { MessageData } from '../types'\nimport setSize from './size'\nimport on from './wrapper'\n\nexport default function resizeIframe(messageData: MessageData): void {\n const { id } = messageData\n setSize(messageData)\n setPagePosition(id)\n on(id, 'onResized', messageData)\n}\n","import { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function disconnect(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n log(id, 'Disconnected from iframe')\n delete settings[id]\n delete iframe.iframeResizer\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { log, warn } from '../console'\nimport on from '../events/wrapper'\nimport disconnect from './disconnect'\n\nexport default function closeIframe(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n\n if (on(id, 'onBeforeClose', id) === false) {\n log(id, 'Close iframe cancelled by onBeforeClose')\n return\n }\n\n log(id, `Removing iFrame: %c${id}`, HIGHLIGHT)\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.remove()\n }\n } catch (error) {\n warn(id, error)\n }\n\n on(id, 'onAfterClose', id)\n disconnect(iframe)\n}\n","import { INIT, RESET } from '../../common/consts'\nimport { log } from '../console'\nimport setSize from '../events/size'\nimport { getPagePosition } from '../page/position'\nimport trigger from '../send/trigger'\nimport type { MessageData } from '../types'\n\nexport default function resetIframe(messageData: MessageData): void {\n const { id, type } = messageData\n\n log(\n id,\n `Size reset requested by ${type === INIT ? 'parent page' : 'child page'}`,\n )\n\n getPagePosition(id)\n setSize(messageData)\n trigger(RESET, RESET, id)\n}\n","import { LOAD, RESIZE, SCROLL } from '../../common/consts'\nimport { addEventListener, removeEventListener } from '../../common/listeners'\nimport { event, log } from '../console'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nexport const sendInfoToIframe = (\n type: string,\n infoFunction: (iframe: HTMLIFrameElement) => string,\n) => {\n const gate: Record<string, number | null> = {}\n\n return (requestType: string, id: string): void => {\n const { iframe } = settings[id]\n\n function throttle(func: () => void, frameId: string): void {\n if (!gate[frameId]) {\n func()\n gate[frameId] = requestAnimationFrame(() => {\n gate[frameId] = null\n })\n }\n }\n\n function gatedTrigger(): void {\n trigger(`${requestType} (${type})`, `${type}:${infoFunction(iframe)}`, id)\n }\n\n throttle(gatedTrigger, id)\n }\n}\n\nexport const stopInfoMonitor =\n (stopFunction: string) =>\n (id: string): void => {\n if (stopFunction in settings[id]) {\n settings[id][stopFunction]()\n delete settings[id][stopFunction]\n }\n }\n\nexport const startInfoMonitor =\n // eslint-disable-next-line @typescript-eslint/no-shadow\n (sendInfoToIframe: (requestType: string, id: string) => void, type: string) =>\n (id: string): void => {\n let pending: string | false = false\n\n const sendInfo = (requestType: string) => (): void => {\n if (settings[id]) {\n if (!pending || pending === requestType) {\n sendInfoToIframe(requestType, id)\n\n pending = requestType\n requestAnimationFrame(() => {\n pending = false\n })\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stop()\n }\n }\n\n const sendScroll = sendInfo(SCROLL)\n const sendResize = sendInfo('resize window')\n\n const pageObserver = new ResizeObserver(sendInfo('pageObserver'))\n const iframeObserver = new ResizeObserver(sendInfo('iframeObserver'))\n\n function setListener(\n requestType: string,\n listener: (\n target: EventTarget,\n event: string,\n handler: EventListener,\n ) => void,\n ): void {\n log(id, `${requestType}listeners for send${type}`)\n listener(window, SCROLL, sendScroll)\n listener(window, RESIZE, sendResize)\n }\n\n function stop(): void {\n event(id, `stop${type}`)\n setListener('Remove ', removeEventListener)\n pageObserver.disconnect()\n iframeObserver.disconnect()\n if (settings[id]) {\n removeEventListener(settings[id].iframe, LOAD, stop)\n }\n }\n\n function start(): void {\n setListener('Add ', addEventListener)\n\n pageObserver.observe(document.body)\n iframeObserver.observe(settings[id].iframe)\n }\n\n if (!settings[id]) return\n\n settings[id][`stop${type}`] = stop\n addEventListener(settings[id].iframe, LOAD, stop)\n start()\n }\n","import { PAGE_INFO } from '../../common/consts'\nimport { sendInfoToIframe, startInfoMonitor, stopInfoMonitor } from './common'\n\nexport function getPageInfo(iframe: HTMLIFrameElement): string {\n const bodyPosition = document.body.getBoundingClientRect()\n const iFramePosition = iframe.getBoundingClientRect()\n const { scrollY, scrollX, innerHeight, innerWidth } = window\n const { clientHeight, clientWidth } = document.documentElement\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(clientHeight, innerHeight || 0),\n clientWidth: Math.max(clientWidth, innerWidth || 0),\n offsetTop: Math.trunc(iFramePosition.top - bodyPosition.top),\n offsetLeft: Math.trunc(iFramePosition.left - bodyPosition.left),\n scrollTop: scrollY,\n scrollLeft: scrollX,\n documentHeight: clientHeight,\n documentWidth: clientWidth,\n windowHeight: innerHeight,\n windowWidth: innerWidth,\n })\n}\n\nconst sendPageInfoToIframe = sendInfoToIframe(PAGE_INFO, getPageInfo)\n\nexport const startPageInfoMonitor = startInfoMonitor(\n sendPageInfoToIframe,\n 'PageInfo',\n)\n\nexport const stopPageInfoMonitor = stopInfoMonitor('stopPageInfo')\n","import { PARENT_INFO } from '../../common/consts'\nimport { sendInfoToIframe, startInfoMonitor, stopInfoMonitor } from './common'\n\nexport function getParentProps(iframe: HTMLIFrameElement): string {\n const { scrollWidth, scrollHeight } = document.documentElement\n const { width, height, offsetLeft, offsetTop, pageLeft, pageTop, scale } =\n window.visualViewport\n\n return JSON.stringify({\n iframe: iframe.getBoundingClientRect(),\n document: {\n scrollWidth,\n scrollHeight,\n },\n viewport: {\n width,\n height,\n offsetLeft,\n offsetTop,\n pageLeft,\n pageTop,\n scale,\n },\n })\n}\n\nconst sendParentInfoToIframe = sendInfoToIframe(PARENT_INFO, getParentProps)\n\nexport const startParentInfoMonitor = startInfoMonitor(\n sendParentInfoToIframe,\n 'ParentInfo',\n)\n\nexport const stopParentInfoMonitor = stopInfoMonitor('stopParentInfo')\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport on from '../events/wrapper'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\nimport {\n getPagePosition,\n getStoredPagePosition,\n setPagePosition,\n setStoredPagePosition,\n unsetPagePosition,\n} from './position'\n\ninterface Position {\n x: number\n y: number\n}\n\nexport function getElementPosition(target: HTMLIFrameElement): Position {\n const iframePosition = target.getBoundingClientRect()\n const pagePosition = getPagePosition(target.id)\n\n return {\n x: Number(iframePosition.left) + Number(pagePosition.x),\n y: Number(iframePosition.top) + Number(pagePosition.y),\n }\n}\n\nexport function scrollToLink(id: string): void {\n const { x, y } = getStoredPagePosition()\n const iframe = settings[id]?.iframe\n\n if (on(id, 'onScroll', { iframe, top: y, left: x, x, y }) === false) {\n unsetPagePosition()\n return\n }\n\n setPagePosition(id)\n}\n\nexport function scrollBy(messageData: MessageData): void {\n const { id, height, width } = messageData\n\n // Check for V4 as well\n const target = window.parentIframe || window.parentIFrame || window\n\n info(\n id,\n `scrollBy: x: %c${width}%c y: %c${height}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n target.scrollBy(width, height)\n}\n\nconst scrollRequestFromChild =\n (addOffset: boolean) =>\n (messageData: MessageData): void => {\n const { id, iframe, height, width } = messageData\n\n /* istanbul ignore next */ // Not testable in Karma\n function reposition(newPosition: Position): void {\n setStoredPagePosition(newPosition)\n scrollToLink(id)\n }\n\n function scrollParent(target: any, newPosition: Position): void {\n target[`scrollTo${addOffset ? 'Offset' : ''}`](\n newPosition.x,\n newPosition.y,\n )\n }\n\n const calcOffset = (offset: Position): Position => ({\n x: width + offset.x,\n y: height + offset.y,\n })\n\n const offset = addOffset ? getElementPosition(iframe) : { x: 0, y: 0 }\n const newPosition = calcOffset(offset)\n const target = window.parentIframe || window.parentIFrame // Check for V4 as well\n\n info(\n id,\n `Reposition requested (offset x:%c${offset.x}%c y:%c${offset.y})`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n if (target) scrollParent(target, newPosition)\n else reposition(newPosition)\n }\n\nexport const scrollTo = scrollRequestFromChild(false)\nexport const scrollToOffset = scrollRequestFromChild(true)\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info, log } from '../console'\nimport page from '../values/page'\nimport { getElementPosition, scrollToLink } from './scroll'\n\nfunction jumpToTarget(id: string, hash: string, target: HTMLElement): void {\n const { x, y } = getElementPosition(target as unknown as HTMLIFrameElement)\n\n info(id, `Moving to in page link: %c#${hash}`, HIGHLIGHT)\n\n page.position = { x, y }\n\n scrollToLink(id)\n window.location.hash = hash\n}\n\nfunction jumpToParent(id: string, hash: string): void {\n // Check for V4 as well\n const target = window.parentIframe || window.parentIFrame\n\n if (!target) {\n log(id, `In page link #${hash} not found`)\n return\n }\n\n target.moveToAnchor(hash)\n}\n\nexport default function inPageLink(id: string, location: string): void {\n const hash = location.split('#')[1] || ''\n const hashData = decodeURIComponent(hash)\n\n const target =\n document.getElementById(hashData) || document.getElementsByName(hashData)[0]\n\n if (target) {\n jumpToTarget(id, hash, target)\n return\n }\n\n if (window.top === window.self) {\n log(id, `In page link #${hash} not found`)\n return\n }\n\n jumpToParent(id, hash)\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport settings from '../values/settings'\n\nexport function checkTitle(id: string): boolean {\n const title = settings[id]?.iframe?.title\n return title === '' || title === undefined\n}\n\nexport function setTitle(id: string, title: string | undefined): void {\n if (!settings[id]?.syncTitle) return\n settings[id].iframe.title = title\n info(id, `Set iframe title attribute: %c${title}`, HIGHLIGHT)\n}\n","/* eslint-disable eslint-comments/disable-enable-pair */\n/* eslint-disable chai-friendly/no-unused-expressions */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-cond-assign */\n/* eslint-disable pii/no-phone-number */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-shadow */\nconst l = (l: string): string => {\n if (!l) return ''\n let p = -559_038_744\n let y = 1_103_547_984\n for (let z: any, t = 0; t < l.length; t++)\n ((z = l.codePointAt(t)),\n (p = Math.imul(p ^ z, 2_246_822_519)),\n (y = Math.imul(y ^ z, 3_266_489_917)))\n return (\n (p ^= Math.imul(p ^ (y >>> 15), 1_935_289_751)),\n (y ^= Math.imul(y ^ (p >>> 15), 3_405_138_345)),\n (p ^= y >>> 16),\n (y ^= p >>> 16),\n (2_097_152 * (y >>> 0) + (p >>> 11)).toString(36)\n )\n}\nconst p = (l: string): string =>\n l.replace(/[A-Za-z]/g, (l: any) =>\n String.fromCodePoint(\n (l <= 'Z' ? 90 : 122) >= (l = l.codePointAt(0) + 19) ? l : l - 26,\n ),\n )\nconst q = new Date()\nconst Q = (f: (index: number, value: number) => string): Set<string> =>\n new Set(Array.from({ length: 9 }, f))\nconst r = (arr: Array<string>): string[] => [\n arr[0],\n ...arr.slice(1).map((l) => `${l} - lewpylk`),\n `${arr[4]} - lewpylk`,\n ...arr.slice(1),\n]\nconst x = ['spjluzl', 'rlf', 'clyzpvu', 'rlf2', 'nlaMbssFlhy']\nconst y = [\n '<yi>Puchspk Spjluzl Rlf</><iy><iy>',\n '<yi>Tpzzpun Spjluzl Rlf</><iy><iy>',\n '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</>',\n '<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</>.',\n '<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.',\n 'Pu whnl spurpun ylxbpylz h Wyvmlzzpvuhs vy Ibzpulzz spjluzl. Wslhzl zll <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</> mvy tvyl klahpsz.',\n '<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> vm <p>pmyhtl-ylzpgly</> fvb jhu bzl aol mpyza 11 johyhjalyz vm fvb spjlujl rlf av nla h 60% kpzjvbua ha <ii>oaaw://pmyhtl-ylzpgly.jvt</>.', // Upgrade\n '<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Av bwnyhkl av clyzpvu 6 vm<p>pmyhtl-ylzpgly</> wslhzl kvdusvhk aol shalza rlf myvt sltvu-zxbllgf.jvt.', // Upgrade OEM\n '<yi>VLT rlf lewpylk</><iy><iy>Wslhzl kvdusvhk aol shalza rlf myvt sltvu-zxbllgf.jvt.', // key expired\n]\nconst z = r(['NWSc3', 'zvsv', 'wyv', 'ibzpulzz', 'VLT'])\nconst t = Object.fromEntries(\n [\n '2cgs7fdf4xb',\n '1c9ctcccr4z',\n '1q2pc4eebgb',\n 'ueokt0969w',\n 'w2zxchhgqz',\n '1umuxblj2e5',\n '1foobarqaz',\n '2b5sdlfhbev',\n 'zo4ui3arjo',\n 'oclbb4thgl',\n 'igb1wzrjqr',\n ].map((l, p) => [l, Math.max(0, p - 1)]),\n)\nconst u = new Set([1, 6])\n\nconst dd = q[p(x[4])]()\nconst dx = Q((_, i) => l(`${dd + i}`))\nconst dy = Q((_, i) => l(`${dd - ++i}`))\nconst V = (n: string): number => (dx.has(n) ? 9 : dy.has(n) ? 5 : -2)\n\nexport const checkMode = (m: number): boolean => u.has(m)\nexport const getModeData = (l: number): string => p(y[l])\nexport const getModeLabel = (l: number): string => p(z[l])\nexport const getKey = (l: number): string => p(x[l])\n\nexport default (y: any): number => {\n const z = y[p(x[0])] || y[p(x[1])] || y[p(x[2])] || y[p(x[3])]\n if (!z) return -1\n const u = z.split('-')\n let v = (function (y = '', x = '') {\n let z = -2\n const u = l(p(y))\n return (u in t && (z = t[u]), z === 9 ? V(x) : z)\n })(...u)\n return (v === 0 || ((p: any) => p[2] === l(p[0] + p[1]))(u) || (v = -2), v)\n}\n","import { VERSION } from '../../common/consts'\nimport { getModeData, getModeLabel } from '../../common/mode'\nimport { advise, purge as consoleClear, vInfo } from '../console'\nimport settings from '../values/settings'\n\nlet vAdvised = false\nlet vInfoDisable = false\n\nexport default function checkMode(id: string, childMode: number = -3): void {\n if (vAdvised) return\n const mode = Math.max(settings[id].mode, childMode)\n if (mode > settings[id].mode) settings[id].mode = mode\n if (mode < 0) {\n consoleClear(id)\n if (!settings[id].vAdvised)\n advise(id || 'Parent', `${getModeData(mode + 2)}${getModeData(2)}`)\n settings[id].vAdvised = true\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw getModeData(mode + 2).replace(/<\\/?[a-z][^>]*>|<\\/>/gi, '')\n }\n if (!(mode > 5 && vInfoDisable)) {\n vInfo(`v${VERSION} (${getModeLabel(mode)})`, mode)\n }\n\n switch (mode) {\n case 1:\n case 2:\n case 3:\n advise(id, getModeData(6))\n break\n\n case 4:\n advise(id, getModeData(7))\n break\n\n case 5:\n advise(id, getModeData(8))\n break\n\n default:\n if (mode < 1) advise('Parent', getModeData(3))\n }\n\n vAdvised = true\n}\n\nexport function preModeCheck(id: string): void {\n if (vAdvised) return\n const { mode } = settings[id]\n if (mode > 5) checkMode(id, mode)\n}\n\nexport function enableVInfo(options: Record<string, any>): void {\n if (options?.log === -1) {\n options.log = false\n vInfoDisable = true\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport {\n AUTO_RESIZE,\n BEFORE_UNLOAD,\n CLOSE,\n IN_PAGE_LINK,\n INIT,\n MESSAGE,\n MOUSE_ENTER,\n MOUSE_LEAVE,\n PAGE_INFO,\n PAGE_INFO_STOP,\n PARENT_INFO,\n PARENT_INFO_STOP,\n RESET,\n SCROLL_BY,\n SCROLL_TO,\n SCROLL_TO_OFFSET,\n TITLE,\n} from '../common/consts'\nimport checkSameDomain from './checks/origin'\nimport checkVersion from './checks/version'\nimport { info, log, warn } from './console'\nimport { onMessage } from './events/message'\nimport onMouse from './events/mouse'\nimport resizeIframe from './events/resize'\nimport on from './events/wrapper'\nimport closeIframe from './methods/close'\nimport resetIframe from './methods/reset'\nimport { startPageInfoMonitor, stopPageInfoMonitor } from './monitor/page-info'\nimport { startParentInfoMonitor, stopParentInfoMonitor } from './monitor/props'\nimport inPageLink from './page/in-page-link'\nimport { scrollBy, scrollTo, scrollToOffset } from './page/scroll'\nimport { setTitle } from './page/title'\nimport getMessageBody from './received/message'\nimport firstRun from './setup/first-run'\nimport type { MessageData } from './types'\nimport settings from './values/settings'\n\nexport default function routeMessage(messageData: MessageData): void {\n const { height, id, iframe, mode, message, type, width } = messageData\n const { lastMessage } = settings[id]\n\n if (settings[id]?.firstRun) firstRun(id, mode)\n log(id, `Received: %c${lastMessage}`, HIGHLIGHT)\n\n switch (type) {\n case AUTO_RESIZE:\n settings[id].autoResize = JSON.parse(getMessageBody(id, 9))\n break\n\n case BEFORE_UNLOAD:\n info(id, 'Ready state reset')\n settings[id].initialised = false\n break\n\n case CLOSE:\n closeIframe(iframe)\n break\n\n case IN_PAGE_LINK:\n inPageLink(id, getMessageBody(id, 9))\n break\n\n case INIT:\n resizeIframe(messageData)\n checkSameDomain(id)\n checkVersion(id, message)\n settings[id].initialised = true\n on(id, 'onReady', iframe)\n break\n\n case MESSAGE:\n onMessage(messageData, getMessageBody(id, 6))\n break\n\n case MOUSE_ENTER:\n onMouse('onMouseEnter', messageData)\n break\n\n case MOUSE_LEAVE:\n onMouse('onMouseLeave', messageData)\n break\n\n case PAGE_INFO:\n startPageInfoMonitor(id)\n break\n\n case PARENT_INFO:\n startParentInfoMonitor(id)\n break\n\n case PAGE_INFO_STOP:\n stopPageInfoMonitor(id)\n break\n\n case PARENT_INFO_STOP:\n stopParentInfoMonitor(id)\n break\n\n case RESET:\n resetIframe(messageData)\n break\n\n case SCROLL_BY:\n scrollBy(messageData)\n break\n\n case SCROLL_TO:\n scrollTo(messageData)\n break\n\n case SCROLL_TO_OFFSET:\n scrollToOffset(messageData)\n break\n\n case TITLE:\n setTitle(id, message)\n break\n\n default:\n if (width === 0 && height === 0) {\n warn(\n id,\n `Unsupported message received (${type}), this is likely due to the iframe containing a later ` +\n `version of iframe-resizer than the parent page`,\n )\n return\n }\n\n if (width === 0 || height === 0) {\n log(id, 'Ignoring message with 0 height or width')\n return\n }\n\n // Recheck document.hidden here, as only Firefox\n // correctly supports this in the iframe\n if (document.hidden) {\n log(id, 'Page hidden - ignored resize request')\n return\n }\n\n resizeIframe(messageData)\n }\n}\n","import checkMode from '../checks/mode'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function firstRun(id: string, mode: string | undefined): void {\n if (!settings[id]) return\n\n log(id, `First run for ${id}`)\n checkMode(id, mode === undefined ? undefined : Number(mode))\n settings[id].firstRun = false\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function checkSameDomain(id: string): void {\n try {\n settings[id].sameOrigin =\n !!settings[id]?.iframe?.contentWindow?.iframeChildListener\n } catch (error) {\n settings[id].sameOrigin = false\n }\n\n log(id, `sameOrigin: %c${settings[id].sameOrigin}`, HIGHLIGHT)\n}\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { VERSION } from '../../common/consts'\nimport { advise, log } from '../console'\n\nexport default function checkVersion(\n id: string,\n version: string | undefined,\n): void {\n if (version === VERSION) return\n if (version === undefined) {\n advise(\n id,\n `<rb>Legacy version detected in iframe</>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use <b>@iframe-resizer/child</>.\n\nSee <u>https://iframe-resizer.com/setup/#child-page-setup</> for more details.\n`,\n )\n return\n }\n log(\n id,\n `Version mismatch (Child: %c${version}%c !== Parent: %c${VERSION})`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n}\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { log } from '../console'\nimport type { MessageData } from '../types'\nimport on from './wrapper'\n\n// eslint-disable-next-line import/prefer-default-export\nexport function onMessage(messageData: MessageData, messageBody: string): void {\n const { id, iframe } = messageData\n\n log(\n id,\n `onMessage passed: {iframe: %c${id}%c, message: %c${messageBody}%c}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n FOREGROUND,\n )\n\n on(id, 'onMessage', {\n iframe,\n message: JSON.parse(messageBody),\n })\n}\n","import { CHILD_READY_MESSAGE, MESSAGE, PARENT, STRING } from '../common/consts'\nimport { addEventListener } from '../common/listeners'\nimport { once } from '../common/utils'\nimport { debug, errorBoundary, event as consoleEvent } from './console'\nimport tabVisible from './events/visible'\nimport decodeMessage from './received/decode'\nimport {\n checkIframeExists,\n isMessageForUs,\n isMessageFromIframe,\n isMessageFromMetaParent,\n} from './received/preflight'\nimport routeMessage from './router'\nimport iframeReady from './send/ready'\nimport settings from './values/settings'\n\nfunction iframeListener(\n event: MessageEvent | { data: any; sameOrigin?: boolean },\n): void {\n const msg = event.data\n\n if (msg === CHILD_READY_MESSAGE) {\n iframeReady((event as MessageEvent).source)\n return\n }\n\n if (!isMessageForUs(msg)) {\n if (typeof msg !== STRING) return\n consoleEvent(PARENT, 'ignoredMessage')\n debug(PARENT, msg)\n return\n }\n\n const messageData = decodeMessage(msg)\n const { id, type } = messageData\n\n consoleEvent(id, type)\n\n switch (true) {\n case !settings[id]:\n throw new Error(`${type} No settings for ${id}. Message was: ${msg}`)\n\n case !checkIframeExists(messageData):\n case isMessageFromMetaParent(messageData):\n case !isMessageFromIframe(messageData, event):\n return\n\n default:\n settings[id].lastMessage = event.data\n errorBoundary(id, routeMessage)(messageData)\n }\n}\n\nexport default once(() => {\n addEventListener(window, MESSAGE, iframeListener as EventListener)\n addEventListener(document, 'visibilitychange', tabVisible)\n window.iframeParentListener = (data: any) =>\n setTimeout(() => iframeListener({ data, sameOrigin: true }))\n})\n","import settings from '../values/settings'\n\nexport const sendIframeReady =\n (source: MessageEventSource | null) =>\n ({\n initChild,\n postMessageTarget,\n }: {\n initChild: () => void\n postMessageTarget: MessageEventSource | null\n }): void => {\n if (source === postMessageTarget) initChild()\n }\n\nexport default (source: MessageEventSource | null): void =>\n Object.values(settings).forEach(sendIframeReady(source))\n","import { NEW_LINE } from '../../common/consts'\nimport { advise } from '../console'\n\nconst shownDuplicateIdWarning: Record<string, boolean> = {}\n\nexport default function checkUniqueId(id: string): boolean {\n if (shownDuplicateIdWarning[id] === true) return false\n\n const elements = document.querySelectorAll(`iframe#${CSS.escape(id)}`)\n if (elements.length <= 1) return true\n\n shownDuplicateIdWarning[id] = true\n\n const elementList = Array.from(elements).flatMap((element) => [\n NEW_LINE,\n element,\n NEW_LINE,\n ])\n\n advise(\n id,\n `<rb>Duplicate ID attributes detected</>\n\nThe <b>${id}</> ID is not unique. Having multiple iframes on the same page with the same ID causes problems with communication between the iframe and parent page. Please ensure that the ID of each iframe has a unique value.\n\nFound <bb>${elements.length}</> iframes with the <b>${id}</> ID:`,\n ...elementList,\n NEW_LINE,\n )\n\n return false\n}\n","import {\n MESSAGE,\n REMOVED_NEXT_VERSION,\n RESIZE,\n STRING,\n} from '../../common/consts'\nimport { typeAssert } from '../../common/utils'\nimport { advise } from '../console'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\nimport closeIframe from './close'\nimport disconnect from './disconnect'\n\nconst DEPRECATED_REMOVE_LISTENERS = `<rb>Deprecated Method Name</>\n\nThe <b>removeListeners()</> method has been renamed to <b>disconnect()</>. ${REMOVED_NEXT_VERSION}`\n\nconst DEPRECATED_RESIZE = `<rb>Deprecated Method</>\n\nUse of the <b>resize()</> method from the parent page is deprecated and will be removed in a future version of <i>iframe-resizer</>. As there are no longer any edge cases that require triggering a resize from the parent page, it is recommended to remove this method from your code.`\n\nexport default function attachMethods(id: string): void {\n if (settings[id]) {\n const { iframe } = settings[id]\n const resizer = {\n close: closeIframe.bind(null, iframe),\n\n disconnect: disconnect.bind(null, iframe),\n\n moveToAnchor(anchor: string) {\n typeAssert(anchor, STRING, 'moveToAnchor(anchor) anchor')\n trigger('Move to anchor', `moveToAnchor:${anchor}`, id)\n },\n\n removeListeners() {\n advise(id, DEPRECATED_REMOVE_LISTENERS)\n this.disconnect()\n },\n\n resize() {\n advise(id, DEPRECATED_RESIZE)\n trigger('Window resize', RESIZE, id)\n },\n\n sendMessage(message: any) {\n message = JSON.stringify(message)\n trigger(MESSAGE, `${MESSAGE}:${message}`, id)\n },\n }\n\n iframe.iframeResizer = resizer\n iframe.iFrameResizer = resizer\n }\n}\n","import { CHILD, SEPARATOR } from '../../common/consts'\nimport page from '../values/page'\nimport settings from '../values/settings'\n\n// Backwards compatibility consts\nconst V1_PADDING = '8'\nconst INTERVAL = '32'\nconst RESIZE_FROM = CHILD\nconst PUBLIC_METHODS = true\n\nexport default function createOutgoingMessage(id: string): string {\n const {\n autoResize,\n bodyBackground,\n bodyMargin,\n bodyPadding,\n heightCalculationMethod,\n inPageLinks,\n license,\n log,\n logExpand,\n mouseEvents,\n offsetHeight,\n offsetWidth,\n mode,\n sizeHeight,\n // sizeSelector,\n sizeWidth,\n tolerance,\n widthCalculationMethod,\n } = settings[id]\n\n return [\n id,\n V1_PADDING,\n sizeWidth,\n log,\n INTERVAL,\n PUBLIC_METHODS,\n autoResize,\n bodyMargin,\n heightCalculationMethod,\n bodyBackground,\n bodyPadding,\n tolerance,\n inPageLinks,\n RESIZE_FROM,\n widthCalculationMethod,\n mouseEvents,\n offsetHeight,\n offsetWidth,\n sizeHeight,\n license,\n page.version,\n mode,\n '', // sizeSelector,\n logExpand,\n ].join(SEPARATOR)\n}\n","import { OBJECT } from '../../common/consts'\nimport { advise, event } from '../console'\n\nconst getOrigin = (url: string): string | null => {\n try {\n return new URL(url).origin\n } catch (error) {\n return null\n }\n}\n\nconst allowsScriptsAndOrigin = (sandbox: any): boolean =>\n typeof sandbox === OBJECT &&\n sandbox.length > 0 &&\n !(sandbox.contains('allow-scripts') && sandbox.contains('allow-same-origin'))\n\nfunction showWarning(id: string, settings: Record<string, any>): void {\n const {\n checkOrigin,\n iframe: { src, sandbox },\n initialisedFirstPage,\n waitForLoad,\n } = settings[id]\n const targetOrigin = getOrigin(src)\n\n event(id, 'noResponse')\n advise(\n id,\n `<rb>No response from iframe</>\n\nThe iframe (<i>${id}</>) has not responded within ${settings[id].warningTimeout / 1000} seconds. Check <b>@iframe-resizer/child</> package has been loaded in the iframe.\n${\n checkOrigin && targetOrigin\n ? `\nThe <b>checkOrigin</> option is currently enabled. If the iframe redirects away from <i>${targetOrigin}</>, then the connection to the iframe may be blocked by the browser. To disable this option, set <b>checkOrigin</> to <bb>false</> or an array of allowed origins. See <u>https://iframe-resizer.com/checkorigin</> for more information.\n`\n : ''\n}${\n waitForLoad && !initialisedFirstPage\n ? `\nThe <b>waitForLoad</> option is currently set to <bb>true</>. If the iframe loads before <i>iframe-resizer</> runs, this option will prevent <i>iframe-resizer</> initialising. To disable this option, set <b>waitForLoad</> to <bb>false</>.\n`\n : ''\n }${\n allowsScriptsAndOrigin(sandbox)\n ? `\nThe iframe has the <b>sandbox</> attribute, please ensure it contains both the <bb>allow-same-origin</> and <bb>allow-scripts</> values.\n`\n : ''\n }\nThis message can be ignored if everything is working, or you can set the <b>warningTimeout</> option to a higher value or zero to suppress this warning.\n`,\n )\n}\n\nexport default function warnOnNoResponse(\n id: string,\n settings: Record<string, any>,\n): void {\n function warning(): void {\n if (settings[id] === undefined) return // iframe has been closed while we were waiting\n\n const { initialised, loadErrorShown } = settings[id]\n\n settings[id].msgTimeout = undefined\n\n if (initialised) {\n settings[id].initialisedFirstPage = true\n return\n }\n\n if (loadErrorShown) return\n\n settings[id].loadErrorShown = true\n showWarning(id, settings)\n }\n\n const { msgTimeout, warningTimeout } = settings[id]\n\n if (!warningTimeout) return\n if (msgTimeout) clearTimeout(msgTimeout)\n\n settings[id].msgTimeout = setTimeout(warning, warningTimeout)\n}\n","import {\n INIT,\n INIT_FROM_IFRAME,\n LAZY,\n LOAD,\n MIN_SIZE,\n ONLOAD,\n RESET_REQUIRED_METHODS,\n} from '../../common/consts'\nimport { addEventListener } from '../../common/listeners'\nimport { event as consoleEvent, info } from '../console'\nimport resetIframe from '../methods/reset'\nimport warnOnNoResponse from '../send/timeout'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nconst AFTER_EVENT_STACK = 1\nconst isLazy = (iframe: HTMLIFrameElement): boolean => iframe.loading === LAZY\nconst isInit = (eventType: string): boolean => eventType === INIT\n\nfunction checkReset(id: string): void {\n if (!(settings[id]?.heightCalculationMethod in RESET_REQUIRED_METHODS)) return\n\n resetIframe({\n id,\n iframe: settings[id].iframe,\n height: MIN_SIZE,\n width: MIN_SIZE,\n type: INIT,\n })\n}\n\nfunction addLoadListener(\n iframe: HTMLIFrameElement,\n initChild: () => void,\n): void {\n // allow other concurrent events to go first\n const onload = (): ReturnType<typeof setTimeout> =>\n setTimeout(initChild, AFTER_EVENT_STACK)\n addEventListener(iframe, LOAD, onload)\n}\n\nconst noContent = (iframe: HTMLIFrameElement): boolean => {\n const { src, srcdoc } = iframe\n return !srcdoc && (src == null || src === '' || src === 'about:blank')\n}\n\nfunction sendInit(id: string, initChild: () => void): void {\n const { iframe, waitForLoad } = settings[id]\n\n if (waitForLoad === true) return\n if (noContent(iframe)) {\n setTimeout(() => {\n consoleEvent(id, 'noContent')\n info(id, 'No content detected in the iframe, delaying initialisation')\n })\n return\n }\n\n setTimeout(initChild)\n}\n\n// We have to call trigger twice, as we can not be sure if all\n// iframes have completed loading when this code runs. The\n// event listener also catches the page changing in the iFrame.\nexport default function init(id: string, message: string): void {\n const createInitChild = (eventType: string) => (): void => {\n if (!settings[id]) return // iframe removed before load event\n\n const { firstRun, iframe } = settings[id]\n\n trigger(eventType, message, id)\n if (!(isInit(eventType) && isLazy(iframe))) warnOnNoResponse(id, settings)\n\n if (!firstRun) checkReset(id)\n }\n\n const { iframe } = settings[id]\n\n settings[id].initChild = createInitChild(INIT_FROM_IFRAME)\n addLoadListener(iframe, createInitChild(ONLOAD))\n sendInit(id, createInitChild(INIT))\n}\n","import { warn } from '../console'\nimport settings from '../values/settings'\n\nexport const getTargetOrigin = (remoteHost: string): string =>\n remoteHost === '' ||\n remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) !== null\n ? '*'\n : remoteHost\n\nexport function setTargetOrigin(id: string): void {\n const { checkOrigin, remoteHost } = settings[id]\n\n if (Array.isArray(checkOrigin) && checkOrigin.length === 0) {\n warn(\n id,\n 'checkOrigin is an empty array — no messages will be sent to the iframe',\n )\n }\n\n settings[id].targetOrigin = Array.isArray(checkOrigin)\n ? checkOrigin.map(getTargetOrigin)\n : [checkOrigin === false ? '*' : getTargetOrigin(remoteHost)]\n}\n\nexport function getPostMessageTarget(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n if (settings[id].postMessageTarget === null)\n settings[id].postMessageTarget = iframe.contentWindow\n}\n","import { OFFSET, OFFSET_SIZE, REMOVED_NEXT_VERSION } from '../../common/consts'\nimport { hasOwn } from '../../common/utils'\nimport { advise } from '../console'\nimport settings from '../values/settings'\n\nfunction updateOptionName(id: string, oldName: string, newName: string): void {\n if (hasOwn(settings[id], oldName)) {\n advise(\n id,\n `<rb>Deprecated option</>\\n\\nThe <b>${oldName}</> option has been renamed to <b>${newName}</>. ${REMOVED_NEXT_VERSION}`,\n )\n settings[id][newName] = settings[id][oldName]\n delete settings[id][oldName]\n }\n}\n\nexport default function updateOptionNames(id: string): void {\n updateOptionName(id, OFFSET, OFFSET_SIZE)\n updateOptionName(id, 'onClose', 'onBeforeClose')\n updateOptionName(id, 'onClosed', 'onAfterClose')\n}\n","import setMode from '../../common/mode'\nimport { hasOwn } from '../../common/utils'\nimport checkOptions from '../checks/options'\nimport checkWarningTimeout from '../checks/warning-timeout'\nimport { checkTitle } from '../page/title'\nimport setOffsetSize from '../send/offset'\nimport defaults from '../values/defaults'\nimport settings from '../values/settings'\nimport setDirection from './direction'\nimport { getPostMessageTarget, setTargetOrigin } from './target-origin'\nimport updateOptionNames from './update-option-names'\n\nconst hasMouseEvents = (options: Record<string, any>): boolean =>\n hasOwn(options, 'onMouseEnter') || hasOwn(options, 'onMouseLeave')\n\nexport default function processOptions(\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n const { id } = iframe\n settings[id] = {\n ...settings[id],\n iframe,\n remoteHost: iframe?.src.split('/').slice(0, 3).join('/'),\n ...defaults,\n ...checkOptions(id, options),\n mouseEvents: hasMouseEvents(options),\n mode: setMode(options),\n syncTitle: checkTitle(id),\n }\n\n updateOptionNames(id)\n setDirection(id)\n setOffsetSize(id, options)\n checkWarningTimeout(id)\n getPostMessageTarget(iframe)\n setTargetOrigin(id)\n}\n","import {\n AUTO_RESIZE,\n BOTH,\n HORIZONTAL,\n NONE,\n VERTICAL,\n} from '../../common/consts'\nimport { advise } from '../console'\n\nexport default function checkOptions(\n id: string,\n options: Record<string, any> | undefined,\n): Record<string, any> {\n if (!options) return {}\n\n if (\n 'sizeWidth' in options ||\n 'sizeHeight' in options ||\n AUTO_RESIZE in options\n ) {\n advise(\n id,\n `<rb>Deprecated Option</>\n\nThe <b>sizeWidth</>, <b>sizeHeight</> and <b>autoResize</> options have been replaced with new <b>direction</> option which expects values of <bb>${VERTICAL}</>, <bb>${HORIZONTAL}</>, <bb>${BOTH}</> or <bb>${NONE}</>.\n`,\n )\n }\n\n return options\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { BOTH, HORIZONTAL, NONE, VERTICAL } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function setDirection(id: string): void {\n const { direction } = settings[id]\n\n switch (direction) {\n case VERTICAL:\n break\n\n case HORIZONTAL:\n settings[id].sizeHeight = false\n // eslint-disable-next-line no-fallthrough\n case BOTH:\n settings[id].sizeWidth = true\n break\n\n case NONE:\n settings[id].sizeWidth = false\n settings[id].sizeHeight = false\n settings[id].autoResize = false\n break\n\n default:\n throw new TypeError(`Direction value of \"${direction}\" is not valid`)\n }\n\n log(id, `direction: %c${direction}`, HIGHLIGHT)\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { VERTICAL } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function setOffsetSize(\n id: string,\n { offset, offsetSize }: { offset?: number; offsetSize?: number },\n): void {\n const newOffset = offsetSize || offset\n\n if (!newOffset) return // No offset set or offset is zero\n\n if (settings[id].direction === VERTICAL) {\n settings[id].offsetHeight = newOffset\n log(id, `Offset height: %c${newOffset}`, HIGHLIGHT)\n } else {\n settings[id].offsetWidth = newOffset\n log(id, `Offset width: %c${newOffset}`, HIGHLIGHT)\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport settings from '../values/settings'\n\nexport default function checkWarningTimeout(id: string): void {\n if (!settings[id].warningTimeout) {\n info(id, 'warningTimeout:%c disabled', HIGHLIGHT)\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { preModeCheck } from '../checks/mode'\nimport checkUniqueId from '../checks/unique'\nimport { endAutoGroup, event as consoleEvent, log } from '../console'\nimport attachMethods from '../methods/attach'\nimport createOutgoingMessage from '../send/outgoing'\nimport setupBodyMargin from './body-margin'\nimport init from './init'\nimport processOptions from './process-options'\nimport setScrolling from './scrolling'\n\nfunction setup(\n id: string,\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n processOptions(iframe, options)\n log(id, `src: %c${iframe.srcdoc || iframe.src}`, HIGHLIGHT)\n preModeCheck(id)\n setScrolling(iframe)\n setupBodyMargin(id)\n init(id, createOutgoingMessage(id))\n attachMethods(id)\n log(id, 'Setup complete')\n}\n\nexport default function (\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n const { id } = iframe\n consoleEvent(id, 'setup')\n if (checkUniqueId(id)) setup(id, iframe, options)\n endAutoGroup(id)\n}\n","import { AUTO, HIDDEN, OMIT } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nconst YES = 'yes'\nconst NO = 'no'\n\nexport default function setScrolling(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n\n log(\n id,\n `Iframe scrolling ${\n settings[id]?.scrolling ? 'enabled' : 'disabled'\n } for ${id}`,\n )\n\n iframe.style.overflow = settings[id]?.scrolling === false ? HIDDEN : AUTO\n\n switch (settings[id]?.scrolling) {\n case OMIT:\n break\n\n case true:\n iframe.scrolling = YES\n break\n\n case false:\n iframe.scrolling = NO\n break\n\n default:\n iframe.scrolling = settings[id]?.scrolling || NO\n }\n}\n","import { NUMBER } from '../../common/consts'\nimport settings from '../values/settings'\n\nconst ZERO = '0'\n\nexport default function setupBodyMargin(id: string): void {\n const { bodyMargin } = settings[id]\n\n if (typeof bodyMargin === NUMBER || bodyMargin === ZERO) {\n settings[id].bodyMargin = `${bodyMargin}px`\n }\n}\n","import {\n COLLAPSE,\n EXPAND,\n LOG_COLLAPSED,\n LOG_DISABLED,\n LOG_EXPANDED,\n LOG_OPTIONS,\n} from '../../common/consts'\nimport { hasOwn, isString } from '../../common/utils'\nimport { enableVInfo } from '../checks/mode'\nimport { error, setupConsole } from '../console'\nimport defaults from '../values/defaults'\n\nexport default function startLogging(\n id: string,\n options: Record<string, any>,\n): void {\n // eslint-disable-next-line unicorn/prefer-switch\n if (options.log === LOG_DISABLED) options.log = false\n else if (options.log === LOG_COLLAPSED) options.log = COLLAPSE\n else if (options.log === LOG_EXPANDED) options.log = EXPAND\n\n const isLogEnabled = hasOwn(options, 'log')\n const isLogString = isString(options.log)\n const enabled = isLogEnabled\n ? isLogString\n ? true\n : options.log\n : defaults.log\n\n if (!hasOwn(options, 'logExpand')) {\n options.logExpand =\n isLogEnabled && isLogString ? options.log === EXPAND : defaults.logExpand\n }\n\n enableVInfo(options)\n setupConsole({\n enabled,\n expand: options.logExpand,\n iframeId: id,\n })\n\n if (isLogString && !(options.log in LOG_OPTIONS))\n error(\n id,\n `Invalid value for options.log: Accepted values are \"${EXPAND}\" and \"${COLLAPSE}\"`,\n )\n\n options.log = enabled\n}\n","import { LABEL } from '../common/consts'\nimport { isObject } from '../common/utils'\nimport ensureHasId from './checks/id'\nimport checkManualLogging from './checks/manual-logging'\nimport { errorBoundary, event as consoleEvent, warn } from './console'\nimport setupEventListenersOnce from './listeners'\nimport setupIframe from './setup'\nimport setupLogging from './setup/logging'\n\nexport { LOG_COLLAPSED, LOG_DISABLED, LOG_EXPANDED } from '../common/consts'\nexport type {\n Direction,\n IFrameComponent,\n IFrameMessageData,\n IFrameMouseData,\n IFrameObject,\n IFrameOptions,\n IFrameResizedData,\n IFrameScrollData,\n LogOption,\n MessageData,\n ScrollOption,\n} from './types'\n\nexport default function connectResizer(\n options: Record<string, any>,\n): (iframe: HTMLIFrameElement) => any {\n if (!isObject(options)) throw new TypeError('Options is not an object')\n\n setupEventListenersOnce()\n checkManualLogging(options)\n\n return (iframe: HTMLIFrameElement) => {\n const id = ensureHasId(iframe, options)\n\n if (LABEL in iframe) {\n consoleEvent(id, 'alreadySetup')\n warn(id, `Ignored iframe (${id}), already setup.`)\n } else {\n setupLogging(id, options)\n errorBoundary(id, setupIframe)(iframe, options)\n }\n\n return iframe?.iframeResizer\n }\n}\n","import {\n COLLAPSE,\n EXPAND,\n LOG_COLLAPSED,\n LOG_DISABLED,\n LOG_EXPANDED,\n} from '../../common/consts'\n\nexport default function (options: Record<string, any>): void {\n const { search } = window.location\n\n if (search.includes('ifrlog')) {\n const value = new URLSearchParams(search).get('ifrlog')\n\n switch (value) {\n case String(LOG_DISABLED): {\n options.log = false\n\n break\n }\n\n case EXPAND:\n case String(LOG_EXPANDED): {\n options.log = EXPAND\n\n break\n }\n\n case COLLAPSE:\n case String(LOG_COLLAPSED): {\n options.log = COLLAPSE\n\n break\n }\n\n default: {\n options.log = COLLAPSE\n }\n }\n }\n}\n","import connectResizer from '@iframe-resizer/core'\n\n// eslint-disable-next-line import/extensions\nimport { deprecateMethod, warn } from '../core/console'\n\nswitch (true) {\n case window.jQuery === undefined:\n warn('', 'Unable to bind to jQuery, it is not available.')\n break\n\n case !window.jQuery.fn:\n warn('', 'Unable to bind to jQuery, it is not fully loaded.')\n break\n\n case window.jQuery.fn.iframeResize:\n warn('', 'iframeResize is already assigned to jQuery.fn.')\n break\n\n default:\n window.jQuery.fn.iframeResize = function (options) {\n const connectWithOptions = connectResizer(options)\n const init = (i, el) => connectWithOptions(el)\n\n return this.filter('iframe').each(init).end()\n }\n\n window.jQuery.fn.iFrameResize = function (options) {\n deprecateMethod('iFrameResize()', 'iframeResize()', '', 'jQuery')\n\n return this.iframeResize(options)\n }\n}\n"],"names":["VERSION","LABEL","SEPARATOR","AUTO_RESIZE","INIT","INIT_FROM_IFRAME","LOAD","MESSAGE","ONLOAD","PAGE_INFO","PARENT_INFO","RESET","RESIZE","SCROLL","NEW_LINE","PARENT","STRING","OBJECT","FUNCTION","AUTO","NONE","BOTH","VERTICAL","HORIZONTAL","MESSAGE_ID","RESET_REQUIRED_METHODS","Object","freeze","max","scroll","bodyScroll","documentElementScroll","INIT_EVENTS","EXPAND","COLLAPSE","LOG_OPTIONS","REMOVED_NEXT_VERSION","isObject","value","isString","hasOwn","o","k","prototype","hasOwnProperty","call","hasOwnFallback","$","U","f","_","assert","error","warn","L","expand","defaultEvent","event","label","showTime","q","profile","profileEnd","timeStamp","trace","u","assign","console","fromEntries","W","keys","b","z","K","t","s","h","map","T","window","matchMedia","matches","J","Y","TAGS","br","rb","bb","i","tags","RegExp","join","lookup","tag","_a","createFormatAdvise","formatLogMessage","message","chrome","replace","replaceAll","filter","settings","createConsoleGroup","mod","c","r","collapsed","expanded","l","length","d","O","some","e","g","P","n","groupEnd","p","Date","toString","padStart","V","queueMicrotask","a","push","w","performance","now","count","countReset","endAutoGroup","errorBoundary","m","E","Error","isPrototypeOf","purge","time","timeEnd","timeLog","touch","__esModule","default","consoleEnabled","parent","getMyId","iframeId","top","self","output","type","args","outputSwitched","log","isLogEnabled","info","debug","formatAdvise","x","advise","localFormatAdvise","formatLogMsg","deprecateAdvise","change","old","replacement","toLowerCase","deprecate","deprecateMethod","deprecateOption","defaults","autoResize","bodyBackground","bodyMargin","bodyPadding","checkOrigin","direction","firstRun","inPageLinks","heightCalculationMethod","id","logExpand","license","undefined","mouseEvents","offsetHeight","offsetWidth","postMessageTarget","sameDomain","scrolling","sizeHeight","sizeWidth","tolerance","waitForLoad","warningTimeout","widthCalculationMethod","onBeforeClose","onAfterClose","onInit","onMessage","onMouseEnter","onMouseLeave","onReady","messageData","onResized","onScroll","ensureHasId","iframe","options","TypeError","document","getElementById","newId","consoleEvent","src","addEventListener","el","evt","func","removeEventListener","dispatch","calleeMsg","msg","logSent","route","displayMsg","split","index","filterMsg","HIGHLIGHT","FOREGROUND","sameOrigin","targetOrigin","contentWindow","iframeChildListener","origin","postMessage","trigger","tabVisible","hidden","eventName","values","forEach","sendTriggerMsg","getPaddingEnds","compStyle","boxSizing","paddingTop","parseInt","paddingBottom","getBorderEnds","borderTopWidth","borderBottomWidth","ABOVE_TYPES","true","false","checkIframeExists","detectedIframe","element","tagName","HTMLIFrameElement","isIframe","on","funcName","val","setTimeout","isolateUserCode","getMessageBody","offset","lastMessage","slice","indexOf","onMouse","height","width","mousePos","y","coords","screenX","Number","screenY","page","position","version","unsetPagePosition","getPagePosition","scrollX","scrollY","setPagePosition","scrollTo","setDimension","dimension","size","style","setSize","resizeIframe","disconnect","iframeResizer","closeIframe","parentNode","remove","resetIframe","sendInfoToIframe","infoFunction","gate","requestType","frameId","requestAnimationFrame","stopInfoMonitor","stopFunction","startInfoMonitor","pending","sendInfo","stop","sendScroll","sendResize","pageObserver","ResizeObserver","iframeObserver","setListener","listener","observe","body","startPageInfoMonitor","bodyPosition","getBoundingClientRect","iFramePosition","innerHeight","innerWidth","clientHeight","clientWidth","documentElement","JSON","stringify","iframeHeight","iframeWidth","Math","offsetTop","trunc","offsetLeft","left","scrollTop","scrollLeft","documentHeight","documentWidth","windowHeight","windowWidth","stopPageInfoMonitor","startParentInfoMonitor","scrollWidth","scrollHeight","pageLeft","pageTop","scale","visualViewport","viewport","stopParentInfoMonitor","getElementPosition","target","iframePosition","pagePosition","scrollToLink","scrollRequestFromChild","addOffset","newPosition","calcOffset","parentIframe","parentIFrame","scrollParent","reposition","scrollToOffset","inPageLink","location","hash","hashData","decodeURIComponent","getElementsByName","jumpToTarget","moveToAnchor","jumpToParent","checkTitle","title","_b","codePointAt","imul","String","fromCodePoint","Q","Set","Array","from","arr","dd","dx","dy","getModeData","setMode","v","has","vAdvised","vInfoDisable","checkMode","childMode","mode","consoleClear","ver","NORMAL","vInfo","getModeLabel","routeMessage","parse","initialised","_c","checkSameDomain","checkVersion","messageBody","scrollBy","syncTitle","setTitle","iframeListener","data","source","initChild","sendIframeReady","getComputedStyle","decodeMessage","isMetaParent","isMessageFromMetaParent","constructor","checkList","remoteHost","checkSingle","isMessageFromIframe","setupEventListenersOnce","fn","done","apply","this","once","iframeParentListener","shownDuplicateIdWarning","DEPRECATED_REMOVE_LISTENERS","attachMethods","resizer","close","bind","anchor","string","charAt","toUpperCase","typeAssert","removeListeners","resize","sendMessage","iFrameResizer","V1_PADDING","INTERVAL","RESIZE_FROM","PUBLIC_METHODS","showWarning","sandbox","initialisedFirstPage","url","URL","getOrigin","contains","allowsScriptsAndOrigin","init","createInitChild","eventType","isInit","loading","isLazy","msgTimeout","clearTimeout","loadErrorShown","warnOnNoResponse","checkReset","addLoadListener","srcdoc","noContent","sendInit","getTargetOrigin","match","updateOptionName","oldName","newName","hasMouseEvents","processOptions","checkOptions","updateOptionNames","setDirection","offsetSize","newOffset","setOffsetSize","checkWarningTimeout","getPostMessageTarget","isArray","setTargetOrigin","setup","preModeCheck","overflow","_d","setScrolling","setupBodyMargin","createOutgoingMessage","setupIframe","elements","querySelectorAll","CSS","escape","elementList","flatMap","checkUniqueId","startLogging","isLogString","enabled","enableVInfo","consoleGroup","setupConsole","connectResizer","search","includes","URLSearchParams","get","checkManualLogging","setupLogging","jQuery","iframeResize","connectWithOptions","each","end","iFrameResize"],"mappings":"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","x_google_ignoreList":[2]}
|
|
1
|
+
{"version":3,"file":"index.umd.js","sources":["../../packages/common/consts.ts","../../packages/common/utils.ts","../../node_modules/auto-console-group/dist/index.js","../../packages/common/format-advise.ts","../../packages/core/values/settings.ts","../../packages/core/console.ts","../../packages/common/deprecate.ts","../../packages/core/values/defaults.ts","../../packages/core/checks/id.ts","../../packages/common/listeners.ts","../../packages/core/send/trigger.ts","../../packages/core/events/visible.ts","../../packages/core/received/decode.ts","../../packages/core/received/preflight.ts","../../packages/core/events/wrapper.ts","../../packages/core/received/message.ts","../../packages/core/events/mouse.ts","../../packages/core/values/page.ts","../../packages/core/page/position.ts","../../packages/core/events/size.ts","../../packages/core/events/resize.ts","../../packages/core/methods/disconnect.ts","../../packages/core/methods/close.ts","../../packages/core/methods/reset.ts","../../packages/core/monitor/common.ts","../../packages/core/monitor/page-info.ts","../../packages/core/monitor/props.ts","../../packages/core/page/scroll.ts","../../packages/core/page/in-page-link.ts","../../packages/core/page/title.ts","../../packages/common/mode.ts","../../packages/core/checks/mode.ts","../../packages/core/router.ts","../../packages/core/setup/first-run.ts","../../packages/core/checks/origin.ts","../../packages/core/checks/version.ts","../../packages/core/events/message.ts","../../packages/core/listeners.ts","../../packages/core/send/ready.ts","../../packages/core/checks/unique.ts","../../packages/core/methods/attach.ts","../../packages/core/send/outgoing.ts","../../packages/core/send/timeout.ts","../../packages/core/setup/init.ts","../../packages/core/checks/options.ts","../../packages/core/setup/target-origin.ts","../../packages/core/setup/update-option-names.ts","../../packages/core/setup/process-options.ts","../../packages/core/setup/direction.ts","../../packages/core/send/offset.ts","../../packages/core/checks/warning-timeout.ts","../../packages/core/setup/index.ts","../../packages/core/setup/scrolling.ts","../../packages/core/setup/body-margin.ts","../../packages/core/setup/logging.ts","../../packages/core/index.ts","../../packages/core/checks/manual-logging.ts","../../packages/jquery/plugin.js"],"sourcesContent":["export const VERSION = '[VI]{version}[/VI]'\nexport const LABEL = 'iframeResizer'\nexport const SEPARATOR = ':'\nexport const CHILD_READY_MESSAGE = '[iFrameResizerChild]Ready'\n\nexport const AUTO_RESIZE = 'autoResize'\nexport const BEFORE_UNLOAD = 'beforeUnload'\nexport const CLOSE = 'close'\nexport const IN_PAGE_LINK = 'inPageLink'\nexport const INIT = 'init'\nexport const INIT_FROM_IFRAME = 'iframeReady'\nexport const LAZY = 'lazy'\nexport const LOAD = 'load'\nexport const MESSAGE = 'message'\nexport const MOUSE_ENTER = 'mouseenter'\nexport const MOUSE_LEAVE = 'mouseleave'\nexport const ONLOAD = 'onload'\nexport const PAGE_HIDE = 'pageHide'\nexport const PAGE_INFO = 'pageInfo'\nexport const PARENT_INFO = 'parentInfo'\nexport const PAGE_INFO_STOP = 'pageInfoStop'\nexport const PARENT_INFO_STOP = 'parentInfoStop'\nexport const RESET = 'reset'\nexport const RESIZE = 'resize'\nexport const SCROLL_BY = 'scrollBy'\nexport const SCROLL_TO = 'scrollTo'\nexport const SCROLL_TO_OFFSET = 'scrollToOffset'\nexport const TITLE = 'title'\n\nexport const BASE = 10\nexport const SINGLE = 1\nexport const MIN_SIZE = 1\n\nexport const SIZE_ATTR = 'data-iframe-size'\nexport const OVERFLOW_ATTR = 'data-iframe-overflowed'\nexport const IGNORE_ATTR = 'data-iframe-ignore'\n\nexport const HEIGHT = 'height'\nexport const WIDTH = 'width'\nexport const OFFSET = 'offset'\nexport const OFFSET_HEIGHT = 'offsetHeight'\nexport const OFFSET_SIZE = 'offsetSize'\nexport const SCROLL = 'scroll'\nexport const NEW_LINE = '\\n'\n\nexport const HIDDEN = 'hidden'\nexport const VISIBLE = 'visible'\n\nexport const CHILD = 'child'\nexport const PARENT = 'parent'\n\nexport const STRING = 'string'\nexport const NUMBER = 'number'\nexport const BOOLEAN = 'boolean'\nexport const OBJECT = 'object'\nexport const FUNCTION = 'function'\nexport const SYMBOL = 'symbol'\nexport const UNDEFINED = 'undefined'\n\nexport const TRUE = 'true'\nexport const FALSE = 'false'\n\nexport const NULL = 'null'\nexport const AUTO = 'auto'\n\nexport const READY_STATE_CHANGE = 'readystatechange'\n\nexport const HEIGHT_EDGE = 'bottom'\nexport const WIDTH_EDGE = 'right'\n\nexport const ENABLE = 'autoResizeEnabled'\nexport const SIZE_CHANGE_DETECTED = Symbol('sizeChanged')\nexport const MANUAL_RESIZE_REQUEST = 'manualResize'\nexport const PARENT_RESIZE_REQUEST = 'parentResize'\nexport const IGNORE_DISABLE_RESIZE = {\n [MANUAL_RESIZE_REQUEST]: 1,\n [PARENT_RESIZE_REQUEST]: 1,\n}\n\nexport const SET_OFFSET_SIZE = 'setOffsetSize'\n\nexport const RESIZE_OBSERVER = 'resizeObserver'\nexport const OVERFLOW_OBSERVER = 'overflowObserver'\nexport const MUTATION_OBSERVER = 'mutationObserver'\nexport const VISIBILITY_OBSERVER = 'visibilityObserver'\n\nexport const BOLD = 'font-weight: bold;'\nexport const NORMAL = 'font-weight: normal;'\nexport const ITALIC = 'font-style: italic;'\nexport const BLUE = 'color: #135CD2;'\nexport const BLUE_LIGHT = 'color: #A9C7FB;'\nexport const BLACK = 'color: black;'\nexport const WHITE = 'color: #E3E3E3;'\n\nexport const NONE = 'none'\nexport const BOTH = 'both'\nexport const VERTICAL = 'vertical'\nexport const HORIZONTAL = 'horizontal'\nexport const OMIT = 'omit'\n\nexport const NO_CHANGE = 'No change in content size detected'\n\nexport const MESSAGE_HEADER_LENGTH = MESSAGE.length\nexport const MESSAGE_ID = '[iFrameSizer]' // Must match iframe msg ID\nexport const MESSAGE_ID_LENGTH = MESSAGE_ID.length\nexport const RESET_REQUIRED_METHODS = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1,\n})\n\nexport const INIT_EVENTS = Object.freeze({\n [ONLOAD]: 1,\n [INIT]: 1,\n [INIT_FROM_IFRAME]: 1,\n})\n\nexport const EXPAND = 'expanded'\nexport const COLLAPSE = 'collapsed'\n\nexport const LOG_DISABLED = 0\nexport const LOG_COLLAPSED = 1\nexport const LOG_EXPANDED = 2\n\nexport const HEIGHT_CALC_MODE_DEFAULT = AUTO\nexport const WIDTH_CALC_MODE_DEFAULT = SCROLL\n\nexport const EVENT_CANCEL_TIMER = 128\n\nexport const LOG_OPTIONS = Object.freeze({\n [EXPAND]: 1,\n [COLLAPSE]: 1,\n})\n\nexport const IGNORE_TAGS = new Set([\n 'head',\n 'body',\n 'meta',\n 'base',\n 'title',\n 'script',\n 'link',\n 'style',\n 'map',\n 'area',\n 'option',\n 'optgroup',\n 'template',\n 'track',\n 'wbr',\n 'nobr',\n])\n\nexport const REMOVED_NEXT_VERSION =\n 'Use of the old name will be removed in a future version of <i>iframe-resizer</>.'\n","import { OBJECT, STRING } from './consts'\n\nexport const isElement = (node: Node): boolean =>\n node.nodeType === Node.ELEMENT_NODE\nexport const isNumber = (value: unknown): value is number =>\n typeof value === 'number' && !Number.isNaN(value)\nexport const isObject = (value: unknown): value is Record<string, unknown> =>\n typeof value === OBJECT && value !== null\nexport const isString = (value: unknown): value is string =>\n typeof value === STRING\n\nexport const isSafari: boolean = /^((?!chrome|android).)*safari/i.test(\n navigator.userAgent,\n)\n\nexport function isIframe(element: unknown): element is HTMLIFrameElement {\n if (!isObject(element)) return false\n\n try {\n return (\n (element as unknown as HTMLElement).tagName === 'IFRAME' ||\n element instanceof HTMLIFrameElement\n )\n } catch (error) {\n return false\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyFunction = (...args: any[]) => any\n\nexport const isolateUserCode = (\n func: AnyFunction,\n ...val: unknown[]\n): ReturnType<typeof setTimeout> => setTimeout(() => func(...val), 0)\n\nexport const once = <T extends AnyFunction>(fn: T): T => {\n let done = false\n\n return function (this: unknown, ...args: unknown[]) {\n return done ? undefined : ((done = true), fn.apply(this, args))\n } as unknown as T\n}\n\nconst hasOwnFallback = (o: object, k: PropertyKey): boolean =>\n Object.prototype.hasOwnProperty.call(o, k)\n\nexport const hasOwn = (o: object, k: PropertyKey): boolean =>\n Object.hasOwn ? Object.hasOwn(o, k) : hasOwnFallback(o, k)\n\nexport const isDarkModeEnabled = (): boolean =>\n window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches\n\nexport const id = <T>(x: T): T => x\n\nconst ROUNDING = 1000\n\nexport const round = (value: number): number =>\n Math.round(value * ROUNDING) / ROUNDING\n\nexport const capitalizeFirstLetter = (string: string): string =>\n string.charAt(0).toUpperCase() + string.slice(1)\n\nexport const isDef = (value: unknown): boolean =>\n `${value}` !== '' && value !== undefined\n\nexport const invoke = <T>(fn: () => T): T => fn()\n\nexport const lower = (str: string): string => str.toLowerCase()\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function getElementName(el: any): string {\n switch (true) {\n case !isDef(el):\n return ''\n\n case isDef(el.id):\n return `${el.nodeName}#${el.id}`\n\n case isDef(el.name):\n return `${el.nodeName} (${el.name}`\n\n case isDef(el.className):\n return `${el.nodeName}.${el.className}`\n\n default:\n return el.nodeName\n }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const esModuleInterop = <T = any>(mod: any): T =>\n // eslint-disable-next-line no-underscore-dangle\n mod?.__esModule ? mod.default : mod\n\nexport const typeAssert = (\n value: unknown,\n type: string,\n error: string,\n): void => {\n // eslint-disable-next-line valid-typeof\n if (typeof value !== type) {\n throw new TypeError(`${error} is not a ${capitalizeFirstLetter(type)}`)\n }\n}\n","/*!\n * @module auto-console-group v1.3.0\n *\n * @description Automagically group console logs in the browser console.\n *\n * @author David J. Bradshaw <info@iframe-resizer.com>\n * @see {@link https://github.com/davidjbradshaw/auto-console-group#readme}\n * @license MIT\n *\n * @copyright (c) 2025, David J. Bradshaw. All rights reserved.\n */\n\nconst $ = \"font-weight: normal;\", F = \"font-weight: bold;\", H = \"font-style: italic;\", U = $ + H, N = \"color: #135CD2;\", S = \"color: #A9C7FB;\", k = \"color: #1F1F1F;\", j = \"color: #E3E3E3;\", f = \"default\", Q = \"error\", C = \"log\", _ = Object.freeze({\n assert: !0,\n error: !0,\n warn: !0\n}), L = {\n expand: !1,\n defaultEvent: void 0,\n event: void 0,\n label: \"AutoConsoleGroup\",\n showTime: !0\n}, q = {\n profile: 0,\n profileEnd: 0,\n timeStamp: 0,\n trace: 0\n}, P = (o) => {\n const t = o.event || o.defaultEvent;\n return t ? `${t}` : \"\";\n}, u = Object.assign(console);\nfunction V() {\n const o = /* @__PURE__ */ new Date(), t = (l, d) => o[l]().toString().padStart(d, \"0\"), s = t(\"getHours\", 2), c = t(\"getMinutes\", 2), r = t(\"getSeconds\", 2), i = t(\"getMilliseconds\", 3);\n return `@ ${s}:${c}:${r}.${i}`;\n}\nconst { fromEntries: W, keys: b } = Object, z = (o) => [\n o,\n u[o]\n], K = (o) => (t) => [\n t,\n function(s) {\n o[t] = s;\n }\n], h = (o, t) => W(b(o).map(t));\nfunction X(o = {}) {\n const t = {}, s = {}, c = [], r = {\n ...L,\n // @ts-expect-error: backwards compatibility\n expand: !o.collapsed || L.expanded,\n ...o\n };\n let i = \"\";\n function l() {\n c.length = 0, i = \"\";\n }\n function d() {\n delete r.event, l();\n }\n const v = () => c.some(([e]) => e in _), O = () => v() ? !0 : !!r.expand, A = () => r.showTime ? i : \"\";\n function g() {\n if (c.length === 0) {\n d();\n return;\n }\n u[O() ? \"group\" : \"groupCollapsed\"](\n `%c${r.label}%c ${P(r)} %c${A()}`,\n $,\n F,\n U\n );\n for (const [e, ...n] of c)\n u.assert(\n e in u,\n `Unknown console method: ${e}`\n ), e in u && u[e](...n);\n u.groupEnd(), d();\n }\n function p() {\n i === \"\" && (i = V(), queueMicrotask(() => queueMicrotask(g)));\n }\n function G(e) {\n p(), r.event = e;\n }\n function a(e, ...n) {\n c.length === 0 && p(), c.push([e, ...n]);\n }\n const D = (e) => (...n) => {\n let m;\n try {\n m = e(...n);\n } catch (E) {\n if (!Error.prototype.isPrototypeOf(E)) throw E;\n a(Q, E), g();\n }\n return m;\n };\n function M(e, ...n) {\n e !== !0 && a(\"assert\", e, ...n);\n }\n function I(e = f) {\n s[e] ? s[e] += 1 : s[e] = 1, a(C, `${e}: ${s[e]}`);\n }\n function R(e = f) {\n delete s[e];\n }\n function x(e = f) {\n p(), t[e] = performance.now();\n }\n function w(e = f, ...n) {\n if (!t[e]) {\n a(\"timeLog\", e, ...n);\n return;\n }\n const m = performance.now() - t[e];\n a(C, `${e}: ${m} ms`, ...n);\n }\n function y(e = f) {\n w(e), delete t[e];\n }\n const B = (e) => [\n e,\n (...n) => a(e, ...n)\n ];\n return {\n ...h(r, K(r)),\n ...h(console, B),\n ...h(q, z),\n assert: M,\n count: I,\n countReset: R,\n endAutoGroup: g,\n errorBoundary: D,\n event: G,\n purge: l,\n time: x,\n timeEnd: y,\n timeLog: w,\n touch: p\n };\n}\nconst T = typeof window > \"u\" || typeof window.matchMedia != \"function\" ? !1 : window.matchMedia(\"(prefers-color-scheme: dark)\").matches, J = T ? S : N, Y = T ? j : k;\nexport {\n F as BOLD,\n Y as FOREGROUND,\n J as HIGHLIGHT,\n H as ITALIC,\n $ as NORMAL,\n X as default\n};\n","/* eslint-disable no-useless-escape */\n/* eslint-disable security/detect-non-literal-regexp */\n\nimport { NEW_LINE } from './consts'\nimport { isString } from './utils'\n\nconst TAGS = {\n br: '\\n',\n rb: '\\u001B[31;1m', // red bold\n bb: '\\u001B[34;1m', // blue bold\n b: '\\u001B[1m', // bold\n i: '\\u001B[3m', // italic\n u: '\\u001B[4m', // underline\n '/': '\\u001B[m', // reset\n}\n\nconst keys = Object.keys(TAGS)\nconst tags = new RegExp(`<(${keys.join('|')})>`, 'gi')\n\nconst lookup = (_: string, tag: string): string =>\n TAGS[tag as keyof typeof TAGS] ?? ''\n\nconst encode = (s: string): string => s.replace(tags, lookup)\n\nconst filter = (s: string): string =>\n s.replaceAll('<br>', NEW_LINE).replaceAll(/<\\/?[^>]+>/gi, '')\n\ntype FormatLogMessageFn = (message: unknown) => void\n\nexport default (formatLogMessage: FormatLogMessageFn) =>\n (message: unknown): void =>\n formatLogMessage(\n isString(message)\n ? window.chrome\n ? encode(message)\n : filter(message)\n : message,\n )\n\n/* eslint-enable security/detect-non-literal-regexp */\n/* eslint-enable no-useless-escape */\n","// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst settings: Record<string, any> = {}\n\nexport default settings\n","import acg, { NORMAL } from 'auto-console-group'\n\nimport { BOLD, LABEL, PARENT } from '../common/consts'\nimport deprecate from '../common/deprecate'\nimport createFormatAdvise from '../common/format-advise'\nimport { esModuleInterop, id as identity } from '../common/utils'\nimport settings from './values/settings'\n\n// Deal with UMD not converting default exports to named exports\nconst createConsoleGroup = esModuleInterop(acg)\n\nlet consoleEnabled = true\n\nconst parent = createConsoleGroup({\n expand: false,\n label: PARENT,\n})\n\nconst getMyId = (iframeId: string): string =>\n window.top === window.self\n ? `parent(${iframeId})`\n : `nested parent(${iframeId})`\n\nconst isLogEnabled = (iframeId: string): boolean =>\n settings[iframeId] ? settings[iframeId].log : consoleEnabled\n\nexport function setupConsole({\n enabled,\n expand,\n iframeId,\n}: {\n enabled: boolean\n expand: boolean\n iframeId: string\n}): void {\n const consoleGroup = createConsoleGroup({\n expand,\n label: getMyId(iframeId),\n })\n\n consoleEnabled = enabled\n\n if (!settings[iframeId])\n settings[iframeId] = {\n console: consoleGroup,\n }\n}\n\nconst output =\n (type: string) =>\n (iframeId: string, ...args: any[]): any =>\n settings[iframeId]\n ? settings[iframeId].console[type](...args)\n : parent[type](...args)\n\nexport const outputSwitched =\n (type: string) =>\n (iframeId: string, ...args: any[]): any =>\n isLogEnabled(iframeId) === true ? output(type)(iframeId, ...args) : null\n\nexport const log = outputSwitched('log')\nexport const info = log // outputSwitched('info')\nexport const debug = outputSwitched('debug')\nexport const assert = output('assert')\nexport const warn = output('warn')\nexport const error = output('error')\nexport const event = output('event')\nexport const purge = output('purge')\nexport const endAutoGroup = output('endAutoGroup')\nexport const errorBoundary = output('errorBoundary')\n\nexport function vInfo(ver: string, mode: number): void {\n queueMicrotask(() =>\n // eslint-disable-next-line no-console\n console.info(\n `%ciframe-resizer ${ver}`,\n consoleEnabled || mode < 1 ? BOLD : NORMAL,\n ),\n )\n}\n\nconst formatLogMsg =\n (iframeId: string) =>\n (...args: any[]): string =>\n [`${LABEL}(${iframeId})`, ...args].join(' ')\n\nconst formatAdvise = createFormatAdvise(identity)\nexport const advise = (iframeId: string, ...args: any[]): void =>\n settings[iframeId]\n ? settings[iframeId].console.warn(...args.map(formatAdvise))\n : queueMicrotask(() => {\n const localFormatAdvise = createFormatAdvise(formatLogMsg(iframeId))\n // eslint-disable-next-line no-console\n console?.warn(...args.map(localFormatAdvise))\n })\n\nconst deprecateAdvise = deprecate(advise)\nexport const deprecateFunction = deprecateAdvise('Function')\nexport const deprecateMethod = deprecateAdvise('Method')\nexport const deprecateOption = deprecateAdvise('Option')\n","type AdviseFn = (iframeId: string, message: string) => void\n\nexport default (advise: AdviseFn) =>\n (type: string, change = 'renamed to') =>\n (old: string, replacement: string, info = '', iframeId = ''): void =>\n advise(\n iframeId,\n `<rb>Deprecated ${type}(${old.replace('()', '')})</>\\n\\nThe <b>${old}</> ${type.toLowerCase()} has been ${change} <b>${replacement}</>. ${info}Use of the old ${type.toLowerCase()} will be removed in a future version of <i>iframe-resizer</>.`,\n )\n","import { AUTO, FUNCTION, VERTICAL } from '../../common/consts'\nimport { deprecateOption } from '../console'\nimport settings from './settings'\n\nconst onReadyDeprecated = (messageData: {\n id: string\n iframe: HTMLIFrameElement\n}): void => {\n if (typeof settings[messageData.id].onInit === FUNCTION) {\n deprecateOption('init()', 'onReady()', '', messageData.id)\n settings[messageData.id].onInit(messageData)\n }\n}\n\nexport default Object.freeze({\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyPadding: null,\n checkOrigin: true,\n direction: VERTICAL,\n firstRun: true,\n inPageLinks: false,\n heightCalculationMethod: AUTO,\n id: 'iFrameResizer', // TODO: v6 change to 'iframeResizer'\n log: false,\n logExpand: false,\n license: undefined,\n mouseEvents: true,\n offsetHeight: null,\n offsetWidth: null,\n postMessageTarget: null,\n sameDomain: false,\n scrolling: false,\n sizeHeight: true,\n // sizeSelector: '',\n sizeWidth: false,\n tolerance: 0,\n waitForLoad: false,\n warningTimeout: 5000,\n widthCalculationMethod: AUTO,\n\n onBeforeClose: () => true,\n onAfterClose() {},\n onInit: false,\n onMessage: null,\n onMouseEnter() {},\n onMouseLeave() {},\n onReady: onReadyDeprecated,\n onResized() {},\n onScroll: () => true,\n})\n","import { isString } from '../../common/utils'\nimport { event as consoleEvent, log } from '../console'\nimport defaults from '../values/defaults'\n\nlet count = 0\n\nfunction newId(options: Record<string, any>): string {\n const id = options?.id || defaults.id + count++\n return document.getElementById(id) === null ? id : `${id}${count++}`\n}\n\nexport default function ensureHasId(\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): string {\n let { id } = iframe\n\n if (id && !isString(id)) {\n throw new TypeError('Invalid id for iFrame. Expected String')\n }\n\n if (!id || id === '') {\n id = newId(options)\n iframe.id = id\n consoleEvent(id, 'assignId')\n log(id, `Added missing iframe ID: ${id} (${iframe.src})`)\n }\n\n return id\n}\n","export const addEventListener = (\n el: EventTarget,\n evt: string,\n func: EventListenerOrEventListenerObject,\n options?: AddEventListenerOptions | boolean,\n): void => el.addEventListener(evt, func, options || false)\n\nexport const removeEventListener = (\n el: EventTarget,\n evt: string,\n func: EventListenerOrEventListenerObject,\n): void => el.removeEventListener(evt, func, false)\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { INIT_EVENTS, MESSAGE_ID, SEPARATOR } from '../../common/consts'\nimport { event as consoleEvent, info, log, warn } from '../console'\nimport settings from '../values/settings'\n\nexport const filterMsg = (msg: string): string =>\n msg\n .split(SEPARATOR)\n .filter((_, index) => index !== 19)\n .join(SEPARATOR)\n\nexport function dispatch(calleeMsg: string, msg: string, id: string): void {\n function logSent(route: string): void {\n const displayMsg = calleeMsg in INIT_EVENTS ? filterMsg(msg) : msg\n info(id, route, HIGHLIGHT, FOREGROUND, HIGHLIGHT)\n info(id, `Message data: %c${displayMsg}`, HIGHLIGHT)\n }\n\n const { iframe, postMessageTarget, sameOrigin, targetOrigin } = settings[id]\n\n if (sameOrigin) {\n try {\n iframe.contentWindow.iframeChildListener(MESSAGE_ID + msg)\n logSent(`Sending message to iframe %c${id}%c via same origin%c`)\n return\n } catch (error) {\n if (calleeMsg in INIT_EVENTS) {\n settings[id].sameOrigin = false\n log(id, 'New iframe does not support same origin')\n } else {\n warn(id, 'Same origin messaging failed, falling back to postMessage')\n }\n }\n }\n\n logSent(\n `Sending message to iframe: %c${id}%c targetOrigin: %c${targetOrigin.join(', ')}`,\n )\n\n for (const origin of targetOrigin) {\n postMessageTarget.postMessage(MESSAGE_ID + msg, origin)\n }\n}\n\nfunction trigger(calleeMsg: string, msg: string, id: string): void {\n consoleEvent(id, calleeMsg)\n\n if (!settings[id]?.postMessageTarget) {\n warn(id, `Iframe not found`)\n return\n }\n\n dispatch(calleeMsg, msg, id)\n}\n\nexport default trigger\n","import { RESIZE } from '../../common/consts'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nconst sendTriggerMsg = (eventName: string, event: string): void =>\n Object.values(settings)\n .filter(({ autoResize, firstRun }) => autoResize && !firstRun)\n .forEach(({ iframe }) => trigger(eventName, event, iframe.id))\n\nexport default function tabVisible(): void {\n if (document.hidden === true) return\n sendTriggerMsg('tabVisible', RESIZE)\n}\n","import { MESSAGE_ID_LENGTH } from '../../common/consts'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nexport function getPaddingEnds(compStyle: CSSStyleDeclaration): number {\n if (compStyle.boxSizing !== 'border-box') return 0\n\n const top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0\n const bot = compStyle.paddingBottom\n ? parseInt(compStyle.paddingBottom, 10)\n : 0\n\n return top + bot\n}\n\nexport function getBorderEnds(compStyle: CSSStyleDeclaration): number {\n if (compStyle.boxSizing !== 'border-box') return 0\n\n const top = compStyle.borderTopWidth\n ? parseInt(compStyle.borderTopWidth, 10)\n : 0\n\n const bot = compStyle.borderBottomWidth\n ? parseInt(compStyle.borderBottomWidth, 10)\n : 0\n\n return top + bot\n}\n\nexport default function decodeMessage(msg: string): MessageData {\n const data = msg.slice(MESSAGE_ID_LENGTH).split(':')\n const height = data[1] ? Number(data[1]) : 0\n const iframe = settings[data[0]]?.iframe\n const compStyle = iframe ? getComputedStyle(iframe) : null\n const paddingAndBorder = compStyle\n ? getPaddingEnds(compStyle) + getBorderEnds(compStyle)\n : 0\n\n const messageData: MessageData = {\n iframe,\n id: data[0],\n height: height + paddingAndBorder,\n width: Number(data[2]),\n type: data[3],\n msg: data[4],\n message: data[4],\n }\n\n // eslint-disable-next-line prefer-destructuring\n if (data[5]) messageData.mode = data[5]\n\n return messageData\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { MESSAGE_ID, MESSAGE_ID_LENGTH } from '../../common/consts'\nimport { isIframe } from '../../common/utils'\nimport { log, warn } from '../console'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nconst ABOVE_TYPES: Record<string, number> = { true: 1, false: 1, undefined: 1 }\n\nexport function checkIframeExists(messageData: MessageData): boolean {\n const { id, msg, iframe } = messageData\n const detectedIframe = isIframe(iframe)\n\n if (!detectedIframe) {\n log(id, `Received: %c${msg}`, HIGHLIGHT)\n warn(id, `The target iframe was not found.`)\n }\n\n return detectedIframe\n}\n\nexport function isMessageFromIframe(\n messageData: MessageData,\n event: MessageEvent | { data: any; origin?: string; sameOrigin?: boolean },\n): boolean {\n const { id } = messageData\n const { data, origin } = event\n const sameOrigin = 'sameOrigin' in event && event.sameOrigin\n\n if (sameOrigin) return true\n\n const checkOrigin = settings[id]?.checkOrigin\n\n function checkAllowedOrigin(): boolean {\n function checkList(): boolean {\n log(\n id,\n `Checking connection is from allowed list of origins: %c${checkOrigin}`,\n HIGHLIGHT,\n )\n\n for (const element of checkOrigin) {\n if (element === origin) {\n return true\n }\n }\n\n return false\n }\n\n function checkSingle(): boolean {\n const remoteHost = settings[id]?.remoteHost\n log(id, `Checking connection is from: %c${remoteHost}`, HIGHLIGHT)\n return origin === remoteHost\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\n }\n\n if (checkOrigin && `${origin}` !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n `Unexpected message received from: ${origin} for ${id}. Message was: ${data}. This error can be disabled by setting the checkOrigin: false option or by providing an array of trusted domains.`,\n )\n }\n\n return true\n}\n\nexport const isMessageForUs = (message: any): boolean =>\n MESSAGE_ID === `${message}`.slice(0, MESSAGE_ID_LENGTH) &&\n message.slice(MESSAGE_ID_LENGTH).split(':')[0] in settings\n\nexport function isMessageFromMetaParent(messageData: MessageData): boolean {\n const { id, type } = messageData\n\n // Test if this message is from a parent above us. This is an ugly test,\n // however, updating the message format would break backwards compatibility.\n const isMetaParent = type in ABOVE_TYPES\n\n if (isMetaParent) {\n log(id, 'Ignoring init message from meta parent page')\n }\n\n return isMetaParent\n}\n","import { FUNCTION } from '../../common/consts'\nimport { isolateUserCode } from '../../common/utils'\nimport { warn } from '../console'\nimport settings from '../values/settings'\n\nfunction on(iframeId: string, funcName: string, val: any): any {\n if (!settings[iframeId]) return null\n\n const func = settings[iframeId][funcName]\n\n if (typeof func !== FUNCTION)\n throw new TypeError(`${funcName} on iframe[${iframeId}] is not a function`)\n\n if (funcName !== 'onBeforeClose' && funcName !== 'onScroll')\n return isolateUserCode(func, val)\n\n try {\n return func(val)\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error)\n warn(iframeId, `Error in ${funcName} callback`)\n return null\n }\n}\n\nexport default on\n","import { MESSAGE_HEADER_LENGTH, SEPARATOR } from '../../common/consts'\nimport settings from '../values/settings'\n\nexport default function getMessageBody(id: string, offset: number): string {\n const { lastMessage } = settings[id]\n return lastMessage.slice(\n lastMessage.indexOf(SEPARATOR) + MESSAGE_HEADER_LENGTH + offset,\n )\n}\n","import { SEPARATOR } from '../../common/consts'\nimport getMessageBody from '../received/message'\nimport type { MessageData } from '../types'\nimport on from './wrapper'\n\nexport default function onMouse(event: string, messageData: MessageData): void {\n const { id, iframe, height, type, width } = messageData\n let mousePos: { x: string | number; y: string | number } = { x: 0, y: 0 }\n\n if (width === 0 && height === 0) {\n const coords = getMessageBody(id, 9).split(SEPARATOR)\n mousePos = {\n x: coords[1],\n y: coords[0],\n }\n } else {\n mousePos = {\n x: width,\n y: height,\n }\n }\n\n on(id, event, {\n iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type,\n })\n}\n","import { VERSION } from '../../common/consts'\n\ninterface PageState {\n position: { x: number; y: number } | null\n version: string\n}\n\nconst page: PageState = {\n position: null,\n version: VERSION,\n}\n\nexport default page\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { info, log } from '../console'\nimport page from '../values/page'\n\ninterface Position {\n x: number\n y: number\n}\n\nexport function unsetPagePosition(): void {\n page.position = null\n}\n\nexport const getStoredPagePosition = (): Position | null => page.position\n\nexport function setStoredPagePosition(position: Position): void {\n page.position = position\n}\n\nexport function getPagePosition(id: string): Position {\n if (page.position === null)\n page.position = {\n x: window.scrollX,\n y: window.scrollY,\n }\n\n log(\n id,\n `Get page position: %c${page.position.x}%c, %c${page.position.y}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n return page.position\n}\n\nexport function setPagePosition(id: string): void {\n if (page.position === null) return\n\n window.scrollTo(page.position.x, page.position.y)\n\n info(\n id,\n `Set page position: %c${page.position.x}%c, %c${page.position.y}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n unsetPagePosition()\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { HEIGHT, WIDTH } from '../../common/consts'\nimport { info } from '../console'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\n\nfunction setDimension(dimension: string, messageData: MessageData): void {\n const { id } = messageData\n const size = `${messageData[dimension]}px`\n settings[id].iframe.style[dimension] = size\n info(id, `Set ${dimension}: %c${size}`, HIGHLIGHT)\n}\n\nexport default function setSize(messageData: MessageData): void {\n const { id } = messageData\n const { sizeHeight, sizeWidth } = settings[id]\n\n if (sizeHeight) setDimension(HEIGHT, messageData)\n if (sizeWidth) setDimension(WIDTH, messageData)\n}\n","import { setPagePosition } from '../page/position'\nimport type { MessageData } from '../types'\nimport setSize from './size'\nimport on from './wrapper'\n\nexport default function resizeIframe(messageData: MessageData): void {\n const { id } = messageData\n setSize(messageData)\n setPagePosition(id)\n on(id, 'onResized', messageData)\n}\n","import { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function disconnect(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n log(id, 'Disconnected from iframe')\n delete settings[id]\n delete iframe.iframeResizer\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { log, warn } from '../console'\nimport on from '../events/wrapper'\nimport disconnect from './disconnect'\n\nexport default function closeIframe(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n\n if (on(id, 'onBeforeClose', id) === false) {\n log(id, 'Close iframe cancelled by onBeforeClose')\n return\n }\n\n log(id, `Removing iFrame: %c${id}`, HIGHLIGHT)\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.remove()\n }\n } catch (error) {\n warn(id, error)\n }\n\n on(id, 'onAfterClose', id)\n disconnect(iframe)\n}\n","import { INIT, RESET } from '../../common/consts'\nimport { log } from '../console'\nimport setSize from '../events/size'\nimport { getPagePosition } from '../page/position'\nimport trigger from '../send/trigger'\nimport type { MessageData } from '../types'\n\nexport default function resetIframe(messageData: MessageData): void {\n const { id, type } = messageData\n\n log(\n id,\n `Size reset requested by ${type === INIT ? 'parent page' : 'child page'}`,\n )\n\n getPagePosition(id)\n setSize(messageData)\n trigger(RESET, RESET, id)\n}\n","import { LOAD, RESIZE, SCROLL } from '../../common/consts'\nimport { addEventListener, removeEventListener } from '../../common/listeners'\nimport { event, log } from '../console'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nexport const sendInfoToIframe = (\n type: string,\n infoFunction: (iframe: HTMLIFrameElement) => string,\n) => {\n const gate: Record<string, number | null> = {}\n\n return (requestType: string, id: string): void => {\n const { iframe } = settings[id]\n\n function throttle(func: () => void, frameId: string): void {\n if (!gate[frameId]) {\n func()\n gate[frameId] = requestAnimationFrame(() => {\n gate[frameId] = null\n })\n }\n }\n\n function gatedTrigger(): void {\n trigger(`${requestType} (${type})`, `${type}:${infoFunction(iframe)}`, id)\n }\n\n throttle(gatedTrigger, id)\n }\n}\n\nexport const stopInfoMonitor =\n (stopFunction: string) =>\n (id: string): void => {\n if (stopFunction in settings[id]) {\n settings[id][stopFunction]()\n delete settings[id][stopFunction]\n }\n }\n\nexport const startInfoMonitor =\n // eslint-disable-next-line @typescript-eslint/no-shadow\n (sendInfoToIframe: (requestType: string, id: string) => void, type: string) =>\n (id: string): void => {\n let pending: string | false = false\n\n const sendInfo = (requestType: string) => (): void => {\n if (settings[id]) {\n if (!pending || pending === requestType) {\n sendInfoToIframe(requestType, id)\n\n pending = requestType\n requestAnimationFrame(() => {\n pending = false\n })\n }\n } else {\n // eslint-disable-next-line @typescript-eslint/no-use-before-define\n stop()\n }\n }\n\n const sendScroll = sendInfo(SCROLL)\n const sendResize = sendInfo('resize window')\n\n const pageObserver = new ResizeObserver(sendInfo('pageObserver'))\n const iframeObserver = new ResizeObserver(sendInfo('iframeObserver'))\n\n function setListener(\n requestType: string,\n listener: (\n target: EventTarget,\n event: string,\n handler: EventListener,\n ) => void,\n ): void {\n log(id, `${requestType}listeners for send${type}`)\n listener(window, SCROLL, sendScroll)\n listener(window, RESIZE, sendResize)\n }\n\n function stop(): void {\n event(id, `stop${type}`)\n setListener('Remove ', removeEventListener)\n pageObserver.disconnect()\n iframeObserver.disconnect()\n if (settings[id]) {\n removeEventListener(settings[id].iframe, LOAD, stop)\n }\n }\n\n function start(): void {\n setListener('Add ', addEventListener)\n\n pageObserver.observe(document.body)\n iframeObserver.observe(settings[id].iframe)\n }\n\n if (!settings[id]) return\n\n settings[id][`stop${type}`] = stop\n addEventListener(settings[id].iframe, LOAD, stop)\n start()\n }\n","import { PAGE_INFO } from '../../common/consts'\nimport { sendInfoToIframe, startInfoMonitor, stopInfoMonitor } from './common'\n\nexport function getPageInfo(iframe: HTMLIFrameElement): string {\n const bodyPosition = document.body.getBoundingClientRect()\n const iFramePosition = iframe.getBoundingClientRect()\n const { scrollY, scrollX, innerHeight, innerWidth } = window\n const { clientHeight, clientWidth } = document.documentElement\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(clientHeight, innerHeight || 0),\n clientWidth: Math.max(clientWidth, innerWidth || 0),\n offsetTop: Math.trunc(iFramePosition.top - bodyPosition.top),\n offsetLeft: Math.trunc(iFramePosition.left - bodyPosition.left),\n scrollTop: scrollY,\n scrollLeft: scrollX,\n documentHeight: clientHeight,\n documentWidth: clientWidth,\n windowHeight: innerHeight,\n windowWidth: innerWidth,\n })\n}\n\nconst sendPageInfoToIframe = sendInfoToIframe(PAGE_INFO, getPageInfo)\n\nexport const startPageInfoMonitor = startInfoMonitor(\n sendPageInfoToIframe,\n 'PageInfo',\n)\n\nexport const stopPageInfoMonitor = stopInfoMonitor('stopPageInfo')\n","import { PARENT_INFO } from '../../common/consts'\nimport { sendInfoToIframe, startInfoMonitor, stopInfoMonitor } from './common'\n\nexport function getParentProps(iframe: HTMLIFrameElement): string {\n const { scrollWidth, scrollHeight } = document.documentElement\n const visualViewport: Partial<VisualViewport> =\n typeof window !== 'undefined' && window.visualViewport\n ? window.visualViewport\n : {}\n const {\n width = 0,\n height = 0,\n offsetLeft = 0,\n offsetTop = 0,\n pageLeft = 0,\n pageTop = 0,\n scale = 1,\n } = visualViewport\n\n return JSON.stringify({\n iframe: iframe.getBoundingClientRect(),\n document: {\n scrollWidth,\n scrollHeight,\n },\n viewport: {\n width,\n height,\n offsetLeft,\n offsetTop,\n pageLeft,\n pageTop,\n scale,\n },\n })\n}\n\nconst sendParentInfoToIframe = sendInfoToIframe(PARENT_INFO, getParentProps)\n\nexport const startParentInfoMonitor = startInfoMonitor(\n sendParentInfoToIframe,\n 'ParentInfo',\n)\n\nexport const stopParentInfoMonitor = stopInfoMonitor('stopParentInfo')\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport on from '../events/wrapper'\nimport type { MessageData } from '../types'\nimport settings from '../values/settings'\nimport {\n getPagePosition,\n getStoredPagePosition,\n setPagePosition,\n setStoredPagePosition,\n unsetPagePosition,\n} from './position'\n\ninterface Position {\n x: number\n y: number\n}\n\nexport function getElementPosition(target: HTMLIFrameElement): Position {\n const iframePosition = target.getBoundingClientRect()\n const pagePosition = getPagePosition(target.id)\n\n return {\n x: Number(iframePosition.left) + Number(pagePosition.x),\n y: Number(iframePosition.top) + Number(pagePosition.y),\n }\n}\n\nexport function scrollToLink(id: string): void {\n const { x, y } = getStoredPagePosition()\n const iframe = settings[id]?.iframe\n\n if (on(id, 'onScroll', { iframe, top: y, left: x, x, y }) === false) {\n unsetPagePosition()\n return\n }\n\n setPagePosition(id)\n}\n\nexport function scrollBy(messageData: MessageData): void {\n const { id, height, width } = messageData\n\n // Check for V4 as well\n const target = window.parentIframe || window.parentIFrame || window\n\n info(\n id,\n `scrollBy: x: %c${width}%c y: %c${height}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n target.scrollBy(width, height)\n}\n\nconst scrollRequestFromChild =\n (addOffset: boolean) =>\n (messageData: MessageData): void => {\n const { id, iframe, height, width } = messageData\n\n /* istanbul ignore next */ // Not testable in Karma\n function reposition(newPosition: Position): void {\n setStoredPagePosition(newPosition)\n scrollToLink(id)\n }\n\n function scrollParent(target: any, newPosition: Position): void {\n target[`scrollTo${addOffset ? 'Offset' : ''}`](\n newPosition.x,\n newPosition.y,\n )\n }\n\n const calcOffset = (offset: Position): Position => ({\n x: width + offset.x,\n y: height + offset.y,\n })\n\n const offset = addOffset ? getElementPosition(iframe) : { x: 0, y: 0 }\n const newPosition = calcOffset(offset)\n const target = window.parentIframe || window.parentIFrame // Check for V4 as well\n\n info(\n id,\n `Reposition requested (offset x:%c${offset.x}%c y:%c${offset.y})`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n\n if (target) scrollParent(target, newPosition)\n else reposition(newPosition)\n }\n\nexport const scrollTo = scrollRequestFromChild(false)\nexport const scrollToOffset = scrollRequestFromChild(true)\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info, log } from '../console'\nimport page from '../values/page'\nimport { getElementPosition, scrollToLink } from './scroll'\n\nfunction jumpToTarget(id: string, hash: string, target: HTMLElement): void {\n const { x, y } = getElementPosition(target as unknown as HTMLIFrameElement)\n\n info(id, `Moving to in page link: %c#${hash}`, HIGHLIGHT)\n\n page.position = { x, y }\n\n scrollToLink(id)\n window.location.hash = hash\n}\n\nfunction jumpToParent(id: string, hash: string): void {\n // Check for V4 as well\n const target = window.parentIframe || window.parentIFrame\n\n if (!target) {\n log(id, `In page link #${hash} not found`)\n return\n }\n\n target.moveToAnchor(hash)\n}\n\nexport default function inPageLink(id: string, location: string): void {\n const hash = location.split('#')[1] || ''\n const hashData = decodeURIComponent(hash)\n\n const target =\n document.getElementById(hashData) || document.getElementsByName(hashData)[0]\n\n if (target) {\n jumpToTarget(id, hash, target)\n return\n }\n\n if (window.top === window.self) {\n log(id, `In page link #${hash} not found`)\n return\n }\n\n jumpToParent(id, hash)\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport settings from '../values/settings'\n\nexport function checkTitle(id: string): boolean {\n const title = settings[id]?.iframe?.title\n return title === '' || title === undefined\n}\n\nexport function setTitle(id: string, title: string | undefined): void {\n if (!settings[id]?.syncTitle) return\n settings[id].iframe.title = title\n info(id, `Set iframe title attribute: %c${title}`, HIGHLIGHT)\n}\n","/* eslint-disable eslint-comments/disable-enable-pair */\n/* eslint-disable chai-friendly/no-unused-expressions */\n/* eslint-disable no-bitwise */\n/* eslint-disable no-cond-assign */\n/* eslint-disable one-var */\n/* eslint-disable pii/no-phone-number */\n/* eslint-disable unicorn/numeric-separators-style */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/no-shadow */\nconst l = (l: string): string => {\n if (!l) return ''\n let p = -559038744,\n y = 1103547984\n for (let z: any, t = 0; t < l.length; t++)\n ((z = l.codePointAt(t)),\n (p = Math.imul(p ^ z, 2246822519)),\n (y = Math.imul(y ^ z, 3266489917)))\n return (\n (p ^= Math.imul(p ^ (y >>> 15), 1935289751)),\n (y ^= Math.imul(y ^ (p >>> 15), 3405138345)),\n (p ^= y >>> 16),\n (y ^= p >>> 16),\n (2097152 * (y >>> 0) + (p >>> 11)).toString(36)\n )\n },\n p = (l: string): string =>\n l.replace(/[A-Za-z]/g, (l: any) =>\n String.fromCodePoint(\n (l <= 'Z' ? 90 : 122) >= (l = l.codePointAt(0) + 19) ? l : l - 26,\n ),\n ),\n i = new Date(),\n q = (f: (index: number, value: number) => string): Set<string> =>\n new Set(Array.from({ length: 9 }, f)),\n a = ' - lewpylk',\n x = ['spjluzl', 'rlf', 'clyzpvu', 'rlf2', 'nlaMbssFlhy'],\n y = [\n '<yi>Puchspk Spjluzl Rlf</><iy><iy>',\n '<yi>Tpzzpun Spjluzl Rlf</><iy><iy>',\n '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</>',\n '<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</>.',\n '<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.',\n 'Pu whnl spurpun ylxbpylz h Wyvmlzzpvuhs vy Ibzpulzz spjluzl. Wslhzl zll <b>oaawz://pmyhtl-ylzpgly.jvt/wypjpun</> mvy tvyl klahpsz.',\n '<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Fvb hyl jbyyluasf bzpun h spjluzl rlf mvy aol wylcpvbz clyzpvu vm <p>pmyhtl-ylzpgly</>.</><iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> fvb jhu bzl aol <i>mpyza 11 johyhjalyz vm fvb spjluzl rlf</> av nla h 60% kpzjvbua ha oaawz://pmyhtl-ylzpgly.jvt/wypjpun.',\n '<yi>Clyzpvu 5 rlf klaljalk</><iy><iy>Fvb hyl jbyyluasf bzpun h spjluzl rlf mvy aol wylcpvbz clyzpvu vm <p>pmyhtl-ylzpgly</>.<iy><iy>Av bwnyhkl av <i>Clyzpvu 6</> vm <p>pmyhtl-ylzpgly</> wslhzl kvdusvhk aol shalza rlf myvt oaawz://pmyhtl-ylzpgly.jvt/tf-vyklyz.',\n '<yi> VLT rlf lewpylk</><iy><iy>Aol spjluzl rlf fvb hyl bzpun mvy <p>pmyhtl-ylzpgly</> pz myvt h wypvy flhy huk ohz lewpylk. Hu bwkhalk rlf pz ylslhzlk vu aol mpyza vm Uvcltily lhjo flhy.<iy><iy>Wslhzl kvdusvhk aol shalza rlf myvt oaawz://pmyhtl-ylzpgly.jvt/tf-vyklyz.',\n ],\n r = (arr: Array<string>): string[] => [\n arr[0],\n ...arr.slice(1).map((l) => `${l}${a}`),\n `${arr[4]}${a}`,\n ...arr.slice(1),\n ],\n z = r(['NWSc3', 'zvsv', 'wyv', 'ibzpulzz', 'VLT']),\n t = Object.fromEntries(\n [\n '2cgs7fdf4xb',\n '1c9ctcccr4z',\n '1q2pc4eebgb',\n 'ueokt0969w',\n 'w2zxchhgqz',\n '1umuxblj2e5',\n '1foobarqaz',\n '2b5sdlfhbev',\n 'zo4ui3arjo',\n 'oclbb4thgl',\n 'igb1wzrjqr',\n ].map((l, p) => [l, Math.max(0, p - 1)]),\n ),\n u = new Set([1, 6]),\n dd = i[p(x[4])](),\n dx = q((_, i) => l(`${dd + i}`)),\n dy = q((_, i) => l(`${dd - ++i}`)),\n V = (n: string): number => (dx.has(n) ? 9 : dy.has(n) ? 5 : -2)\nexport const checkMode = (m: number): boolean => u.has(m)\nexport const getModeData = (l: number): string => p(y[l])\nexport const getModeLabel = (l: number): string => p(z[l])\nexport const getKey = (l: number): string => p(x[l])\nexport default (y: any): number => {\n const z = y[p(x[0])] || y[p(x[1])] || y[p(x[2])] || y[p(x[3])]\n if (!z) return -1\n const u = z.split('-')\n let v = (function (y = '', x = '') {\n let z = -2\n const u = l(p(y))\n return (u in t && (z = t[u]), z === 9 ? V(x) : z)\n })(...u)\n return (v === 0 || ((p: any) => p[2] === l(p[0] + p[1]))(u) || (v = -2), v)\n}\n","import { VERSION } from '../../common/consts'\nimport { getModeData, getModeLabel } from '../../common/mode'\nimport { advise, purge as consoleClear, vInfo } from '../console'\nimport settings from '../values/settings'\n\nlet vAdvised = false\nlet vInfoDisable = false\n\nexport default function checkMode(id: string, childMode: number = -3): void {\n if (vAdvised) return\n const mode = Math.max(settings[id].mode, childMode)\n if (mode > settings[id].mode) settings[id].mode = mode\n if (mode < 0) {\n consoleClear(id)\n if (!settings[id].vAdvised)\n advise(id || 'Parent', `${getModeData(mode + 2)}${getModeData(2)}`)\n settings[id].vAdvised = true\n // eslint-disable-next-line @typescript-eslint/no-throw-literal\n throw getModeData(mode + 2).replace(/<\\/?[a-z][^>]*>|<\\/>/gi, '')\n }\n if (!(mode > 5 && vInfoDisable)) {\n vInfo(`v${VERSION} (${getModeLabel(mode)})`, mode)\n }\n\n switch (mode) {\n case 1:\n case 2:\n case 3:\n advise('Parent', getModeData(6))\n break\n\n case 4:\n advise('Parent', getModeData(7))\n break\n\n case 5:\n advise('Parent', getModeData(8))\n break\n\n default:\n if (mode < 1) advise('Parent', getModeData(3))\n }\n\n vAdvised = true\n}\n\nexport function preModeCheck(id: string): void {\n if (vAdvised) return\n const { mode } = settings[id]\n if (mode > 5) checkMode(id, mode)\n}\n\nexport function enableVInfo(options: Record<string, any>): void {\n if (options?.log === -1) {\n options.log = false\n vInfoDisable = true\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport {\n AUTO_RESIZE,\n BEFORE_UNLOAD,\n CLOSE,\n IN_PAGE_LINK,\n INIT,\n MESSAGE,\n MOUSE_ENTER,\n MOUSE_LEAVE,\n PAGE_INFO,\n PAGE_INFO_STOP,\n PARENT_INFO,\n PARENT_INFO_STOP,\n RESET,\n SCROLL_BY,\n SCROLL_TO,\n SCROLL_TO_OFFSET,\n TITLE,\n} from '../common/consts'\nimport checkSameDomain from './checks/origin'\nimport checkVersion from './checks/version'\nimport { info, log, warn } from './console'\nimport { onMessage } from './events/message'\nimport onMouse from './events/mouse'\nimport resizeIframe from './events/resize'\nimport on from './events/wrapper'\nimport closeIframe from './methods/close'\nimport resetIframe from './methods/reset'\nimport { startPageInfoMonitor, stopPageInfoMonitor } from './monitor/page-info'\nimport { startParentInfoMonitor, stopParentInfoMonitor } from './monitor/props'\nimport inPageLink from './page/in-page-link'\nimport { scrollBy, scrollTo, scrollToOffset } from './page/scroll'\nimport { setTitle } from './page/title'\nimport getMessageBody from './received/message'\nimport firstRun from './setup/first-run'\nimport type { MessageData } from './types'\nimport settings from './values/settings'\n\nexport default function routeMessage(messageData: MessageData): void {\n const { height, id, iframe, mode, message, type, width } = messageData\n const { lastMessage } = settings[id]\n\n if (settings[id]?.firstRun) firstRun(id, mode)\n log(id, `Received: %c${lastMessage}`, HIGHLIGHT)\n\n switch (type) {\n case AUTO_RESIZE:\n settings[id].autoResize = JSON.parse(getMessageBody(id, 9))\n break\n\n case BEFORE_UNLOAD:\n info(id, 'Ready state reset')\n settings[id].initialised = false\n break\n\n case CLOSE:\n closeIframe(iframe)\n break\n\n case IN_PAGE_LINK:\n inPageLink(id, getMessageBody(id, 9))\n break\n\n case INIT:\n resizeIframe(messageData)\n checkSameDomain(id)\n checkVersion(id, message)\n settings[id].initialised = true\n on(id, 'onReady', iframe)\n break\n\n case MESSAGE:\n onMessage(messageData, getMessageBody(id, 6))\n break\n\n case MOUSE_ENTER:\n onMouse('onMouseEnter', messageData)\n break\n\n case MOUSE_LEAVE:\n onMouse('onMouseLeave', messageData)\n break\n\n case PAGE_INFO:\n startPageInfoMonitor(id)\n break\n\n case PARENT_INFO:\n startParentInfoMonitor(id)\n break\n\n case PAGE_INFO_STOP:\n stopPageInfoMonitor(id)\n break\n\n case PARENT_INFO_STOP:\n stopParentInfoMonitor(id)\n break\n\n case RESET:\n resetIframe(messageData)\n break\n\n case SCROLL_BY:\n scrollBy(messageData)\n break\n\n case SCROLL_TO:\n scrollTo(messageData)\n break\n\n case SCROLL_TO_OFFSET:\n scrollToOffset(messageData)\n break\n\n case TITLE:\n setTitle(id, message)\n break\n\n default:\n if (width === 0 && height === 0) {\n warn(\n id,\n `Unsupported message received (${type}), this is likely due to the iframe containing a later ` +\n `version of iframe-resizer than the parent page`,\n )\n return\n }\n\n if (width === 0 || height === 0) {\n log(id, 'Ignoring message with 0 height or width')\n return\n }\n\n // Recheck document.hidden here, as only Firefox\n // correctly supports this in the iframe\n if (document.hidden) {\n log(id, 'Page hidden - ignored resize request')\n return\n }\n\n resizeIframe(messageData)\n }\n}\n","import checkMode from '../checks/mode'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function firstRun(id: string, mode: string | undefined): void {\n if (!settings[id]) return\n\n log(id, `First run for ${id}`)\n checkMode(id, mode === undefined ? undefined : Number(mode))\n settings[id].firstRun = false\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function checkSameDomain(id: string): void {\n try {\n settings[id].sameOrigin =\n !!settings[id]?.iframe?.contentWindow?.iframeChildListener\n } catch (error) {\n settings[id].sameOrigin = false\n }\n\n log(id, `sameOrigin: %c${settings[id].sameOrigin}`, HIGHLIGHT)\n}\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { VERSION } from '../../common/consts'\nimport { advise, log } from '../console'\n\nexport default function checkVersion(\n id: string,\n version: string | undefined,\n): void {\n if (version === VERSION) return\n if (version === undefined) {\n advise(\n id,\n `<rb>Legacy version detected in iframe</>\n\nDetected legacy version of child page script. It is recommended to update the page in the iframe to use <b>@iframe-resizer/child</>.\n\nSee <u>https://iframe-resizer.com/setup/#child-page-setup</> for more details.\n`,\n )\n return\n }\n log(\n id,\n `Version mismatch (Child: %c${version}%c !== Parent: %c${VERSION})`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n )\n}\n","import { FOREGROUND, HIGHLIGHT } from 'auto-console-group'\n\nimport { log } from '../console'\nimport type { MessageData } from '../types'\nimport on from './wrapper'\n\n// eslint-disable-next-line import/prefer-default-export\nexport function onMessage(messageData: MessageData, messageBody: string): void {\n const { id, iframe } = messageData\n\n log(\n id,\n `onMessage passed: {iframe: %c${id}%c, message: %c${messageBody}%c}`,\n HIGHLIGHT,\n FOREGROUND,\n HIGHLIGHT,\n FOREGROUND,\n )\n\n on(id, 'onMessage', {\n iframe,\n message: JSON.parse(messageBody),\n })\n}\n","import { CHILD_READY_MESSAGE, MESSAGE, PARENT, STRING } from '../common/consts'\nimport { addEventListener } from '../common/listeners'\nimport { once } from '../common/utils'\nimport { debug, errorBoundary, event as consoleEvent } from './console'\nimport tabVisible from './events/visible'\nimport decodeMessage from './received/decode'\nimport {\n checkIframeExists,\n isMessageForUs,\n isMessageFromIframe,\n isMessageFromMetaParent,\n} from './received/preflight'\nimport routeMessage from './router'\nimport iframeReady from './send/ready'\nimport settings from './values/settings'\n\nfunction iframeListener(\n event: MessageEvent | { data: any; sameOrigin?: boolean },\n): void {\n const msg = event.data\n\n if (msg === CHILD_READY_MESSAGE) {\n iframeReady((event as MessageEvent).source)\n return\n }\n\n if (!isMessageForUs(msg)) {\n if (typeof msg !== STRING) return\n consoleEvent(PARENT, 'ignoredMessage')\n debug(PARENT, msg)\n return\n }\n\n const messageData = decodeMessage(msg)\n const { id, type } = messageData\n\n consoleEvent(id, type)\n\n switch (true) {\n case !settings[id]:\n throw new Error(`${type} No settings for ${id}. Message was: ${msg}`)\n\n case !checkIframeExists(messageData):\n case isMessageFromMetaParent(messageData):\n case !isMessageFromIframe(messageData, event):\n return\n\n default:\n settings[id].lastMessage = event.data\n errorBoundary(id, routeMessage)(messageData)\n }\n}\n\nexport default once(() => {\n addEventListener(window, MESSAGE, iframeListener as EventListener)\n addEventListener(document, 'visibilitychange', tabVisible)\n window.iframeParentListener = (data: any) =>\n setTimeout(() => iframeListener({ data, sameOrigin: true }))\n})\n","import settings from '../values/settings'\n\nexport const sendIframeReady =\n (source: MessageEventSource | null) =>\n ({\n initChild,\n postMessageTarget,\n }: {\n initChild: () => void\n postMessageTarget: MessageEventSource | null\n }): void => {\n if (source === postMessageTarget) initChild()\n }\n\nexport default (source: MessageEventSource | null): void =>\n Object.values(settings).forEach(sendIframeReady(source))\n","import { NEW_LINE } from '../../common/consts'\nimport { advise } from '../console'\n\nconst shownDuplicateIdWarning: Record<string, boolean> = {}\n\nexport default function checkUniqueId(id: string): boolean {\n if (shownDuplicateIdWarning[id] === true) return false\n\n const elements = document.querySelectorAll(`iframe#${CSS.escape(id)}`)\n if (elements.length <= 1) return true\n\n shownDuplicateIdWarning[id] = true\n\n const elementList = Array.from(elements).flatMap((element) => [\n NEW_LINE,\n element,\n NEW_LINE,\n ])\n\n advise(\n id,\n `<rb>Duplicate ID attributes detected</>\n\nThe <b>${id}</> ID is not unique. Having multiple iframes on the same page with the same ID causes problems with communication between the iframe and parent page. Please ensure that the ID of each iframe has a unique value.\n\nFound <bb>${elements.length}</> iframes with the <b>${id}</> ID:`,\n ...elementList,\n NEW_LINE,\n )\n\n return false\n}\n","import {\n MESSAGE,\n REMOVED_NEXT_VERSION,\n RESIZE,\n STRING,\n} from '../../common/consts'\nimport { typeAssert } from '../../common/utils'\nimport { advise } from '../console'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\nimport closeIframe from './close'\nimport disconnect from './disconnect'\n\nconst DEPRECATED_REMOVE_LISTENERS = `<rb>Deprecated Method Name</>\n\nThe <b>removeListeners()</> method has been renamed to <b>disconnect()</>. ${REMOVED_NEXT_VERSION}`\n\nconst DEPRECATED_RESIZE = `<rb>Deprecated Method</>\n\nUse of the <b>resize()</> method from the parent page is deprecated and will be removed in a future version of <i>iframe-resizer</>. As there are no longer any edge cases that require triggering a resize from the parent page, it is recommended to remove this method from your code.`\n\nexport default function attachMethods(id: string): void {\n if (settings[id]) {\n const { iframe } = settings[id]\n const resizer = {\n close: closeIframe.bind(null, iframe),\n\n disconnect: disconnect.bind(null, iframe),\n\n moveToAnchor(anchor: string) {\n typeAssert(anchor, STRING, 'moveToAnchor(anchor) anchor')\n trigger('Move to anchor', `moveToAnchor:${anchor}`, id)\n },\n\n removeListeners() {\n advise(id, DEPRECATED_REMOVE_LISTENERS)\n this.disconnect()\n },\n\n resize() {\n advise(id, DEPRECATED_RESIZE)\n trigger('Window resize', RESIZE, id)\n },\n\n sendMessage(message: any) {\n message = JSON.stringify(message)\n trigger(MESSAGE, `${MESSAGE}:${message}`, id)\n },\n }\n\n iframe.iframeResizer = resizer\n iframe.iFrameResizer = resizer\n }\n}\n","import { CHILD, SEPARATOR } from '../../common/consts'\nimport page from '../values/page'\nimport settings from '../values/settings'\n\n// Backwards compatibility consts\nconst V1_PADDING = '8'\nconst INTERVAL = '32'\nconst RESIZE_FROM = CHILD\nconst PUBLIC_METHODS = true\n\nexport default function createOutgoingMessage(id: string): string {\n const {\n autoResize,\n bodyBackground,\n bodyMargin,\n bodyPadding,\n heightCalculationMethod,\n inPageLinks,\n license,\n log,\n logExpand,\n mouseEvents,\n offsetHeight,\n offsetWidth,\n mode,\n sizeHeight,\n // sizeSelector,\n sizeWidth,\n tolerance,\n widthCalculationMethod,\n } = settings[id]\n\n return [\n id,\n V1_PADDING,\n sizeWidth,\n log,\n INTERVAL,\n PUBLIC_METHODS,\n autoResize,\n bodyMargin,\n heightCalculationMethod,\n bodyBackground,\n bodyPadding,\n tolerance,\n inPageLinks,\n RESIZE_FROM,\n widthCalculationMethod,\n mouseEvents,\n offsetHeight,\n offsetWidth,\n sizeHeight,\n license,\n page.version,\n mode,\n '', // sizeSelector,\n logExpand,\n ].join(SEPARATOR)\n}\n","import { OBJECT } from '../../common/consts'\nimport { advise, event } from '../console'\n\nexport const getOrigin = (url: string): string | null => {\n try {\n return new URL(url).origin\n } catch (error) {\n return null\n }\n}\n\nexport const allowsScriptsAndOrigin = (sandbox: any): boolean =>\n typeof sandbox === OBJECT &&\n sandbox.length > 0 &&\n !(sandbox.contains('allow-scripts') && sandbox.contains('allow-same-origin'))\n\nfunction showWarning(id: string, settings: Record<string, any>): void {\n const {\n checkOrigin,\n iframe: { src, sandbox },\n initialisedFirstPage,\n waitForLoad,\n } = settings[id]\n const targetOrigin = getOrigin(src)\n\n event(id, 'noResponse')\n advise(\n id,\n `<rb>No response from iframe</>\n\nThe iframe (<i>${id}</>) has not responded within ${settings[id].warningTimeout / 1000} seconds. Check <b>@iframe-resizer/child</> package has been loaded in the iframe.\n${\n checkOrigin && targetOrigin\n ? `\nThe <b>checkOrigin</> option is currently enabled. If the iframe redirects away from <i>${targetOrigin}</>, then the connection to the iframe may be blocked by the browser. To disable this option, set <b>checkOrigin</> to <bb>false</> or an array of allowed origins. See <u>https://iframe-resizer.com/checkorigin</> for more information.\n`\n : ''\n}${\n waitForLoad && !initialisedFirstPage\n ? `\nThe <b>waitForLoad</> option is currently set to <bb>true</>. If the iframe loads before <i>iframe-resizer</> runs, this option will prevent <i>iframe-resizer</> initialising. To disable this option, set <b>waitForLoad</> to <bb>false</>.\n`\n : ''\n }${\n allowsScriptsAndOrigin(sandbox)\n ? `\nThe iframe has the <b>sandbox</> attribute, please ensure it contains both the <bb>allow-same-origin</> and <bb>allow-scripts</> values.\n`\n : ''\n }\nThis message can be ignored if everything is working, or you can set the <b>warningTimeout</> option to a higher value or zero to suppress this warning.\n`,\n )\n}\n\nexport default function warnOnNoResponse(\n id: string,\n settings: Record<string, any>,\n): void {\n function warning(): void {\n if (settings[id] === undefined) return // iframe has been closed while we were waiting\n\n const { initialised, loadErrorShown } = settings[id]\n\n settings[id].msgTimeout = undefined\n\n if (initialised) {\n settings[id].initialisedFirstPage = true\n return\n }\n\n if (loadErrorShown) return\n\n settings[id].loadErrorShown = true\n showWarning(id, settings)\n }\n\n const { msgTimeout, warningTimeout } = settings[id]\n\n if (!warningTimeout) return\n if (msgTimeout) clearTimeout(msgTimeout)\n\n settings[id].msgTimeout = setTimeout(warning, warningTimeout)\n}\n","import {\n INIT,\n INIT_FROM_IFRAME,\n LAZY,\n LOAD,\n MIN_SIZE,\n ONLOAD,\n RESET_REQUIRED_METHODS,\n} from '../../common/consts'\nimport { addEventListener } from '../../common/listeners'\nimport { event as consoleEvent, info } from '../console'\nimport resetIframe from '../methods/reset'\nimport warnOnNoResponse from '../send/timeout'\nimport trigger from '../send/trigger'\nimport settings from '../values/settings'\n\nconst AFTER_EVENT_STACK = 1\nconst isLazy = (iframe: HTMLIFrameElement): boolean => iframe.loading === LAZY\nconst isInit = (eventType: string): boolean => eventType === INIT\n\nfunction checkReset(id: string): void {\n if (!(settings[id]?.heightCalculationMethod in RESET_REQUIRED_METHODS)) return\n\n resetIframe({\n id,\n iframe: settings[id].iframe,\n height: MIN_SIZE,\n width: MIN_SIZE,\n type: INIT,\n })\n}\n\nfunction addLoadListener(\n iframe: HTMLIFrameElement,\n initChild: () => void,\n): void {\n // allow other concurrent events to go first\n const onload = (): ReturnType<typeof setTimeout> =>\n setTimeout(initChild, AFTER_EVENT_STACK)\n addEventListener(iframe, LOAD, onload)\n}\n\nconst noContent = (iframe: HTMLIFrameElement): boolean => {\n const { src, srcdoc } = iframe\n return !srcdoc && (src == null || src === '' || src === 'about:blank')\n}\n\nfunction sendInit(id: string, initChild: () => void): void {\n const { iframe, waitForLoad } = settings[id]\n\n if (waitForLoad === true) return\n if (noContent(iframe)) {\n setTimeout(() => {\n consoleEvent(id, 'noContent')\n info(id, 'No content detected in the iframe, delaying initialisation')\n })\n return\n }\n\n setTimeout(initChild)\n}\n\n// We have to call trigger twice, as we can not be sure if all\n// iframes have completed loading when this code runs. The\n// event listener also catches the page changing in the iFrame.\nexport default function init(id: string, message: string): void {\n const createInitChild = (eventType: string) => (): void => {\n if (!settings[id]) return // iframe removed before load event\n\n const { firstRun, iframe } = settings[id]\n\n trigger(eventType, message, id)\n if (!(isInit(eventType) && isLazy(iframe))) warnOnNoResponse(id, settings)\n\n if (!firstRun) checkReset(id)\n }\n\n const { iframe } = settings[id]\n\n settings[id].initChild = createInitChild(INIT_FROM_IFRAME)\n addLoadListener(iframe, createInitChild(ONLOAD))\n sendInit(id, createInitChild(INIT))\n}\n","import {\n AUTO_RESIZE,\n BOTH,\n HORIZONTAL,\n NONE,\n VERTICAL,\n} from '../../common/consts'\nimport { advise } from '../console'\n\nexport default function checkOptions(\n id: string,\n options: Record<string, any> | undefined,\n): Record<string, any> {\n if (!options) return {}\n\n if (\n 'sizeWidth' in options ||\n 'sizeHeight' in options ||\n AUTO_RESIZE in options\n ) {\n advise(\n id,\n `<rb>Deprecated Option</>\n\nThe <b>sizeWidth</>, <b>sizeHeight</> and <b>autoResize</> options have been replaced with new <b>direction</> option which expects values of <bb>${VERTICAL}</>, <bb>${HORIZONTAL}</>, <bb>${BOTH}</> or <bb>${NONE}</>.\n`,\n )\n }\n\n return options\n}\n","import { warn } from '../console'\nimport settings from '../values/settings'\n\nexport const getTargetOrigin = (remoteHost: string): string =>\n remoteHost === '' ||\n remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) !== null\n ? '*'\n : remoteHost\n\nexport function setTargetOrigin(id: string): void {\n const { checkOrigin, remoteHost } = settings[id]\n\n if (Array.isArray(checkOrigin) && checkOrigin.length === 0) {\n warn(\n id,\n 'checkOrigin is an empty array — no messages will be sent to the iframe',\n )\n }\n\n settings[id].targetOrigin = Array.isArray(checkOrigin)\n ? checkOrigin.map(getTargetOrigin)\n : [checkOrigin === false ? '*' : getTargetOrigin(remoteHost)]\n}\n\nexport function getPostMessageTarget(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n if (settings[id].postMessageTarget === null)\n settings[id].postMessageTarget = iframe.contentWindow\n}\n","import { OFFSET, OFFSET_SIZE, REMOVED_NEXT_VERSION } from '../../common/consts'\nimport { hasOwn } from '../../common/utils'\nimport { advise } from '../console'\nimport settings from '../values/settings'\n\nfunction updateOptionName(id: string, oldName: string, newName: string): void {\n if (hasOwn(settings[id], oldName)) {\n advise(\n id,\n `<rb>Deprecated option</>\\n\\nThe <b>${oldName}</> option has been renamed to <b>${newName}</>. ${REMOVED_NEXT_VERSION}`,\n )\n settings[id][newName] = settings[id][oldName]\n delete settings[id][oldName]\n }\n}\n\nexport default function updateOptionNames(id: string): void {\n updateOptionName(id, OFFSET, OFFSET_SIZE)\n updateOptionName(id, 'onClose', 'onBeforeClose')\n updateOptionName(id, 'onClosed', 'onAfterClose')\n}\n","import setMode from '../../common/mode'\nimport { hasOwn } from '../../common/utils'\nimport checkOptions from '../checks/options'\nimport checkWarningTimeout from '../checks/warning-timeout'\nimport { checkTitle } from '../page/title'\nimport setOffsetSize from '../send/offset'\nimport defaults from '../values/defaults'\nimport settings from '../values/settings'\nimport setDirection from './direction'\nimport { getPostMessageTarget, setTargetOrigin } from './target-origin'\nimport updateOptionNames from './update-option-names'\n\nconst hasMouseEvents = (options: Record<string, any>): boolean =>\n hasOwn(options, 'onMouseEnter') || hasOwn(options, 'onMouseLeave')\n\nexport default function processOptions(\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n const { id } = iframe\n settings[id] = {\n ...settings[id],\n iframe,\n remoteHost: iframe?.src.split('/').slice(0, 3).join('/'),\n ...defaults,\n ...checkOptions(id, options),\n mouseEvents: hasMouseEvents(options),\n mode: setMode(options),\n syncTitle: checkTitle(id),\n }\n\n updateOptionNames(id)\n setDirection(id)\n setOffsetSize(id, options)\n checkWarningTimeout(id)\n getPostMessageTarget(iframe)\n setTargetOrigin(id)\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { BOTH, HORIZONTAL, NONE, VERTICAL } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function setDirection(id: string): void {\n const { direction } = settings[id]\n\n switch (direction) {\n case VERTICAL:\n break\n\n case HORIZONTAL:\n settings[id].sizeHeight = false\n // eslint-disable-next-line no-fallthrough\n case BOTH:\n settings[id].sizeWidth = true\n break\n\n case NONE:\n settings[id].sizeWidth = false\n settings[id].sizeHeight = false\n settings[id].autoResize = false\n break\n\n default:\n throw new TypeError(`Direction value of \"${direction}\" is not valid`)\n }\n\n log(id, `direction: %c${direction}`, HIGHLIGHT)\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { VERTICAL } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nexport default function setOffsetSize(\n id: string,\n { offset, offsetSize }: { offset?: number; offsetSize?: number },\n): void {\n const newOffset = offsetSize || offset\n\n if (!newOffset) return // No offset set or offset is zero\n\n if (settings[id].direction === VERTICAL) {\n settings[id].offsetHeight = newOffset\n log(id, `Offset height: %c${newOffset}`, HIGHLIGHT)\n } else {\n settings[id].offsetWidth = newOffset\n log(id, `Offset width: %c${newOffset}`, HIGHLIGHT)\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { info } from '../console'\nimport settings from '../values/settings'\n\nexport default function checkWarningTimeout(id: string): void {\n if (!settings[id].warningTimeout) {\n info(id, 'warningTimeout:%c disabled', HIGHLIGHT)\n }\n}\n","import { HIGHLIGHT } from 'auto-console-group'\n\nimport { preModeCheck } from '../checks/mode'\nimport checkUniqueId from '../checks/unique'\nimport { endAutoGroup, event as consoleEvent, log } from '../console'\nimport attachMethods from '../methods/attach'\nimport createOutgoingMessage from '../send/outgoing'\nimport setupBodyMargin from './body-margin'\nimport init from './init'\nimport processOptions from './process-options'\nimport setScrolling from './scrolling'\n\nfunction setup(\n id: string,\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n processOptions(iframe, options)\n log(id, `src: %c${iframe.srcdoc || iframe.src}`, HIGHLIGHT)\n preModeCheck(id)\n setScrolling(iframe)\n setupBodyMargin(id)\n init(id, createOutgoingMessage(id))\n attachMethods(id)\n log(id, 'Setup complete')\n}\n\nexport default function (\n iframe: HTMLIFrameElement,\n options: Record<string, any>,\n): void {\n const { id } = iframe\n consoleEvent(id, 'setup')\n if (checkUniqueId(id)) setup(id, iframe, options)\n endAutoGroup(id)\n}\n","import { AUTO, HIDDEN, OMIT } from '../../common/consts'\nimport { log } from '../console'\nimport settings from '../values/settings'\n\nconst YES = 'yes'\nconst NO = 'no'\n\nexport default function setScrolling(iframe: HTMLIFrameElement): void {\n const { id } = iframe\n\n log(\n id,\n `Iframe scrolling ${\n settings[id]?.scrolling ? 'enabled' : 'disabled'\n } for ${id}`,\n )\n\n iframe.style.overflow = settings[id]?.scrolling === false ? HIDDEN : AUTO\n\n switch (settings[id]?.scrolling) {\n case OMIT:\n break\n\n case true:\n iframe.scrolling = YES\n break\n\n case false:\n iframe.scrolling = NO\n break\n\n default:\n iframe.scrolling = settings[id]?.scrolling || NO\n }\n}\n","import { NUMBER } from '../../common/consts'\nimport settings from '../values/settings'\n\nconst ZERO = '0'\n\nexport default function setupBodyMargin(id: string): void {\n const { bodyMargin } = settings[id]\n\n if (typeof bodyMargin === NUMBER || bodyMargin === ZERO) {\n settings[id].bodyMargin = `${bodyMargin}px`\n }\n}\n","import {\n COLLAPSE,\n EXPAND,\n LOG_COLLAPSED,\n LOG_DISABLED,\n LOG_EXPANDED,\n LOG_OPTIONS,\n} from '../../common/consts'\nimport { hasOwn, isString } from '../../common/utils'\nimport { enableVInfo } from '../checks/mode'\nimport { error, setupConsole } from '../console'\nimport defaults from '../values/defaults'\n\nexport default function startLogging(\n id: string,\n options: Record<string, any>,\n): void {\n // eslint-disable-next-line unicorn/prefer-switch\n if (options.log === LOG_DISABLED) options.log = false\n else if (options.log === LOG_COLLAPSED) options.log = COLLAPSE\n else if (options.log === LOG_EXPANDED) options.log = EXPAND\n\n const isLogEnabled = hasOwn(options, 'log')\n const isLogString = isString(options.log)\n const enabled = isLogEnabled\n ? isLogString\n ? true\n : options.log\n : defaults.log\n\n if (!hasOwn(options, 'logExpand')) {\n options.logExpand =\n isLogEnabled && isLogString ? options.log === EXPAND : defaults.logExpand\n }\n\n enableVInfo(options)\n setupConsole({\n enabled,\n expand: options.logExpand,\n iframeId: id,\n })\n\n if (isLogString && !(options.log in LOG_OPTIONS))\n error(\n id,\n `Invalid value for options.log: Accepted values are \"${EXPAND}\" and \"${COLLAPSE}\"`,\n )\n\n options.log = enabled\n}\n","import { LABEL } from '../common/consts'\nimport { isObject } from '../common/utils'\nimport ensureHasId from './checks/id'\nimport checkManualLogging from './checks/manual-logging'\nimport { errorBoundary, event as consoleEvent, warn } from './console'\nimport setupEventListenersOnce from './listeners'\nimport setupIframe from './setup'\nimport setupLogging from './setup/logging'\n\nexport { LOG_COLLAPSED, LOG_DISABLED, LOG_EXPANDED } from '../common/consts'\nexport type {\n Direction,\n IFrameComponent,\n IFrameMessageData,\n IFrameMouseData,\n IFrameObject,\n IFrameOptions,\n IFrameResizedData,\n IFrameScrollData,\n LogOption,\n MessageData,\n ScrollOption,\n} from './types'\n\nexport default function connectResizer(\n options: Record<string, any>,\n): (iframe: HTMLIFrameElement) => any {\n if (!isObject(options)) throw new TypeError('Options is not an object')\n\n setupEventListenersOnce()\n checkManualLogging(options)\n\n return (iframe: HTMLIFrameElement) => {\n const id = ensureHasId(iframe, options)\n\n if (LABEL in iframe) {\n consoleEvent(id, 'alreadySetup')\n warn(id, `Ignored iframe (${id}), already setup.`)\n } else {\n setupLogging(id, options)\n errorBoundary(id, setupIframe)(iframe, options)\n }\n\n return iframe?.iframeResizer\n }\n}\n","import {\n COLLAPSE,\n EXPAND,\n LOG_COLLAPSED,\n LOG_DISABLED,\n LOG_EXPANDED,\n} from '../../common/consts'\n\nexport default function (options: Record<string, any>): void {\n const { search } = window.location\n\n if (search.includes('ifrlog')) {\n const value = new URLSearchParams(search).get('ifrlog')\n\n switch (value) {\n case String(LOG_DISABLED): {\n options.log = false\n break\n }\n\n case EXPAND:\n case String(LOG_EXPANDED): {\n options.log = EXPAND\n break\n }\n\n case COLLAPSE:\n case String(LOG_COLLAPSED): {\n options.log = COLLAPSE\n break\n }\n\n default: {\n options.log = COLLAPSE\n }\n }\n }\n}\n","import connectResizer from '@iframe-resizer/core'\n\n// eslint-disable-next-line import/extensions\nimport { deprecateMethod, warn } from '../core/console'\n\nswitch (true) {\n case window.jQuery === undefined:\n warn('', 'Unable to bind to jQuery, it is not available.')\n break\n\n case !window.jQuery.fn:\n warn('', 'Unable to bind to jQuery, it is not fully loaded.')\n break\n\n case window.jQuery.fn.iframeResize:\n warn('', 'iframeResize is already assigned to jQuery.fn.')\n break\n\n default:\n window.jQuery.fn.iframeResize = function (options) {\n const connectWithOptions = connectResizer(options)\n const init = (i, el) => connectWithOptions(el)\n\n return this.filter('iframe').each(init).end()\n }\n\n window.jQuery.fn.iFrameResize = function (options) {\n deprecateMethod('iFrameResize()', 'iframeResize()', '', 'jQuery')\n\n return this.iframeResize(options)\n }\n}\n"],"names":["VERSION","LABEL","SEPARATOR","AUTO_RESIZE","INIT","INIT_FROM_IFRAME","LOAD","MESSAGE","ONLOAD","PAGE_INFO","PARENT_INFO","RESET","RESIZE","SCROLL","NEW_LINE","PARENT","STRING","OBJECT","FUNCTION","AUTO","NONE","BOTH","VERTICAL","HORIZONTAL","MESSAGE_ID","RESET_REQUIRED_METHODS","Object","freeze","max","scroll","bodyScroll","documentElementScroll","INIT_EVENTS","EXPAND","COLLAPSE","LOG_OPTIONS","REMOVED_NEXT_VERSION","isObject","value","isString","hasOwn","o","k","prototype","hasOwnProperty","call","hasOwnFallback","$","U","f","_","assert","error","warn","L","expand","defaultEvent","event","label","showTime","q","profile","profileEnd","timeStamp","trace","u","assign","console","fromEntries","W","keys","b","z","K","t","s","h","map","T","window","matchMedia","matches","J","Y","TAGS","br","rb","bb","i","tags","RegExp","join","lookup","tag","createFormatAdvise","formatLogMessage","message","chrome","replace","replaceAll","filter","settings","createConsoleGroup","mod","c","r","collapsed","expanded","l","length","d","O","some","e","g","P","n","groupEnd","p","Date","toString","padStart","V","queueMicrotask","a","push","w","performance","now","count","countReset","endAutoGroup","errorBoundary","m","E","Error","isPrototypeOf","purge","time","timeEnd","timeLog","touch","__esModule","default","consoleEnabled","parent","getMyId","iframeId","top","self","output","type","args","outputSwitched","log","isLogEnabled","info","debug","formatAdvise","x","advise","localFormatAdvise","formatLogMsg","deprecateAdvise","change","old","replacement","toLowerCase","deprecate","deprecateMethod","deprecateOption","defaults","autoResize","bodyBackground","bodyMargin","bodyPadding","checkOrigin","direction","firstRun","inPageLinks","heightCalculationMethod","id","logExpand","license","undefined","mouseEvents","offsetHeight","offsetWidth","postMessageTarget","sameDomain","scrolling","sizeHeight","sizeWidth","tolerance","waitForLoad","warningTimeout","widthCalculationMethod","onBeforeClose","onAfterClose","onInit","onMessage","onMouseEnter","onMouseLeave","onReady","messageData","onResized","onScroll","ensureHasId","iframe","options","TypeError","document","getElementById","newId","consoleEvent","src","addEventListener","el","evt","func","removeEventListener","dispatch","calleeMsg","msg","logSent","route","displayMsg","split","index","filterMsg","HIGHLIGHT","FOREGROUND","sameOrigin","targetOrigin","contentWindow","iframeChildListener","origin","postMessage","trigger","tabVisible","hidden","eventName","values","forEach","sendTriggerMsg","decodeMessage","data","slice","height","Number","compStyle","getComputedStyle","paddingAndBorder","boxSizing","paddingTop","parseInt","paddingBottom","getPaddingEnds","borderTopWidth","borderBottomWidth","getBorderEnds","width","mode","ABOVE_TYPES","true","false","checkIframeExists","detectedIframe","element","tagName","HTMLIFrameElement","isIframe","on","funcName","val","setTimeout","isolateUserCode","getMessageBody","offset","lastMessage","indexOf","onMouse","mousePos","y","coords","screenX","screenY","page","position","version","unsetPagePosition","getPagePosition","scrollX","scrollY","setPagePosition","scrollTo","setDimension","dimension","size","style","setSize","resizeIframe","disconnect","iframeResizer","closeIframe","parentNode","remove","resetIframe","sendInfoToIframe","infoFunction","gate","requestType","frameId","requestAnimationFrame","stopInfoMonitor","stopFunction","startInfoMonitor","pending","sendInfo","stop","sendScroll","sendResize","pageObserver","ResizeObserver","iframeObserver","setListener","listener","observe","body","startPageInfoMonitor","bodyPosition","getBoundingClientRect","iFramePosition","innerHeight","innerWidth","clientHeight","clientWidth","documentElement","JSON","stringify","iframeHeight","iframeWidth","Math","offsetTop","trunc","offsetLeft","left","scrollTop","scrollLeft","documentHeight","documentWidth","windowHeight","windowWidth","stopPageInfoMonitor","startParentInfoMonitor","scrollWidth","scrollHeight","visualViewport","pageLeft","pageTop","scale","viewport","stopParentInfoMonitor","getElementPosition","target","iframePosition","pagePosition","scrollToLink","scrollRequestFromChild","addOffset","newPosition","calcOffset","parentIframe","parentIFrame","scrollParent","reposition","scrollToOffset","inPageLink","location","hash","hashData","decodeURIComponent","getElementsByName","jumpToTarget","moveToAnchor","jumpToParent","checkTitle","title","codePointAt","imul","String","fromCodePoint","Set","Array","from","arr","dd","dx","dy","getModeData","setMode","v","has","vAdvised","vInfoDisable","checkMode","childMode","consoleClear","ver","NORMAL","vInfo","getModeLabel","routeMessage","parse","initialised","checkSameDomain","checkVersion","messageBody","scrollBy","syncTitle","setTitle","iframeListener","source","initChild","sendIframeReady","isMetaParent","isMessageFromMetaParent","constructor","checkList","remoteHost","checkSingle","isMessageFromIframe","setupEventListenersOnce","fn","done","apply","this","once","iframeParentListener","shownDuplicateIdWarning","DEPRECATED_REMOVE_LISTENERS","attachMethods","resizer","close","bind","anchor","string","charAt","toUpperCase","typeAssert","removeListeners","resize","sendMessage","iFrameResizer","V1_PADDING","INTERVAL","RESIZE_FROM","PUBLIC_METHODS","showWarning","sandbox","initialisedFirstPage","url","URL","getOrigin","contains","allowsScriptsAndOrigin","init","createInitChild","eventType","isInit","loading","isLazy","msgTimeout","clearTimeout","loadErrorShown","warnOnNoResponse","checkReset","addLoadListener","srcdoc","noContent","sendInit","checkOptions","getTargetOrigin","match","updateOptionName","oldName","newName","hasMouseEvents","processOptions","updateOptionNames","setDirection","offsetSize","newOffset","setOffsetSize","checkWarningTimeout","getPostMessageTarget","isArray","setTargetOrigin","setup","preModeCheck","overflow","setScrolling","setupBodyMargin","createOutgoingMessage","setupIframe","elements","querySelectorAll","CSS","escape","elementList","flatMap","checkUniqueId","startLogging","isLogString","enabled","enableVInfo","consoleGroup","setupConsole","connectResizer","search","includes","URLSearchParams","get","checkManualLogging","setupLogging","jQuery","iframeResize","connectWithOptions","each","end","iFrameResize"],"mappings":"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","x_google_ignoreList":[2]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@iframe-resizer/jquery",
|
|
3
|
-
"version": "6.0.0-beta.
|
|
3
|
+
"version": "6.0.0-beta.2",
|
|
4
4
|
"license": "GPL-3.0",
|
|
5
5
|
"homepage": "https://iframe-resizer.com",
|
|
6
6
|
"author": {
|
|
@@ -34,6 +34,6 @@
|
|
|
34
34
|
"jquery"
|
|
35
35
|
],
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@iframe-resizer/core": "6.0.0-beta.
|
|
37
|
+
"@iframe-resizer/core": "6.0.0-beta.2"
|
|
38
38
|
}
|
|
39
39
|
}
|