{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/iframe.js","webpack:///./node_modules/iframe-resizer/index.js","webpack:///./node_modules/iframe-resizer/js/index.js","webpack:///./node_modules/iframe-resizer/js/iframeResizer.js","webpack:///./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","window","addEventListener","iframeResizer","log","iframeResize","iframeResizerContentWindow","_typeof","iterator","obj","constructor","undefined","$","count","logEnabled","hiddenCheckEnabled","msgHeaderLen","length","msgId","msgIdLen","pagePosition","requestAnimationFrame","resetRequiredMethods","max","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","id","interval","maxHeight","Infinity","maxWidth","minHeight","minWidth","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClose","onClosed","onInit","onMessage","warn","onResized","onScroll","frameTimer","jQuery","fn","iFrameResize","options","this","filter","each","index","element","setupIFrame","end","info","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","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","bodyPosition","iFramePosition","trigger","document","body","getBoundingClientRect","JSON","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","setTimeout","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","funcName","val","chkEvent","retBool","retCode","data","createOutgoingMsg","iFrameReadyMsgReceived","split","getComputedStyle","loaded","true","false","hasSettings","remoteHost","origin","Array","checkList","Error","isMessageFromIFrame","firstRun","closeIFrame","msgBody","message","parse","setListener","sendPageInfo","stop","forEach","stopPageInfo","startPageInfoMonitor","location","jumpPosition","hash","hashData","decodeURIComponent","getElementById","getElementsByName","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","TypeError","removeIframeListeners","parentNode","removeChild","error","chkZero","checkIFrames","keys","settingId","chkDimension","style","offsetParent","checkIFrame","mutationObserved","mutations","debouce","querySelector","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","contentWindow","targetOrigin","postMessage","msgTimeout","depricate","splitName","charAt","toUpperCase","slice","src","ensureHasId","join","checkOptions","option","copyOptions","match","processOptions","overflow","setScrolling","addStyle","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","iFrameResizer","close","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","eventName","isIFrameResizeEnabled","setupEventListeners","init","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","warnDeprecatedOptions","querySelectorAll","bodyMarginStr","bodyObserver","calculateWidth","doubleEventList","click","heightCalcMode","initLock","initMsg","intervalTimer","logging","msgID","myID","parent","targetOriginDefault","triggerLocked","triggerLockedTimer","throttledTimer","widthCalcMode","win","onReady","onPageInfo","customCalcMethods","offsetHeight","scrollWidth","eventHandlersByName","passiveSupported","passive","noop","context","args","result","timeout","previous","later","getNow","Date","now","getTime","getHeight","bodyOffset","scrollHeight","custom","documentElementOffset","apply","getAllMeasurements","grow","lowestElement","getMaxElement","getAllElements","taggedElement","getTaggedElements","getWidth","offsetWidth","rightMostElement","sizeIFrameThrottled","sizeIFrame","remaining","arguments","clearTimeout","processRequestFromParent","source","reset","triggerReset","sendSize","getData","inPageLink","pageInfo","getMessageType","isInitMsg","callFromParent","messageType","chkLateLoaded","capitalizeFirstLetter","string","formatLogMsg","clearFix","strBool","str","enable","readDataFromParent","href","setupCustomCalcMethods","calcMode","calcFunc","readDataFromPage","setBodyStyle","attr","chkCSS","setMargin","createElement","clear","display","appendChild","checkHeightMode","checkWidthMode","startEventListeners","manageEventListeners","disconnect","clearInterval","sendMsg","getPageInfo","callback","scrollToOffset","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","customHeight","customWidth","elPosition","jumpToTarget","checkLocationHash","getAttribute","e","preventDefault","setupInPageLinks","manageTriggerEvent","listener","add","handleEvent","eventType","remove","eventNames","map","method","checkCalcMode","calcModeDefault","modes","forceIntervalTimer","initInterval","addImageLoadListners","addImageLoadListener","complete","imageLoaded","imageError","elements","attributeName","removeImageLoadListener","splice","removeFromArray","imageEventTriggered","typeDesc","observer","createMutationObserver","setupBodyMutationObserver","setInterval","abs","prop","defaultView","side","elementsLength","elVal","maxVal","Side","chkEventThottle","dimention","tag","triggerEvent","triggerEventDesc","currentHeight","currentWidth","checkTolarance","a","b","isSizeChangeDetected","lockTrigger","resetPage","hcm","readyState"],"mappings":"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","file":"js/iframe-34191a4ede84b5d66b6a.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1314);\n","import { iframeResizer } from 'iframe-resizer'\nwindow.addEventListener('load', function () {\n iframeResizer({log: false}, '.checkcherry-autoresize-frame')\n}, false);\n","module.exports = require('./js');","var iframeResize = require('./iframeResizer');\n\nexports.iframeResize = iframeResize;\nexports.iframeResizer = iframeResize; // Backwards compatability\n\nexports.iframeResizerContentWindow = require('./iframeResizer.contentWindow');","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\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// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;\n\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]',\n // 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 resizeFrom: 'parent',\n scrolling: false,\n sizeHeight: true,\n sizeWidth: false,\n warningTimeout: 5000,\n tolerance: 0,\n widthCalculationMethod: 'scroll',\n onClose: function onClose() {\n return true;\n },\n onClosed: function onClosed() {},\n onInit: function onInit() {},\n onMessage: function onMessage() {\n warn('onMessage function not defined');\n },\n onResized: function onResized() {},\n onScroll: function onScroll() {\n return true;\n }\n };\n\n function getMutationObserver() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\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; // Remove vendor prefixing if prefixed and break early if not\n\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 if (window.parentIFrame && window.parentIFrame.getId) {\n retStr = window.parentIFrame.getId() + ': ' + iframeId;\n } else {\n retStr = 'Nested host page: ' + iframeId;\n }\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 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 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\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0;\n var bot = compStyle.paddingBottom ? parseInt(compStyle.paddingBottom, 10) : 0;\n return top + bot;\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n\n var top = compStyle.borderTopWidth ? parseInt(compStyle.borderTopWidth, 10) : 0;\n var bot = compStyle.borderBottomWidth ? parseInt(compStyle.borderBottomWidth, 10) : 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 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 log(iframeId, 'Checking connection is from allowed list of origins: ' + checkOrigin);\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true;\n break;\n }\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('Unexpected message received from: ' + origin + ' for ' + messageData.iframe.id + '. Message was: ' + event.data + '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.');\n }\n\n return true;\n }\n\n function isMessageForUs() {\n return msgId === ('' + msg).substr(0, msgIdLen) && msg.substr(msgIdLen).split(':')[0] in settings; // ''+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 {\n true: 1,\n false: 1,\n undefined: 1\n });\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(iframeId, 'onMessage passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n });\n log(iframeId, '--');\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect();\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\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\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 ;\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\n return retBool;\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect();\n getPagePosition(iframeId);\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 */\n // 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' : '')](newPosition.x, newPosition.y);\n } else {\n warn(iframeId, 'Unable to scroll to requested position, window.parentIFrame not found');\n }\n }\n\n var offset = addOffset ? getElementPosition(messageData.iframe) : {\n x: 0,\n y: 0\n },\n newPosition = calcOffset();\n log(iframeId, 'Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');\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 log(iframeId, 'Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n };\n scrollTo();\n log(iframeId, '--');\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash);\n } else {\n log(iframeId, 'In page link #' + hash + ' not found and window.parentIFrame not found');\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target = document.getElementById(hashData) || 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 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 '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(settings[iframeId] && settings[iframeId].iframe, iframeId);\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 resizeIFrame();\n }\n }\n\n function hasSettings(iframeId) {\n var retBool = true;\n\n if (!settings[iframeId]) {\n retBool = false;\n warn(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\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('iFrame requested init', createOutgoingMsg(iframeId), settings[iframeId].iframe, iframeId);\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\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(funcName + ' on iFrame[' + iframeId + '] is not a function');\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\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event');\n return;\n }\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: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,\n y: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop\n };\n log(iframeId, 'Get page position: ' + pagePosition.x + ',' + pagePosition.y);\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y);\n log(iframeId, 'Set page position: ' + pagePosition.x + ',' + pagePosition.y);\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(messageData.id, 'Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));\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\n messageData.iframe.style[dimension] = messageData[dimension] + 'px';\n log(messageData.id, 'IFrame (' + iframeId + ') ' + dimension + ' set to ' + messageData[dimension] + 'px');\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 */\n // 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\n if (settings[iframeId].sizeWidth) {\n processDimension('width');\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */\n // Not testable in PhantomJS\n if (doNotSync !== messageData.type && requestAnimationFrame && // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine) {\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(id, '[' + calleeMsg + '] Sending msg to iframe[' + id + '] (' + msg + ') targetOrigin: ' + target);\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 (iframe && 'contentWindow' in iframe && null !== iframe.contentWindow) {\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(id, 'IFrame has not responded within ' + settings[id].warningTimeout / 1000 + ' 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 if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {\n settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);\n }\n }\n\n var errorShown = false;\n id = id || iframe.id;\n\n if (settings[id]) {\n chkAndSend();\n warnOnNoResponse();\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return iframeId + ':' + settings[iframeId].bodyMarginV1 + ':' + settings[iframeId].sizeWidth + ':' + settings[iframeId].log + ':' + settings[iframeId].interval + ':' + settings[iframeId].enablePublicMethods + ':' + settings[iframeId].autoResize + ':' + settings[iframeId].bodyMargin + ':' + settings[iframeId].heightCalculationMethod + ':' + settings[iframeId].bodyBackground + ':' + settings[iframeId].bodyPadding + ':' + settings[iframeId].tolerance + ':' + settings[iframeId].inPageLinks + ':' + settings[iframeId].resizeFrom + ':' + settings[iframeId].widthCalculationMethod;\n }\n\n function setupIFrame(iframe, options) {\n function setLimits() {\n function addStyle(style) {\n if (Infinity !== settings[iframeId][style] && 0 !== settings[iframeId][style]) {\n iframe.style[style] = settings[iframeId][style] + 'px';\n log(iframeId, 'Set ' + style + ' = ' + settings[iframeId][style] + 'px');\n }\n }\n\n function chkMinMax(dimension) {\n if (settings[iframeId]['min' + dimension] > settings[iframeId]['max' + dimension]) {\n throw new Error('Value for min' + dimension + ' can not be greater than max' + dimension);\n }\n }\n\n chkMinMax('Height');\n chkMinMax('Width');\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\n if (null !== document.getElementById(id)) {\n id += count++;\n }\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(iframeId, 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');\n }\n\n return iframeId;\n }\n\n function setScrolling() {\n log(iframeId, 'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);\n iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';\n\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] ? settings[iframeId].scrolling : 'no';\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\n\n function setupBodyMarginValues() {\n if ('number' === typeof (settings[iframeId] && settings[iframeId].bodyMargin) || '0' === (settings[iframeId] && settings[iframeId].bodyMargin)) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\n settings[iframeId].bodyMargin = '' + 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 = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({\n iframe: iframe,\n height: 0,\n width: 0,\n type: 'init'\n });\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n removeListeners: removeIframeListeners.bind(null, settings[iframeId].iframe),\n resize: trigger.bind(null, 'Window resize', 'resize', settings[iframeId].iframe),\n moveToAnchor: function moveToAnchor(anchor) {\n trigger('Move to anchor', 'moveToAnchor:' + anchor, settings[iframeId].iframe, iframeId);\n },\n sendMessage: function sendMessage(message) {\n message = JSON.stringify(message);\n trigger('Send Message', 'message:' + message, settings[iframeId].iframe, iframeId);\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\n\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\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\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(options, option) ? options[option] : defaults[option];\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost || null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) ? '*' : remoteHost;\n }\n\n function depricate(key) {\n var splitName = key.split('Callback');\n\n if (splitName.length === 2) {\n var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);\n this[name] = this[key];\n delete this[key];\n warn(iframeId, \"Deprecated: '\" + key + \"' has been renamed '\" + name + \"'. The old method will be removed in the next major version.\");\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 checkOptions(options);\n Object.keys(options).forEach(depricate, options);\n copyOptions(options);\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\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\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 } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);\n }\n\n function isVisible(el) {\n return null !== el.offsetParent;\n }\n\n if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\n trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key);\n });\n }\n\n function mutationObserved(mutations) {\n log('window', 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\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 observer.observe(target, config);\n }\n\n var MutationObserver = getMutationObserver();\n\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 } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\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 settings[iframeId] && 'parent' === settings[iframeId].resizeFrom && settings[iframeId].autoResize && !settings[iframeId].firstRun;\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 addEventListener(window, 'resize', function () {\n resizeIFrames('resize');\n });\n addEventListener(document, 'visibilitychange', tabVisible);\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('Expected