{"version":3,"sources":["../node_modules/iframe-resizer/js/index.js","../node_modules/iframe-resizer/js/iframeResizer.js","../node_modules/iframe-resizer/js/iframeResizer.contentWindow.js","../node_modules/iframe-resizer/index.js"],"names":["iframeResize","require","exports","iframeResizer","iframeResizerContentWindow","undefined","window","$","count","logEnabled","hiddenCheckEnabled","msgHeaderLen","msgHeader","msgId","msgIdLen","length","pagePosition","requestAnimationFrame","resetRequiredMethods","max","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","id","interval","log","maxHeight","Infinity","maxWidth","minHeight","minWidth","mouseEvents","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClose","onClosed","onInit","onMessage","warn","onMouseEnter","onMouseLeave","onResized","onScroll","frameTimer","jQuery","fn","iFrameResize","options","this","filter","each","index","element","setupIFrame","end","info","define","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","addEventListener","el","evt","func","removeEventListener","formatLogHeader","iframeId","retStr","top","self","parentIFrame","getId","getMyID","isLogEnabled","msg","output","type","enabled","console","iFrameListener","event","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","on","getPaddingEnds","compStyle","boxSizing","paddingTop","parseInt","paddingBottom","getBorderEnds","borderTopWidth","borderBottomWidth","Dimension","Number","min","dimension","toLowerCase","size","getMsgBody","offset","substr","indexOf","sendPageInfoToIframe","iframe","time","frameId","trigger","bodyPosition","document","body","getBoundingClientRect","iFramePosition","JSON","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","getPageInfo","setTimeout","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","onMouse","mousePos","data","split","screenX","screenY","funcName","val","chkEvent","createOutgoingMsg","iFrameReadyMsgReceived","getComputedStyle","processMsg","loaded","retCode","true","false","isMessageFromMetaParent","retBool","hasSettings","checkIFrameExists","origin","constructor","Array","i","checkList","remoteHost","checkSingle","Error","isMessageFromIFrame","firstRun","closeIFrame","msgBody","message","parse","setListener","sendPageInfo","stop","forEach","stopPageInfo","startPageInfoMonitor","location","hash","hashData","decodeURIComponent","getElementById","getElementsByName","jumpPosition","jumpToTarget","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","TypeError","removeIframeListeners","parentNode","removeChild","error","chkZero","checkIFrames","checkIFrame","settingId","chkDimension","style","isVisible","offsetParent","Object","keys","key","mutationObserved","mutations","debouce","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observe","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","contentWindow","targetOrigin","postMessage","postMessageToIFrame","msgTimeout","depricate","splitName","name","charAt","toUpperCase","slice","newId","src","ensureHasId","join","checkOptions","option","prototype","hasOwnProperty","call","copyOptions","match","processOptions","overflow","setScrolling","addStyle","styleValue","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","checkReset","init","iFrameResizer","close","bind","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","eventName","isIFrameResizeEnabled","setupEventListeners","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","warnDeprecatedOptions","querySelectorAll","base","bodyMarginStr","bodyObserver","calculateWidth","doubleEventList","click","eventCancelTimer","heightCalcModeDefault","heightCalcMode","initLock","initMsg","intervalTimer","logging","msgID","myID","sendPermit","parent","targetOriginDefault","triggerLocked","triggerLockedTimer","throttledTimer","widthCalcModeDefault","widthCalcMode","win","onReady","onPageInfo","customCalcMethods","offsetHeight","scrollWidth","eventHandlersByName","passiveSupported","create","passive","get","noop","getHeight","bodyOffset","scrollHeight","custom","documentElementOffset","apply","getAllMeasurements","grow","lowestElement","getMaxElement","getAllElements","taggedElement","getTaggedElements","getWidth","offsetWidth","rightMostElement","sizeIFrameThrottled","context","args","result","timeout","previous","later","Date","now","remaining","arguments","clearTimeout","throttle","sizeIFrame","processRequestFromParent","source","reset","triggerReset","sendSize","getData","inPageLink","pageInfo","getMessageType","isInitMsg","callFromParent","messageType","module","chkLateLoaded","capitalizeFirstLetter","string","formatLogMsg","strBool","str","enable","Boolean","readDataFromParent","href","readData","setupCustomCalcMethods","calcMode","calcFunc","readDataFromPage","setBodyStyle","attr","value","chkCSS","setMargin","clearFix","createElement","clear","display","appendChild","injectClearFixIntoBodyElement","checkHeightMode","checkWidthMode","startEventListeners","manageEventListeners","disconnect","clearInterval","sendMsg","callback","scrollToOffset","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","customHeight","customWidth","sendMouse","e","addMouseListener","setupMouseEvents","elPosition","checkLocationHash","bindAnchors","setupLink","linkClicked","preventDefault","getAttribute","bindLocationHash","initCheck","enableInPageLinks","setupInPageLinks","manageTriggerEvent","listener","add","handleEvent","eventType","remove","eventNames","map","method","checkCalcMode","calcModeDefault","modes","forceIntervalTimer","initInterval","addImageLoadListners","addImageLoadListener","complete","imageLoaded","imageError","elements","attributeName","removeFromArray","splice","removeImageLoadListener","imageEventTriggered","typeDesc","observer","setupBodyMutationObserver","setupMutationObserver","setInterval","abs","prop","defaultView","side","elementsLength","elVal","maxVal","Side","chkEventThottle","dimensions","tag","triggerEvent","triggerEventDesc","currentHeight","currentWidth","checkTolarance","a","b","isSizeChangeDetected","lockTrigger","resetPage","hcm","sendToParent","readyState"],"mappings":"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","file":"static/js/3.3bf56c4a.chunk.js","sourcesContent":["var iframeResize = require('./iframeResizer')\n\nexports.iframeResize = iframeResize\nexports.iframeResizer = iframeResize // Backwards compatability\nexports.iframeResizerContentWindow = require('./iframeResizer.contentWindow')\n","/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Reed Dadoune - reed@dadoune.com\n */\n\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;(function (undefined) {\n if (typeof window === 'undefined') return // don't run for server side render\n\n var count = 0,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]', // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = {\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n },\n settings = {},\n timer = null,\n defaults = {\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n mouseEvents: true,\n resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function () {\n return true\n },\n onClosed: function () {},\n onInit: function () {},\n onMessage: function () {\n warn('onMessage function not defined')\n },\n onMouseEnter: function () {},\n onMouseLeave: function () {},\n onResized: function () {},\n onScroll: function () {\n return true\n }\n }\n\n function getMutationObserver() {\n return (\n window.MutationObserver ||\n window.WebKitMutationObserver ||\n window.MozMutationObserver\n )\n }\n\n function addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false)\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false)\n }\n\n function setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms']\n var x\n\n // Remove vendor prefixing if prefixed and break early if not\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\n }\n\n if (!requestAnimationFrame) {\n log('setup', 'RequestAnimationFrame not supported')\n } else {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window)\n }\n }\n\n function getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId\n\n if (window.top !== window.self) {\n retStr =\n window.parentIFrame && window.parentIFrame.getId\n ? window.parentIFrame.getId() + ': ' + iframeId\n : 'Nested host page: ' + iframeId\n }\n\n return retStr\n }\n\n function formatLogHeader(iframeId) {\n return msgId + '[' + getMyID(iframeId) + ']'\n }\n\n function isLogEnabled(iframeId) {\n return settings[iframeId] ? settings[iframeId].log : logEnabled\n }\n\n function log(iframeId, msg) {\n output('log', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function info(iframeId, msg) {\n output('info', iframeId, msg, isLogEnabled(iframeId))\n }\n\n function warn(iframeId, msg) {\n output('warn', iframeId, msg, true)\n }\n\n function output(type, iframeId, msg, enabled) {\n if (true === enabled && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console[type](formatLogHeader(iframeId), msg)\n }\n }\n\n function iFrameListener(event) {\n function resizeIFrame() {\n function resize() {\n setSize(messageData)\n setPagePosition(iframeId)\n on('onResized', messageData)\n }\n\n ensureInRange('Height')\n ensureInRange('Width')\n\n syncResize(resize, messageData, 'init')\n }\n\n function processMsg() {\n var data = msg.substr(msgIdLen).split(':')\n var height = data[1] ? parseInt(data[1], 10) : 0\n var iframe = settings[data[0]] && settings[data[0]].iframe\n var compStyle = getComputedStyle(iframe)\n\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n }\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0\n var bot = compStyle.paddingBottom\n ? parseInt(compStyle.paddingBottom, 10)\n : 0\n return top + bot\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0\n }\n var top = compStyle.borderTopWidth\n ? parseInt(compStyle.borderTopWidth, 10)\n : 0\n var bot = compStyle.borderBottomWidth\n ? parseInt(compStyle.borderBottomWidth, 10)\n : 0\n return top + bot\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension])\n\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max)\n\n if (size < min) {\n size = min\n log(iframeId, 'Set ' + dimension + ' to min value')\n }\n\n if (size > max) {\n size = max\n log(iframeId, 'Set ' + dimension + ' to max value')\n }\n\n messageData[dimension] = '' + size\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false\n\n log(\n iframeId,\n 'Checking connection is from allowed list of origins: ' +\n checkOrigin\n )\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true\n break\n }\n }\n return retCode\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost\n log(iframeId, 'Checking connection is from: ' + remoteHost)\n return origin === remoteHost\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error(\n 'Unexpected message received from: ' +\n origin +\n ' for ' +\n messageData.iframe.id +\n '. Message was: ' +\n event.data +\n '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\n )\n }\n\n return true\n }\n\n function isMessageForUs() {\n return (\n msgId === ('' + msg).substr(0, msgIdLen) &&\n msg.substr(msgIdLen).split(':')[0] in settings\n ) // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibity.\n var retCode = messageData.type in { true: 1, false: 1, undefined: 1 }\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page')\n }\n\n return retCode\n }\n\n function getMsgBody(offset) {\n return msg.substr(msg.indexOf(':') + msgHeaderLen + offset)\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(\n iframeId,\n 'onMessage passed: {iframe: ' +\n messageData.iframe.id +\n ', message: ' +\n msgBody +\n '}'\n )\n\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n })\n\n log(iframeId, '--')\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect()\n\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n ),\n clientWidth: Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n ),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n })\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId)\n }\n debounceFrameEvents(debouncedTrigger, 32, iframeId)\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id)\n } else {\n stop()\n }\n }\n\n ;['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo')\n func(window, evt, sendPageInfo)\n })\n }\n\n function stop() {\n setListener('Remove ', removeEventListener)\n }\n\n function start() {\n setListener('Add ', addEventListener)\n }\n\n var id = iframeId // Create locally scoped copy of iFrame ID\n\n start()\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo()\n delete settings[iframeId].stopPageInfo\n }\n }\n\n function checkIFrameExists() {\n var retBool = true\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found')\n retBool = false\n }\n return retBool\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect()\n\n getPagePosition(iframeId)\n\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n }\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */ // Not testable in Karma\n function reposition() {\n pagePosition = newPosition\n scrollTo()\n log(iframeId, '--')\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n }\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](\n newPosition.x,\n newPosition.y\n )\n } else {\n warn(\n iframeId,\n 'Unable to scroll to requested position, window.parentIFrame not found'\n )\n }\n }\n\n var offset = addOffset\n ? getElementPosition(messageData.iframe)\n : { x: 0, y: 0 },\n newPosition = calcOffset()\n\n log(\n iframeId,\n 'Reposition requested from iFrame (offset x:' +\n offset.x +\n ' y:' +\n offset.y +\n ')'\n )\n\n if (window.top !== window.self) {\n scrollParent()\n } else {\n reposition()\n }\n }\n\n function scrollTo() {\n if (false !== on('onScroll', pagePosition)) {\n setPagePosition(iframeId)\n } else {\n unsetPagePosition()\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target)\n\n log(\n iframeId,\n 'Moving to in page link (#' +\n hash +\n ') at x: ' +\n jumpPosition.x +\n ' y: ' +\n jumpPosition.y\n )\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n }\n\n scrollTo()\n log(iframeId, '--')\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash)\n } else {\n log(\n iframeId,\n 'In page link #' +\n hash +\n ' not found and window.parentIFrame not found'\n )\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target =\n document.getElementById(hashData) ||\n document.getElementsByName(hashData)[0]\n\n if (target) {\n jumpToTarget()\n } else if (window.top !== window.self) {\n jumpToParent()\n } else {\n log(iframeId, 'In page link #' + hash + ' not found')\n }\n }\n\n function onMouse(event) {\n var mousePos = {}\n\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n var data = getMsgBody(9).split(':')\n mousePos = {\n x: data[1],\n y: data[0]\n }\n } else {\n mousePos = {\n x: messageData.width,\n y: messageData.height\n }\n }\n\n on(event, {\n iframe: messageData.iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type: messageData.type\n })\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val)\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun()\n\n switch (messageData.type) {\n case 'close':\n closeIFrame(messageData.iframe)\n break\n\n case 'message':\n forwardMsgFromIFrame(getMsgBody(6))\n break\n\n case 'mouseenter':\n onMouse('onMouseEnter')\n break\n\n case 'mouseleave':\n onMouse('onMouseLeave')\n break\n\n case 'autoResize':\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9))\n break\n\n case 'scrollTo':\n scrollRequestFromChild(false)\n break\n\n case 'scrollToOffset':\n scrollRequestFromChild(true)\n break\n\n case 'pageInfo':\n sendPageInfoToIframe(\n settings[iframeId] && settings[iframeId].iframe,\n iframeId\n )\n startPageInfoMonitor()\n break\n\n case 'pageInfoStop':\n stopPageInfoMonitor()\n break\n\n case 'inPageLink':\n findTarget(getMsgBody(9))\n break\n\n case 'reset':\n resetIFrame(messageData)\n break\n\n case 'init':\n resizeIFrame()\n on('onInit', messageData.iframe)\n break\n\n default:\n if (\n Number(messageData.width) === 0 &&\n Number(messageData.height) === 0\n ) {\n warn(\n 'Unsupported message received (' +\n messageData.type +\n '), this is likely due to the iframe containing a later ' +\n 'version of iframe-resizer than the parent page'\n )\n } else {\n resizeIFrame()\n }\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true\n\n if (!settings[iframeId]) {\n retBool = false\n warn(\n messageData.type +\n ' No settings for ' +\n iframeId +\n '. Message was: ' +\n msg\n )\n }\n\n return retBool\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger(\n 'iFrame requested init',\n createOutgoingMsg(iframeId),\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived()\n } else if (isMessageForUs()) {\n messageData = processMsg()\n iframeId = messageData.id\n if (settings[iframeId]) {\n settings[iframeId].loaded = true\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg)\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg()\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg)\n }\n }\n\n function chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName]\n\n if ('function' === typeof func) {\n retVal = func(val)\n } else {\n throw new TypeError(\n funcName + ' on iFrame[' + iframeId + '] is not a function'\n )\n }\n }\n\n return retVal\n }\n\n function removeIframeListeners(iframe) {\n var iframeId = iframe.id\n delete settings[iframeId]\n }\n\n function closeIFrame(iframe) {\n var iframeId = iframe.id\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event')\n return\n }\n log(iframeId, 'Removing iFrame: ' + iframeId)\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe)\n }\n } catch (error) {\n warn(error)\n }\n\n chkEvent(iframeId, 'onClosed', iframeId)\n log(iframeId, '--')\n removeIframeListeners(iframe)\n }\n\n function getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x:\n window.pageXOffset !== undefined\n ? window.pageXOffset\n : document.documentElement.scrollLeft,\n y:\n window.pageYOffset !== undefined\n ? window.pageYOffset\n : document.documentElement.scrollTop\n }\n log(\n iframeId,\n 'Get page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y)\n log(\n iframeId,\n 'Set page position: ' + pagePosition.x + ',' + pagePosition.y\n )\n unsetPagePosition()\n }\n }\n\n function unsetPagePosition() {\n pagePosition = null\n }\n\n function resetIFrame(messageData) {\n function reset() {\n setSize(messageData)\n trigger('reset', 'reset', messageData.iframe, messageData.id)\n }\n\n log(\n messageData.id,\n 'Size reset requested by ' +\n ('init' === messageData.type ? 'host page' : 'iFrame')\n )\n getPagePosition(messageData.id)\n syncResize(reset, messageData, 'reset')\n }\n\n function setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set')\n return\n }\n messageData.iframe.style[dimension] = messageData[dimension] + 'px'\n log(\n messageData.id,\n 'IFrame (' +\n iframeId +\n ') ' +\n dimension +\n ' set to ' +\n messageData[dimension] +\n 'px'\n )\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */ // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true\n log(iframeId, 'Hidden iFrame detected, creating visibility listener')\n fixHiddenIFrames()\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension)\n chkZero(dimension)\n }\n\n var iframeId = messageData.iframe.id\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height')\n }\n if (settings[iframeId].sizeWidth) {\n processDimension('width')\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */ // Not testable in PhantomJS\n if (\n doNotSync !== messageData.type &&\n requestAnimationFrame &&\n // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine\n ) {\n log(messageData.id, 'Requesting animation frame')\n requestAnimationFrame(func)\n } else {\n func()\n }\n }\n\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin\n log(\n id,\n '[' +\n calleeMsg +\n '] Sending msg to iframe[' +\n id +\n '] (' +\n msg +\n ') targetOrigin: ' +\n target\n )\n iframe.contentWindow.postMessage(msgId + msg, target)\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found')\n }\n\n function chkAndSend() {\n if (\n iframe &&\n 'contentWindow' in iframe &&\n null !== iframe.contentWindow\n ) {\n // Null test for PhantomJS\n postMessageToIFrame()\n } else {\n iFrameNotFound()\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true\n warn(\n id,\n 'IFrame has not responded within ' +\n settings[id].warningTimeout / 1000 +\n ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.'\n )\n }\n }\n\n if (\n !!noResponseWarning &&\n settings[id] &&\n !!settings[id].warningTimeout\n ) {\n settings[id].msgTimeout = setTimeout(\n warning,\n settings[id].warningTimeout\n )\n }\n }\n\n var errorShown = false\n\n id = id || iframe.id\n\n if (settings[id]) {\n chkAndSend()\n warnOnNoResponse()\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return (\n iframeId +\n ':' +\n settings[iframeId].bodyMarginV1 +\n ':' +\n settings[iframeId].sizeWidth +\n ':' +\n settings[iframeId].log +\n ':' +\n settings[iframeId].interval +\n ':' +\n settings[iframeId].enablePublicMethods +\n ':' +\n settings[iframeId].autoResize +\n ':' +\n settings[iframeId].bodyMargin +\n ':' +\n settings[iframeId].heightCalculationMethod +\n ':' +\n settings[iframeId].bodyBackground +\n ':' +\n settings[iframeId].bodyPadding +\n ':' +\n settings[iframeId].tolerance +\n ':' +\n settings[iframeId].inPageLinks +\n ':' +\n settings[iframeId].resizeFrom +\n ':' +\n settings[iframeId].widthCalculationMethod +\n ':' +\n settings[iframeId].mouseEvents\n )\n }\n\n function isNumber(value) {\n return typeof value === 'number'\n }\n\n function setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n var styleValue = settings[iframeId][style]\n if (Infinity !== styleValue && 0 !== styleValue) {\n iframe.style[style] = isNumber(styleValue)\n ? styleValue + 'px'\n : styleValue\n log(iframeId, 'Set ' + style + ' = ' + iframe.style[style])\n }\n }\n\n function chkMinMax(dimension) {\n if (\n settings[iframeId]['min' + dimension] >\n settings[iframeId]['max' + dimension]\n ) {\n throw new Error(\n 'Value for min' +\n dimension +\n ' can not be greater than max' +\n dimension\n )\n }\n }\n\n chkMinMax('Height')\n chkMinMax('Width')\n\n addStyle('maxHeight')\n addStyle('minHeight')\n addStyle('maxWidth')\n addStyle('minWidth')\n }\n\n function newId() {\n var id = (options && options.id) || defaults.id + count++\n if (null !== document.getElementById(id)) {\n id += count++\n }\n return id\n }\n\n function ensureHasId(iframeId) {\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId()\n logEnabled = (options || {}).log\n log(\n iframeId,\n 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')'\n )\n }\n\n return iframeId\n }\n\n function setScrolling() {\n log(\n iframeId,\n 'IFrame scrolling ' +\n (settings[iframeId] && settings[iframeId].scrolling\n ? 'enabled'\n : 'disabled') +\n ' for ' +\n iframeId\n )\n iframe.style.overflow =\n false === (settings[iframeId] && settings[iframeId].scrolling)\n ? 'hidden'\n : 'auto'\n switch (settings[iframeId] && settings[iframeId].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[iframeId]\n ? settings[iframeId].scrolling\n : 'no'\n }\n }\n\n // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n function setupBodyMarginValues() {\n if (\n 'number' ===\n typeof (settings[iframeId] && settings[iframeId].bodyMargin) ||\n '0' === (settings[iframeId] && settings[iframeId].bodyMargin)\n ) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin\n settings[iframeId].bodyMargin =\n '' + settings[iframeId].bodyMargin + 'px'\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod =\n settings[iframeId] &&\n settings[iframeId].heightCalculationMethod in resetRequiredMethods\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' })\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n\n removeListeners: removeIframeListeners.bind(\n null,\n settings[iframeId].iframe\n ),\n\n resize: trigger.bind(\n null,\n 'Window resize',\n 'resize',\n settings[iframeId].iframe\n ),\n\n moveToAnchor: function (anchor) {\n trigger(\n 'Move to anchor',\n 'moveToAnchor:' + anchor,\n settings[iframeId].iframe,\n iframeId\n )\n },\n\n sendMessage: function (message) {\n message = JSON.stringify(message)\n trigger(\n 'Send Message',\n 'message:' + message,\n settings[iframeId].iframe,\n iframeId\n )\n }\n }\n }\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.\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true)\n checkReset()\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes) // Transform NodeList into an Array\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe)\n }\n })\n })\n })\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n })\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n createDestroyObserver(MutationObserver)\n }\n\n addEventListener(iframe, 'load', iFrameLoaded)\n trigger('init', msg, iframe, undefined, true)\n }\n\n function checkOptions(options) {\n if ('object' !== typeof options) {\n throw new TypeError('Options is not an object')\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(\n options,\n option\n )\n ? options[option]\n : defaults[option]\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost ||\n null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/)\n ? '*'\n : remoteHost\n }\n\n function depricate(key) {\n var splitName = key.split('Callback')\n\n if (splitName.length === 2) {\n var name =\n 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1)\n this[name] = this[key]\n delete this[key]\n warn(\n iframeId,\n \"Deprecated: '\" +\n key +\n \"' has been renamed '\" +\n name +\n \"'. The old method will be removed in the next major version.\"\n )\n }\n }\n\n function processOptions(options) {\n options = options || {}\n settings[iframeId] = {\n firstRun: true,\n iframe: iframe,\n remoteHost: iframe.src && iframe.src.split('/').slice(0, 3).join('/')\n }\n\n checkOptions(options)\n Object.keys(options).forEach(depricate, options)\n copyOptions(options)\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin =\n true === settings[iframeId].checkOrigin\n ? getTargetOrigin(settings[iframeId].remoteHost)\n : '*'\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe\n }\n\n var iframeId = ensureHasId(iframe.id)\n\n if (!beenHere()) {\n processOptions(options)\n setScrolling()\n setLimits()\n setupBodyMarginValues()\n init(createOutgoingMsg(iframeId))\n setupIFrameObject()\n } else {\n warn(iframeId, 'Ignored iFrame, already setup.')\n }\n }\n\n function debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null\n fn()\n }, time)\n }\n }\n\n var frameTimer = {}\n function debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null\n fn()\n }, time)\n }\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return (\n '0px' ===\n (settings[settingId] && settings[settingId].iframe.style[dimension])\n )\n }\n\n function isVisible(el) {\n return null !== el.offsetParent\n }\n\n if (\n settings[settingId] &&\n isVisible(settings[settingId].iframe) &&\n (chkDimension('height') || chkDimension('width'))\n ) {\n trigger(\n 'Visibility change',\n 'resize',\n settings[settingId].iframe,\n settingId\n )\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key)\n })\n }\n\n function mutationObserved(mutations) {\n log(\n 'window',\n 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type\n )\n debouce(checkIFrames, 16)\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved)\n\n observer.observe(target, config)\n }\n\n var MutationObserver = getMutationObserver()\n if (MutationObserver) {\n createMutationObserver()\n }\n }\n\n function resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize')\n }\n\n log('window', 'Trigger event: ' + event)\n debouce(resize, 16)\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n function tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visable', 'resize')\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visiblity change')\n debouce(resize, 16)\n }\n }\n\n function sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return (\n settings[iframeId] &&\n 'parent' === settings[iframeId].resizeFrom &&\n settings[iframeId].autoResize &&\n !settings[iframeId].firstRun\n )\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId)\n }\n })\n }\n\n function setupEventListeners() {\n addEventListener(window, 'message', iFrameListener)\n\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize')\n })\n\n addEventListener(document, 'visibilitychange', tabVisible)\n\n addEventListener(document, '-webkit-visibilitychange', tabVisible)\n }\n\n function factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element')\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError(\n 'Expected