{"mappings":"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","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","src/embed.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