{"version":3,"sources":["webpack:////builds/namics/oldenburgische-landesbank-olb/frontend/node_modules/iframe-resizer/js/iframeResizer.js","webpack:///./src/shared/components/econ.vue?6efc","webpack:///./src/shared/components/econ.vue?2452","webpack:///./src/shared/components/econ.vue?1d1b","webpack:///./src/shared/components/econ.vue"],"names":["undefined","window","count","logEnabled","hiddenCheckEnabled","msgHeader","msgHeaderLen","length","msgId","msgIdLen","pagePosition","requestAnimationFrame","resetRequiredMethods","Object","freeze","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","createJQueryPublicMethod","iFrameResize","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","addEventListener","el","evt","func","removeEventListener","setupRequestAnimationFrame","x","vendors","bind","getMyID","iframeId","retStr","top","self","parentIFrame","getId","formatLogHeader","isLogEnabled","msg","output","info","type","enabled","console","iFrameListener","event","resizeIFrame","resize","setSize","messageData","setPagePosition","on","ensureInRange","syncResize","processMsg","data","slice","split","height","parseInt","iframe","compStyle","getComputedStyle","getPaddingEnds","getBorderEnds","width","boxSizing","paddingTop","bot","paddingBottom","borderTopWidth","borderBottomWidth","Dimension","Number","min","dimension","toLowerCase","size","isMessageFromIFrame","checkAllowedOrigin","checkList","i","retCode","origin","checkSingle","remoteHost","constructor","Array","Error","isMessageForUs","isMessageFromMetaParent","true","false","getMsgBody","offset","indexOf","forwardMsgFromIFrame","msgBody","message","JSON","parse","getPageInfo","bodyPosition","document","body","getBoundingClientRect","iFramePosition","stringify","iframeHeight","iframeWidth","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","sendPageInfoToIframe","debouncedTrigger","trigger","debounceFrameEvents","startPageInfoMonitor","setListener","sendPageInfo","stop","forEach","start","stopPageInfo","stopPageInfoMonitor","checkIFrameExists","retBool","getElementPosition","target","getPagePosition","floor","y","scrollRequestFromChild","addOffset","reposition","newPosition","scrollTo","calcOffset","scrollParent","unsetPagePosition","findTarget","location","jumpToTarget","jumpPosition","hash","jumpToParent","moveToAnchor","hashData","decodeURIComponent","getElementById","getElementsByName","onMouse","mousePos","screenX","screenY","funcName","val","chkEvent","actionMsg","firstRun","closeIFrame","resetIFrame","hasSettings","iFrameReadyMsgReceived","createOutgoingMsg","loaded","retVal","TypeError","removeIframeListeners","parentNode","removeChild","error","reset","setDimension","style","chkZero","fixHiddenIFrames","processDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","postMessageToIFrame","targetOrigin","contentWindow","postMessage","iFrameNotFound","chkAndSend","warnOnNoResponse","warning","errorShown","msgTimeout","setTimeout","isNumber","value","setupIFrame","options","setLimits","addStyle","styleValue","chkMinMax","newId","ensureHasId","src","setScrolling","overflow","setupBodyMarginValues","checkReset","resetRequertMethod","setupIFrameObject","iFrameResizer","close","removeListeners","anchor","sendMessage","init","iFrameLoaded","createDestroyObserver","destroyObserver","mutations","mutation","removedNodes","prototype","call","removedNode","observe","childList","checkOptions","copyOptions","option","hasOwnProperty","getTargetOrigin","match","depricate","key","splitName","name","charAt","toUpperCase","this","processOptions","create","join","keys","beenHere","debouce","fn","time","frameId","checkIFrames","checkIFrame","settingId","chkDimension","isVisible","offsetParent","mutationObserved","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","subtree","observer","resizeIFrames","sendTriggerMsg","tabVisible","visibilityState","eventName","isIFrameResizeEnabled","setupEventListeners","element","chkType","tagName","iFrames","push","warnDeprecatedOptions","querySelectorAll","$","index","filter","each","end","render","_vm","_h","$createElement","_c","_self","staticClass","ref","attrs","liveUrl","_v","_s","errorText","staticRenderFns","props","String","required","default","setup","econFrame","component"],"mappings":"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","file":"js/chunk-3d025cc9.js","sourcesContent":["/*\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 = Object.freeze({\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n }),\n settings = {},\n timer = null,\n defaults = Object.freeze({\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 // 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 } else {\n log('setup', 'RequestAnimationFrame not supported')\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.slice(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).slice(0, msgIdLen) &&\n msg.slice(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 compatibility.\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.slice(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 reposition()\n } else {\n scrollParent()\n }\n }\n\n function scrollTo() {\n if (false === on('onScroll', pagePosition)) {\n unsetPagePosition()\n } else {\n setPagePosition(iframeId)\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 log(iframeId, 'In page link #' + hash + ' not found')\n } else {\n jumpToParent()\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\n case 'message': {\n forwardMsgFromIFrame(getMsgBody(6))\n break\n }\n\n case 'mouseenter': {\n onMouse('onMouseEnter')\n break\n }\n\n case 'mouseleave': {\n onMouse('onMouseLeave')\n break\n }\n\n case 'autoResize': {\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9))\n break\n }\n\n case 'scrollTo': {\n scrollRequestFromChild(false)\n break\n }\n\n case 'scrollToOffset': {\n scrollRequestFromChild(true)\n break\n }\n\n case 'pageInfo': {\n sendPageInfoToIframe(\n settings[iframeId] && settings[iframeId].iframe,\n iframeId\n )\n startPageInfoMonitor()\n break\n }\n\n case 'pageInfoStop': {\n stopPageInfoMonitor()\n break\n }\n\n case 'inPageLink': {\n findTarget(getMsgBody(9))\n break\n }\n\n case 'reset': {\n resetIFrame(messageData)\n break\n }\n\n case 'init': {\n resizeIFrame()\n on('onInit', messageData.iframe)\n break\n }\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\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 ? document.documentElement.scrollLeft\n : window.pageXOffset,\n y:\n window.pageYOffset === undefined\n ? document.documentElement.scrollTop\n : window.pageYOffset\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 (typeof iframeId !== 'string') {\n throw new TypeError('Invaild id for iFrame. Expected String')\n }\n\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\n case true: {\n iframe.scrolling = 'yes'\n break\n }\n\n case false: {\n iframe.scrolling = 'no'\n break\n }\n\n default: {\n iframe.scrolling = settings[iframeId]\n ? settings[iframeId].scrolling\n : 'no'\n }\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\n settings[iframeId] = Object.create(null) // Protect against prototype attacks\n settings[iframeId].iframe = iframe\n settings[iframeId].firstRun = true\n settings[iframeId].remoteHost =\n iframe.src && iframe.src.split('/').slice(0, 3).join('/')\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 warn(iframeId, 'Ignored iFrame, already setup.')\n } else {\n processOptions(options)\n setScrolling()\n setLimits()\n setupBodyMarginValues()\n init(createOutgoingMsg(iframeId))\n setupIFrameObject()\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 Visible', 'resize')\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visibility 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