@iframe-resizer/parent
Advanced tools
Comparing version 5.0.0-alpha.5 to 5.0.0-alpha.6
/*! | ||
* @preserve | ||
* | ||
* @module iframe-resizer/parent 5.0.0-alpha.5 (cjs) - 2024-04-17 | ||
* @module iframe-resizer/parent 5.0.0-alpha.6 (cjs) - 2024-04-17 | ||
* | ||
@@ -6,0 +6,0 @@ * @license GPL-3.0 for non-commercial use only. |
/*! | ||
* @preserve | ||
* | ||
* @module iframe-resizer/parent 5.0.0-alpha.5 (esm) - 2024-04-17 | ||
* @module iframe-resizer/parent 5.0.0-alpha.6 (esm) - 2024-04-17 | ||
* | ||
@@ -6,0 +6,0 @@ * @license GPL-3.0 for non-commercial use only. |
/*! | ||
* @preserve | ||
* | ||
* @module iframe-resizer/parent 5.0.0-alpha.5 (umd) - 2024-04-17 | ||
* @module iframe-resizer/parent 5.0.0-alpha.6 (umd) - 2024-04-17 | ||
* | ||
@@ -20,2 +20,2 @@ * @license GPL-3.0 for non-commercial use only. | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).iframeResize=n()}(this,(function(){"use strict";const e="[iframeResizer]";const n=n=>`${e}[${function(e){return window.top===window.self?`Host page: ${e}`:window?.parentIFrame?.getId?`${window.parentIFrame.getId()}: ${e}`:`Nested host page: ${e}`}(n)}]`,t=(e,t,...i)=>window?.console[e](n(t),...i),i=(e,...n)=>t("info",e,...n),o=(e,...n)=>t("warn",e,...n),r=(n,t)=>window?.console.warn(((n,...t)=>[`${e}[${n}]`,...t].join(" "))(n,window.chrome?t:t.replaceAll(/\u001B\[[\d;]*m/gi,""))),a="[iFrameSizer]",s=a.length,c=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),d=(e,n,t,i)=>e.addEventListener(n,t,i||!1),l=(e,n,t)=>e.removeEventListener(n,t,!1),f=e=>!Number.isNaN(e),u=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)},m={},h=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:"vertical",inPageLinks:!1,enablePublicMethods:!0,heightCalculationMethod:"auto",id:"iFrameResizer",log:!0,license:void 0,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,mouseEvents:!0,offsetHeight:0,offsetWidth:0,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,widthCalculationMethod:"auto",onClose:()=>!0,onClosed(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{"function"==typeof m[e.id].onInit&&(r(e.id,"\n[31;1mDeprecated Option[m\n\nThe [1monInit()[m function is deprecated and has been replaced with [1monReady()[m. It will be removed in a future version of iFrame Resizer.\n "),m[e.id].onInit(e))},onResized(){},onScroll:()=>!0}),g={position:null,version:"5.0.0-alpha.5"};function p(e){function n(){c("Height"),c("Width"),R(B),$(),C("onResized",B)}function t(e){if("border-box"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function r(e){if("border-box"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}function c(e){const n=Number(m[D][`max${e}`]),t=Number(m[D][`min${e}`]),i=e.toLowerCase();let o=Number(B[i]);o<t&&(o=t),o>n&&(o=n),B[i]=`${o}`}function f(e){return L.slice(L.indexOf(":")+7+e)}const u=(e,n)=>(t,i)=>{const o={};var r,a;r=function(){M(`Send ${e} (${t})`,`${e}:${n()}`,i)},o[a=i]||(r(),o[a]=requestAnimationFrame((()=>{o[a]=null})))},h=(e,n)=>()=>{const t=n=>()=>{m[r]?e(n,r):o()};function i(e,n){n(window,"scroll",t("scroll")),n(window,"resize",t("resize window"))}function o(){i(0,l),a.disconnect()}const r=D,a=new ResizeObserver(t("iframe observed"));i(0,d),a.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),m[r]&&(m[r][`stop${n}`]=o)},p=e=>()=>{e in m[D]&&(m[D][e](),delete m[D][e])},b=u("pageInfo",(function(){const e=document.body.getBoundingClientRect(),n=B.iframe.getBoundingClientRect(),{scrollY:t,scrollX:i,innerHeight:o,innerWidth:r}=window,{clientHeight:a,clientWidth:s}=document.documentElement;return JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(a,o||0),clientWidth:Math.max(s,r||0),offsetTop:parseInt(n.top-e.top,10),offsetLeft:parseInt(n.left-e.left,10),scrollTop:t,scrollLeft:i,documentHeight:a,documentWidth:s,windowHeight:o,windowWidth:r})})),I=u("parentInfo",(function(){const{iframe:e}=B,{scrollWidth:n,scrollHeight:t}=document.documentElement,{width:i,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:c,scale:d}=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:c,scale:d}})})),k=h(b,"PageInfo"),N=h(I,"ParentInfo"),E=p("stopPageInfo"),W=p("stopParentInfo");function H(e){const n=e.getBoundingClientRect();return z(),{x:Math.floor(Number(n.left)+Number(g.position.x)),y:Math.floor(Number(n.top)+Number(g.position.y))}}function F(e){const n=e?H(B.iframe):{x:0,y:0};let t=((e,n)=>({x:Number(e.width)+n.x,y:Number(e.height)+n.y}))(B,n);window.top===window.self?(g.position=t,O()):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](t.x,t.y):o(D,"Unable to scroll to requested position, window.parentIFrame not found")}function O(){!1!==C("onScroll",g.position)?$():v()}function S(e){let n={};if(0===Number(B.width)&&0===Number(B.height)){const e=f(9).split(":");n={x:e[1],y:e[0]}}else n={x:B.width,y:B.height};C(e,{iframe:B.iframe,screenX:Number(n.x),screenY:Number(n.y),type:B.type})}const C=(e,n)=>w(D,e,n);let L=e.data,B={},D=null;"[iFrameResizerChild]Ready"!==L?a===`${L}`.slice(0,s)&&L.slice(s).split(":")[0]in m?(B=function(){const e=L.slice(s).split(":"),n=e[1]?Number(e[1]):0,i=m[e[0]]?.iframe,o=getComputedStyle(i);return{iframe:i,id:e[0],height:n+t(o)+r(o),width:Number(e[2]),type:e[3]}}(),D=B.id,D?(function(e){if(!m[e])throw new Error(`${B.type} No settings for ${e}. Message was: ${L}`)}(D),B.type in{true:1,false:1,undefined:1}||(m[D].loaded=!0,function(){let e=!0;return null===B.iframe&&(o(D,`The iframe (${B.id}) was not found.`),e=!1),e}()&&function(){const{origin:n,sameDomain:t}=e;if(t)return!0;let i=m[D]?.checkOrigin;if(i&&"null"!=`${n}`&&!(i.constructor===Array?function(){let e=0,t=!1;for(;e<i.length;e++)if(i[e]===n){t=!0;break}return t}():function(){const e=m[D]?.remoteHost;return n===e}()))throw new Error(`Unexpected message received from: ${n} for ${B.iframe.id}. Message was: ${e.data}. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.`);return!0}()&&function(){switch(m[D]?.firstRun&&m[D]&&(m[D].firstRun=!1),B.type){case"close":y(B.iframe);break;case"message":e=f(6),C("onMessage",{iframe:B.iframe,message:JSON.parse(e)});break;case"mouseenter":S("onMouseEnter");break;case"mouseleave":S("onMouseLeave");break;case"autoResize":m[D].autoResize=JSON.parse(f(9));break;case"scrollTo":F(!1);break;case"scrollToOffset":F(!0);break;case"pageInfo":b("start",D),k();break;case"parentInfo":I("start",D),N();break;case"pageInfoStop":E();break;case"parentInfoStop":W();break;case"inPageLink":!function(e){const n=e.split("#")[1]||"",t=decodeURIComponent(n);let i=document.getElementById(t)||document.getElementsByName(t)[0];i?function(){const e=H(i);g.position={x:e.x,y:e.y},O()}():window.top!==window.self&&window.parentIFrame&&window.parentIFrame.moveToAnchor(n)}(f(9));break;case"reset":T(B);break;case"init":n(),function(e){try{m[e].sameDomain=!!m[e]?.iframe?.contentWindow?.iframeChildListener}catch(n){m[e].sameDomain=!1}}(D),C("onReady",B.iframe);break;default:if(0===B.width&&0===B.height)return void o(`Unsupported message received (${B.type}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===B.width||0===B.height)return;if(document.hidden)return;n()}var e}())):o("iframeResizer received messageData without id, message was: ",L)):i(D,`Ignored: ${L}`):Object.keys(m).forEach((e=>M("iFrame requested init",x(e),e)))}function w(e,n,t){let i=null,o=null;if(m[e]){if(i=m[e][n],"function"!=typeof i)throw new TypeError(`${n} on iFrame[${e}] is not a function`);o=i(t)}return o}function b(e){const n=e.id;delete m[n]}function y(e){const n=e.id;if(!1!==w(n,"onClose",n)){try{e.parentNode&&e.remove()}catch(e){o(e)}w(n,"onClosed",n),b(e)}}function z(e){null===g.position&&(g.position={x:window.scrollX,y:window.scrollY})}function v(){g.position=null}function $(e){null!==g.position&&(window.scrollTo(g.position.x,g.position.y),v())}function T(e){z(e.id),R(e),M("reset","reset",e.id)}function R(e){const n=e.id;function t(n){const t=`${e[n]}px`;e.iframe.style[n]=t}m[n].sizeHeight&&t("height"),m[n].sizeWidth&&t("width")}function M(e,n,t,s){m[t]&&(m[t]?.postMessageTarget?function(){const{postMessageTarget:e,targetOrigin:o}=m[t];if(m[t].sameDomain)try{return void m[t].iframe.contentWindow.iframeChildListener(a+n)}catch(e){i(t,"Same domain connection failed. Trying cross domain"),m[t].sameDomain=!1}e.postMessage(a+n,o)}():o(t,`[${e}] IFrame(${t}) not found`),s&&m[t]?.warningTimeout&&(m[t].msgTimeout=setTimeout((function(){void 0!==m[t]&&(m[t].loaded||m[t].loadErrorShown||(m[t].loadErrorShown=!0,r(t,`\n[31;1mNo response from iFrame[m\n \nThe iframe ([3m${t}[m) has not responded within ${m[t].warningTimeout/1e3} seconds. Check [1m@iframe-resizer/child[m package has been loaded in the iframe.\n\nThis message can be ignored if everything is working, or you can set the [1mwarningTimeout[m option to a higher value or zero to suppress this warning.\n`)))}),m[t].warningTimeout)))}function x(e){const n=m[e];return[e,"8",n.sizeWidth,n.log,"32",n.enablePublicMethods,n.autoResize,n.bodyMargin,n.heightCalculationMethod,n.bodyBackground,n.bodyPadding,n.tolerance,n.inPageLinks,"child",n.widthCalculationMethod,n.mouseEvents,n.offsetHeight,n.offsetWidth,n.sizeHeight,u(n.license),g.version].join(":")}let I=0;const k=e=>n=>{function t(e){if(!e)return{};if("object"!=typeof e)throw new TypeError("Options is not an object");return("sizeWidth"in e||"sizeHeight"in e||"autoResize"in e)&&r(i,'\n[31;1mDeprecated Optionm\n\nThe [1msizeWidth[m, [1msizeHeight[m and [1mautoResize[m options have been replaced with new [1mdirection[m option which expects values of [3m"vertical"[m, [3m"horizontal"[m or [3m"horizontal"[m.\n'),e}const i=function(t){if(t&&"string"!=typeof t)throw new TypeError("Invaild id for iFrame. Expected String");return""!==t&&t||(n.id=t=function(){let n=e?.id||h.id+I++;return null!==document.getElementById(n)&&(n+=I++),n}(),(e||{}).log),t}(n.id);return i in m&&"iFrameResizer"in n?o(i,"Ignored iFrame, already setup."):(function(e){var o;m[i]={iframe:n,firstRun:!0,remoteHost:n?.src.split("/").slice(0,3).join("/"),...h,...t(e)},function(){if("horizontal"===m[i].direction)return m[i].sizeWidth=!0,void(m[i].sizeHeight=!1);if("none"===m[i].direction)return m[i].sizeWidth=!1,m[i].sizeHeight=!1,void(m[i].autoResize=!1);if("vertical"!==m[i].direction)throw new TypeError(i,`Direction value of "${m[i].direction}" is not valid`)}(),null===m[i].postMessageTarget&&(m[i].postMessageTarget=n.contentWindow),m[i].targetOrigin=!0===m[i].checkOrigin?""===(o=m[i].remoteHost)||null!==o.match(/^(about:blank|javascript:|file:\/\/)/)?"*":o:"*"}(e),E(),function(){switch(n.style.overflow=!1===m[i]?.scrolling?"hidden":"auto",m[i]?.scrolling){case"omit":break;case!0:n.scrolling="yes";break;case!1:n.scrolling="no";break;default:n.scrolling=m[i]?m[i].scrolling:"no"}}(),function(){function e(e){const t=m[i][e];1/0!==t&&0!==t&&(n.style[e]=f(t)?`${t}px`:t)}function t(e){if(f(`min${e}`)&&f(`max${e}`)&&m[i][`min${e}`]>m[i][`max${e}`])throw new Error(`Value for min${e} can not be greater than max${e}`)}t("Height"),t("Width"),e("maxHeight"),e("minHeight"),e("maxWidth"),e("minWidth")}(),function(){const{bodyMargin:e}=m[i];"number"!=typeof e&&"0"!==e||(m[i].bodyMargin=`${e}px`)}(),function(e){const{id:t}=n;d(n,"load",(function(){M("iFrame.onload",e,t,!0),function(){const e=m[i]?.firstRun,t=m[i]?.heightCalculationMethod in c;!e&&t&&T({iframe:n,height:0,width:0,type:"init"})}()})),M("init",e,t,!0)}(x(i)),function(){if(m[i]){const e={close:y.bind(null,m[i].iframe),disconnect:b.bind(null,m[i].iframe),removeListeners(){r(i,"\n[31;1mDeprecated Method Namem\n\nThe [removeListeners()[m method has been renamed to [disconnect()[m.\n"),this.disconnect()},resize:M.bind(null,"Window resize","resize",i),moveToAnchor(e){M("Move to anchor",`moveToAnchor:${e}`,i)},sendMessage(e){M("Send Message",`message:${e=JSON.stringify(e)}`,i)}};m[i].iframe.iframeResizer=e,m[i].iframe.iFrameResizer=e}}()),n?.iFrameResizer};function N(){!1===document.hidden&&function(e,n){const t=e=>m[e]?.autoResize&&!m[e]?.firstRun;Object.keys(m).forEach((function(i){t(i)&&M(e,n,i)}))}("Tab Visible","resize")}const E=(e=>{let n=!1;return function(){return n?void 0:(n=!0,Reflect.apply(e,this,arguments))}})((()=>{d(window,"message",p),d(document,"visibilitychange",N),window.iframeParentListener=e=>p({data:e,sameDomain:!0})})),W="[iframeResizer] ";const H=function(){function e(e){switch(!0){case!e:throw new TypeError(`${W}iframe is not defined`);case!e.tagName:throw new TypeError(`${W}Not a valid DOM element`);case"IFRAME"!==e.tagName.toUpperCase():throw new TypeError(`${W}Expected <IFRAME> tag, found <${e.tagName}>`);default:n(e),t.push(e)}}let n,t;return function(i,o){if("undefined"==typeof window)return[];switch(n=k(i),t=[],typeof o){case"undefined":case"string":document.querySelectorAll(o||"iframe").forEach(e);break;case"object":e(o);break;default:throw new TypeError(`${W}Unexpected data type (${typeof o})`)}return Object.freeze(t)}}();return"undefined"!=typeof window&&(window.iFrameResize=function(...e){r("","Deprecated: iFrameResize(), please use iframeResize()"),H(...e)}),H})); | ||
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?module.exports=n():"function"==typeof define&&define.amd?define(n):(e="undefined"!=typeof globalThis?globalThis:e||self).iframeResize=n()}(this,(function(){"use strict";const e="[iframeResizer]";const n=n=>`${e}[${function(e){return window.top===window.self?`Host page: ${e}`:window?.parentIFrame?.getId?`${window.parentIFrame.getId()}: ${e}`:`Nested host page: ${e}`}(n)}]`,t=(e,t,...i)=>window?.console[e](n(t),...i),i=(e,...n)=>t("info",e,...n),o=(e,...n)=>t("warn",e,...n),r=(n,t)=>window?.console.warn(((n,...t)=>[`${e}[${n}]`,...t].join(" "))(n,window.chrome?t:t.replaceAll(/\u001B\[[\d;]*m/gi,""))),a="[iFrameSizer]",s=a.length,c=Object.freeze({max:1,scroll:1,bodyScroll:1,documentElementScroll:1}),d=(e,n,t,i)=>e.addEventListener(n,t,i||!1),l=(e,n,t)=>e.removeEventListener(n,t,!1),f=e=>!Number.isNaN(e),u=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)},m={},h=Object.freeze({autoResize:!0,bodyBackground:null,bodyMargin:null,bodyPadding:null,checkOrigin:!0,direction:"vertical",inPageLinks:!1,enablePublicMethods:!0,heightCalculationMethod:"auto",id:"iFrameResizer",log:!0,license:void 0,maxHeight:1/0,maxWidth:1/0,minHeight:0,minWidth:0,mouseEvents:!0,offsetHeight:0,offsetWidth:0,postMessageTarget:null,sameDomain:!1,scrolling:!1,sizeHeight:!0,sizeWidth:!1,warningTimeout:5e3,tolerance:0,widthCalculationMethod:"auto",onClose:()=>!0,onClosed(){},onInit:!1,onMessage:null,onMouseEnter(){},onMouseLeave(){},onReady:e=>{"function"==typeof m[e.id].onInit&&(r(e.id,"\n[31;1mDeprecated Option[m\n\nThe [1monInit()[m function is deprecated and has been replaced with [1monReady()[m. It will be removed in a future version of iFrame Resizer.\n "),m[e.id].onInit(e))},onResized(){},onScroll:()=>!0}),g={position:null,version:"5.0.0-alpha.6"};function p(e){function n(){c("Height"),c("Width"),R(D),v(),L("onResized",D)}function t(e){if("border-box"!==e.boxSizing)return 0;return(e.paddingTop?parseInt(e.paddingTop,10):0)+(e.paddingBottom?parseInt(e.paddingBottom,10):0)}function r(e){if("border-box"!==e.boxSizing)return 0;return(e.borderTopWidth?parseInt(e.borderTopWidth,10):0)+(e.borderBottomWidth?parseInt(e.borderBottomWidth,10):0)}function c(e){const n=Number(m[j][`max${e}`]),t=Number(m[j][`min${e}`]),i=e.toLowerCase();let o=Number(D[i]);o<t&&(o=t),o>n&&(o=n),D[i]=`${o}`}function f(e){return B.slice(B.indexOf(":")+7+e)}const u=(e,n)=>(t,i)=>{const o={};var r,a;r=function(){M(`Send ${e} (${t})`,`${e}:${n()}`,i)},o[a=i]||(r(),o[a]=requestAnimationFrame((()=>{o[a]=null})))},h=(e,n)=>()=>{const t=n=>()=>{m[r]?e(n,r):o()};function i(e,n){n(window,"scroll",t("scroll")),n(window,"resize",t("resize window"))}function o(){i(0,l),a.disconnect()}const r=j,a=new ResizeObserver(t("iframe observed"));i(0,d),a.observe(document.body,{attributes:!0,childList:!0,subtree:!0}),m[r]&&(m[r][`stop${n}`]=o)},p=e=>()=>{e in m[j]&&(m[j][e](),delete m[j][e])},b=u("pageInfo",(function(){const e=document.body.getBoundingClientRect(),n=D.iframe.getBoundingClientRect(),{scrollY:t,scrollX:i,innerHeight:o,innerWidth:r}=window,{clientHeight:a,clientWidth:s}=document.documentElement;return JSON.stringify({iframeHeight:n.height,iframeWidth:n.width,clientHeight:Math.max(a,o||0),clientWidth:Math.max(s,r||0),offsetTop:parseInt(n.top-e.top,10),offsetLeft:parseInt(n.left-e.left,10),scrollTop:t,scrollLeft:i,documentHeight:a,documentWidth:s,windowHeight:o,windowWidth:r})})),I=u("parentInfo",(function(){const{iframe:e}=D,{scrollWidth:n,scrollHeight:t}=document.documentElement,{width:i,height:o,offsetLeft:r,offsetTop:a,pageLeft:s,pageTop:c,scale:d}=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:c,scale:d}})})),N=h(b,"PageInfo"),E=h(I,"ParentInfo"),W=p("stopPageInfo"),H=p("stopParentInfo");function F(e){const n=e.getBoundingClientRect();return z(),{x:Math.floor(Number(n.left)+Number(g.position.x)),y:Math.floor(Number(n.top)+Number(g.position.y))}}function O(e){const n=e?F(D.iframe):{x:0,y:0};let t=((e,n)=>({x:Number(e.width)+n.x,y:Number(e.height)+n.y}))(D,n);window.top===window.self?(g.position=t,S()):window.parentIFrame?window.parentIFrame["scrollTo"+(e?"Offset":"")](t.x,t.y):o(j,"Unable to scroll to requested position, window.parentIFrame not found")}function S(){!1!==L("onScroll",g.position)?v():$()}function C(e){let n={};if(0===Number(D.width)&&0===Number(D.height)){const e=f(9).split(":");n={x:e[1],y:e[0]}}else n={x:D.width,y:D.height};L(e,{iframe:D.iframe,screenX:Number(n.x),screenY:Number(n.y),type:D.type})}const L=(e,n)=>w(j,e,n);let B=e.data,D={},j=null;"[iFrameResizerChild]Ready"!==B?a===`${B}`.slice(0,s)&&B.slice(s).split(":")[0]in m?(D=function(){const e=B.slice(s).split(":"),n=e[1]?Number(e[1]):0,i=m[e[0]]?.iframe,o=getComputedStyle(i);return{iframe:i,id:e[0],height:n+t(o)+r(o),width:Number(e[2]),type:e[3]}}(),j=D.id,j?(function(e){if(!m[e])throw new Error(`${D.type} No settings for ${e}. Message was: ${B}`)}(j),D.type in{true:1,false:1,undefined:1}||(m[j].loaded=!0,function(){let e=!0;return null===D.iframe&&(o(j,`The iframe (${D.id}) was not found.`),e=!1),e}()&&function(){const{origin:n,sameDomain:t}=e;if(t)return!0;let i=m[j]?.checkOrigin;if(i&&"null"!=`${n}`&&!(i.constructor===Array?function(){let e=0,t=!1;for(;e<i.length;e++)if(i[e]===n){t=!0;break}return t}():function(){const e=m[j]?.remoteHost;return n===e}()))throw new Error(`Unexpected message received from: ${n} for ${D.iframe.id}. Message was: ${e.data}. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.`);return!0}()&&function(){switch(m[j]?.firstRun&&m[j]&&(m[j].firstRun=!1),D.type){case"close":y(D.iframe);break;case"message":e=f(6),L("onMessage",{iframe:D.iframe,message:JSON.parse(e)});break;case"mouseenter":C("onMouseEnter");break;case"mouseleave":C("onMouseLeave");break;case"autoResize":m[j].autoResize=JSON.parse(f(9));break;case"scrollTo":O(!1);break;case"scrollToOffset":O(!0);break;case"pageInfo":b("start",j),N();break;case"parentInfo":I("start",j),E();break;case"pageInfoStop":W();break;case"parentInfoStop":H();break;case"inPageLink":!function(e){const n=e.split("#")[1]||"",t=decodeURIComponent(n);let i=document.getElementById(t)||document.getElementsByName(t)[0];i?function(){const e=F(i);g.position={x:e.x,y:e.y},S()}():window.top!==window.self&&window.parentIFrame&&window.parentIFrame.moveToAnchor(n)}(f(9));break;case"reset":T(D);break;case"init":n(),function(e){try{m[e].sameDomain=!!m[e]?.iframe?.contentWindow?.iframeChildListener}catch(n){m[e].sameDomain=!1}}(j),k=!0,L("onReady",D.iframe);break;default:if(0===D.width&&0===D.height)return void o(`Unsupported message received (${D.type}), this is likely due to the iframe containing a later version of iframe-resizer than the parent page`);if(0===D.width||0===D.height)return;if(document.hidden)return;n()}var e}())):o("iframeResizer received messageData without id, message was: ",B)):i(j,`Ignored: ${B}`):Object.keys(m).forEach((e=>M("iFrame requested init",x(e),e)))}function w(e,n,t){let i=null,o=null;if(m[e]){if(i=m[e][n],"function"!=typeof i)throw new TypeError(`${n} on iFrame[${e}] is not a function`);o=i(t)}return o}function b(e){const n=e.id;delete m[n]}function y(e){const n=e.id;if(!1!==w(n,"onClose",n)){try{e.parentNode&&e.remove()}catch(e){o(e)}w(n,"onClosed",n),b(e)}}function z(e){null===g.position&&(g.position={x:window.scrollX,y:window.scrollY})}function $(){g.position=null}function v(e){null!==g.position&&(window.scrollTo(g.position.x,g.position.y),$())}function T(e){z(e.id),R(e),M("reset","reset",e.id)}function R(e){const n=e.id;function t(n){const t=`${e[n]}px`;e.iframe.style[n]=t}m[n].sizeHeight&&t("height"),m[n].sizeWidth&&t("width")}function M(e,n,t,s){m[t]&&(m[t]?.postMessageTarget?function(){const{postMessageTarget:e,targetOrigin:o}=m[t];if(m[t].sameDomain)try{return void m[t].iframe.contentWindow.iframeChildListener(a+n)}catch(e){i(t,"Same domain connection failed. Trying cross domain"),m[t].sameDomain=!1}e.postMessage(a+n,o)}():o(t,`[${e}] IFrame(${t}) not found`),s&&m[t]?.warningTimeout&&(m[t].msgTimeout=setTimeout((function(){void 0!==m[t]&&(m[t].loaded||m[t].loadErrorShown||(m[t].loadErrorShown=!0,r(t,`\n[31;1mNo response from iFrame[m\n \nThe iframe ([3m${t}[m) has not responded within ${m[t].warningTimeout/1e3} seconds. Check [1m@iframe-resizer/child[m package has been loaded in the iframe.\n\nThis message can be ignored if everything is working, or you can set the [1mwarningTimeout[m option to a higher value or zero to suppress this warning.\n`)))}),m[t].warningTimeout)))}function x(e){const n=m[e];return[e,"8",n.sizeWidth,n.log,"32",n.enablePublicMethods,n.autoResize,n.bodyMargin,n.heightCalculationMethod,n.bodyBackground,n.bodyPadding,n.tolerance,n.inPageLinks,"child",n.widthCalculationMethod,n.mouseEvents,n.offsetHeight,n.offsetWidth,n.sizeHeight,u(n.license),g.version].join(":")}let I=0,k=!1;const N=e=>n=>{function t(e){if(!e)return{};if("object"!=typeof e)throw new TypeError("Options is not an object");return("sizeWidth"in e||"sizeHeight"in e||"autoResize"in e)&&r(i,'\n[31;1mDeprecated Optionm\n\nThe [1msizeWidth[m, [1msizeHeight[m and [1mautoResize[m options have been replaced with new [1mdirection[m option which expects values of [3m"vertical"[m, [3m"horizontal"[m or [3m"horizontal"[m.\n'),e}const i=function(t){if(t&&"string"!=typeof t)throw new TypeError("Invaild id for iFrame. Expected String");return""!==t&&t||(n.id=t=function(){let n=e?.id||h.id+I++;return null!==document.getElementById(n)&&(n+=I++),n}(),(e||{}).log),t}(n.id);return i in m&&"iFrameResizer"in n?o(i,"Ignored iFrame, already setup."):(function(e){var o;m[i]={iframe:n,firstRun:!0,remoteHost:n?.src.split("/").slice(0,3).join("/"),...h,...t(e)},function(){if("horizontal"===m[i].direction)return m[i].sizeWidth=!0,void(m[i].sizeHeight=!1);if("none"===m[i].direction)return m[i].sizeWidth=!1,m[i].sizeHeight=!1,void(m[i].autoResize=!1);if("vertical"!==m[i].direction)throw new TypeError(i,`Direction value of "${m[i].direction}" is not valid`)}(),null===m[i].postMessageTarget&&(m[i].postMessageTarget=n.contentWindow),m[i].targetOrigin=!0===m[i].checkOrigin?""===(o=m[i].remoteHost)||null!==o.match(/^(about:blank|javascript:|file:\/\/)/)?"*":o:"*"}(e),W(),function(){switch(n.style.overflow=!1===m[i]?.scrolling?"hidden":"auto",m[i]?.scrolling){case"omit":break;case!0:n.scrolling="yes";break;case!1:n.scrolling="no";break;default:n.scrolling=m[i]?m[i].scrolling:"no"}}(),function(){function e(e){const t=m[i][e];1/0!==t&&0!==t&&(n.style[e]=f(t)?`${t}px`:t)}function t(e){if(f(`min${e}`)&&f(`max${e}`)&&m[i][`min${e}`]>m[i][`max${e}`])throw new Error(`Value for min${e} can not be greater than max${e}`)}t("Height"),t("Width"),e("maxHeight"),e("minHeight"),e("maxWidth"),e("minWidth")}(),function(){const{bodyMargin:e}=m[i];"number"!=typeof e&&"0"!==e||(m[i].bodyMargin=`${e}px`)}(),function(e){const{id:t}=n;d(n,"load",(function(){M("iFrame.onload",`${e}:${k}`,t,!0),function(){const e=m[i]?.firstRun,t=m[i]?.heightCalculationMethod in c;!e&&t&&T({iframe:n,height:0,width:0,type:"init"})}()})),M("init",`${e}:${k}`,t,!0)}(x(i)),function(){if(m[i]){const e={close:y.bind(null,m[i].iframe),disconnect:b.bind(null,m[i].iframe),removeListeners(){r(i,"\n[31;1mDeprecated Method Namem\n\nThe [removeListeners()[m method has been renamed to [disconnect()[m.\n"),this.disconnect()},resize:M.bind(null,"Window resize","resize",i),moveToAnchor(e){M("Move to anchor",`moveToAnchor:${e}`,i)},sendMessage(e){M("Send Message",`message:${e=JSON.stringify(e)}`,i)}};m[i].iframe.iframeResizer=e,m[i].iframe.iFrameResizer=e}}()),n?.iFrameResizer};function E(){!1===document.hidden&&function(e,n){const t=e=>m[e]?.autoResize&&!m[e]?.firstRun;Object.keys(m).forEach((function(i){t(i)&&M(e,n,i)}))}("Tab Visible","resize")}const W=(e=>{let n=!1;return function(){return n?void 0:(n=!0,Reflect.apply(e,this,arguments))}})((()=>{d(window,"message",p),d(document,"visibilitychange",E),window.iframeParentListener=e=>p({data:e,sameDomain:!0})})),H="[iframeResizer] ";const F=function(){function e(e){switch(!0){case!e:throw new TypeError(`${H}iframe is not defined`);case!e.tagName:throw new TypeError(`${H}Not a valid DOM element`);case"IFRAME"!==e.tagName.toUpperCase():throw new TypeError(`${H}Expected <IFRAME> tag, found <${e.tagName}>`);default:n(e),t.push(e)}}let n,t;return function(i,o){if("undefined"==typeof window)return[];switch(n=N(i),t=[],typeof o){case"undefined":case"string":document.querySelectorAll(o||"iframe").forEach(e);break;case"object":e(o);break;default:throw new TypeError(`${H}Unexpected data type (${typeof o})`)}return Object.freeze(t)}}();return"undefined"!=typeof window&&(window.iFrameResize=function(...e){r("","Deprecated: iFrameResize(), please use iframeResize()"),F(...e)}),F})); |
{ | ||
"name": "@iframe-resizer/parent", | ||
"version": "5.0.0-alpha.5", | ||
"version": "5.0.0-alpha.6", | ||
"license": "GPL-3.0", | ||
@@ -45,4 +45,4 @@ "homepage": "http://iframe-resizer.com", | ||
"dependencies": { | ||
"@iframe-resizer/core": "5.0.0-alpha.5" | ||
"@iframe-resizer/core": "5.0.0-alpha.6" | ||
} | ||
} |
@@ -13,2 +13,2 @@ # @iframe-resizer/parent | ||
_iframe-resizer version 5.0.0-alpha.5 2024-04-17 - 12:08:38.460Z_ | ||
_iframe-resizer version 5.0.0-alpha.6 2024-04-17 - 13:42:58.287Z_ |
59524