{"version":3,"file":"assets/ubind.js","mappings":"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","sources":["webpack://ubind-injection-app/./node_modules/iframe-resizer/index.js","webpack://ubind-injection-app/./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js","webpack://ubind-injection-app/./node_modules/iframe-resizer/js/iframeResizer.js","webpack://ubind-injection-app/webpack/bootstrap","webpack://ubind-injection-app/./src/injection-context.ts","webpack://ubind-injection-app/./src/injection.ts","webpack://ubind-injection-app/./src/web-form-injection.ts","webpack://ubind-injection-app/./src/scrollbar-style.ts","webpack://ubind-injection-app/./src/helpers/url.helper.ts","webpack://ubind-injection-app/./src/portal-injection.ts","webpack://ubind-injection-app/./src/html-element-extensions.ts","webpack://ubind-injection-app/./src/ubind-injector.ts"],"sourcesContent":["const iframeResize = require('./js/iframeResizer')\n\nmodule.exports = {\n iframeResize: iframeResize,\n iframeResizer: iframeResize, // Backwards compatibility\n contentWindow: require('./js/iframeResizer.contentWindow')\n}\n","/*\n * File: iframeResizer.contentWindow.js\n * Desc: Include this file in any page being loaded into an iframe\n * to force the iframe to resize to the content size.\n * Requires: iframeResizer.js on host page.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n *\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 autoResize = true,\n base = 10,\n bodyBackground = '',\n bodyMargin = 0,\n bodyMarginStr = '',\n bodyObserver = null,\n bodyPadding = '',\n calculateWidth = false,\n doubleEventList = { resize: 1, click: 1 },\n eventCancelTimer = 128,\n firstRun = true,\n height = 1,\n heightCalcModeDefault = 'bodyOffset',\n heightCalcMode = heightCalcModeDefault,\n initLock = true,\n initMsg = '',\n inPageLinks = {},\n interval = 32,\n intervalTimer = null,\n logging = false,\n mouseEvents = false,\n msgID = '[iFrameSizer]', // Must match host page msg ID\n msgIdLen = msgID.length,\n myID = '',\n resetRequiredMethods = {\n max: 1,\n min: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n },\n resizeFrom = 'child',\n sendPermit = true,\n target = window.parent,\n targetOriginDefault = '*',\n tolerance = 0,\n triggerLocked = false,\n triggerLockedTimer = null,\n throttledTimer = 16,\n width = 1,\n widthCalcModeDefault = 'scroll',\n widthCalcMode = widthCalcModeDefault,\n win = window,\n onMessage = function () {\n warn('onMessage function not defined')\n },\n onReady = function () {},\n onPageInfo = function () {},\n customCalcMethods = {\n height: function () {\n warn('Custom height calculation function not defined')\n return document.documentElement.offsetHeight\n },\n width: function () {\n warn('Custom width calculation function not defined')\n return document.body.scrollWidth\n }\n },\n eventHandlersByName = {},\n passiveSupported = false\n\n function noop() {}\n\n try {\n var options = Object.create(\n {},\n {\n passive: {\n // eslint-disable-next-line getter-return\n get: function () {\n passiveSupported = true\n }\n }\n }\n )\n window.addEventListener('test', noop, options)\n window.removeEventListener('test', noop, options)\n } catch (error) {\n /* */\n }\n\n function addEventListener(el, evt, func, options) {\n el.addEventListener(evt, func, passiveSupported ? options || {} : false)\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false)\n }\n\n function capitalizeFirstLetter(string) {\n return string.charAt(0).toUpperCase() + string.slice(1)\n }\n\n // Based on underscore.js\n function throttle(func) {\n var context,\n args,\n result,\n timeout = null,\n previous = 0,\n later = function () {\n previous = Date.now()\n timeout = null\n result = func.apply(context, args)\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null\n }\n }\n\n return function () {\n var now = Date.now()\n\n if (!previous) {\n previous = now\n }\n\n var remaining = throttledTimer - (now - previous)\n\n context = this\n args = arguments\n\n if (remaining <= 0 || remaining > throttledTimer) {\n if (timeout) {\n clearTimeout(timeout)\n timeout = null\n }\n\n previous = now\n result = func.apply(context, args)\n\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining)\n }\n\n return result\n }\n }\n\n function formatLogMsg(msg) {\n return msgID + '[' + myID + '] ' + msg\n }\n\n function log(msg) {\n if (logging && 'object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console.log(formatLogMsg(msg))\n }\n }\n\n function warn(msg) {\n if ('object' === typeof window.console) {\n // eslint-disable-next-line no-console\n console.warn(formatLogMsg(msg))\n }\n }\n\n function init() {\n readDataFromParent()\n log('Initialising iFrame (' + window.location.href + ')')\n readDataFromPage()\n setMargin()\n setBodyStyle('background', bodyBackground)\n setBodyStyle('padding', bodyPadding)\n injectClearFixIntoBodyElement()\n checkHeightMode()\n checkWidthMode()\n stopInfiniteResizingOfIFrame()\n setupPublicMethods()\n setupMouseEvents()\n startEventListeners()\n inPageLinks = setupInPageLinks()\n sendSize('init', 'Init message from host page')\n onReady()\n }\n\n function readDataFromParent() {\n function strBool(str) {\n return 'true' === str\n }\n\n var data = initMsg.slice(msgIdLen).split(':')\n\n myID = data[0]\n bodyMargin = undefined === data[1] ? bodyMargin : Number(data[1]) // For V1 compatibility\n calculateWidth = undefined === data[2] ? calculateWidth : strBool(data[2])\n logging = undefined === data[3] ? logging : strBool(data[3])\n interval = undefined === data[4] ? interval : Number(data[4])\n autoResize = undefined === data[6] ? autoResize : strBool(data[6])\n bodyMarginStr = data[7]\n heightCalcMode = undefined === data[8] ? heightCalcMode : data[8]\n bodyBackground = data[9]\n bodyPadding = data[10]\n tolerance = undefined === data[11] ? tolerance : Number(data[11])\n inPageLinks.enable = undefined === data[12] ? false : strBool(data[12])\n resizeFrom = undefined === data[13] ? resizeFrom : data[13]\n widthCalcMode = undefined === data[14] ? widthCalcMode : data[14]\n mouseEvents = undefined === data[15] ? mouseEvents : strBool(data[15])\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 \"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 readDataFromPage() {\n function readData() {\n var data = window.iFrameResizer\n\n log('Reading data from page: ' + JSON.stringify(data))\n Object.keys(data).forEach(depricate, data)\n\n onMessage = 'onMessage' in data ? data.onMessage : onMessage\n onReady = 'onReady' in data ? data.onReady : onReady\n targetOriginDefault =\n 'targetOrigin' in data ? data.targetOrigin : targetOriginDefault\n heightCalcMode =\n 'heightCalculationMethod' in data\n ? data.heightCalculationMethod\n : heightCalcMode\n widthCalcMode =\n 'widthCalculationMethod' in data\n ? data.widthCalculationMethod\n : widthCalcMode\n }\n\n function setupCustomCalcMethods(calcMode, calcFunc) {\n if ('function' === typeof calcMode) {\n log('Setup custom ' + calcFunc + 'CalcMethod')\n customCalcMethods[calcFunc] = calcMode\n calcMode = 'custom'\n }\n\n return calcMode\n }\n\n if (\n 'iFrameResizer' in window &&\n Object === window.iFrameResizer.constructor\n ) {\n readData()\n heightCalcMode = setupCustomCalcMethods(heightCalcMode, 'height')\n widthCalcMode = setupCustomCalcMethods(widthCalcMode, 'width')\n }\n\n log('TargetOrigin for parent set to: ' + targetOriginDefault)\n }\n\n function chkCSS(attr, value) {\n if (-1 !== value.indexOf('-')) {\n warn('Negative CSS value ignored for ' + attr)\n value = ''\n }\n return value\n }\n\n function setBodyStyle(attr, value) {\n if (undefined !== value && '' !== value && 'null' !== value) {\n document.body.style[attr] = value\n log('Body ' + attr + ' set to \"' + value + '\"')\n }\n }\n\n function setMargin() {\n // If called via V1 script, convert bodyMargin from int to str\n if (undefined === bodyMarginStr) {\n bodyMarginStr = bodyMargin + 'px'\n }\n\n setBodyStyle('margin', chkCSS('margin', bodyMarginStr))\n }\n\n function stopInfiniteResizingOfIFrame() {\n document.documentElement.style.height = ''\n document.body.style.height = ''\n log('HTML & body height set to \"auto\"')\n }\n\n function manageTriggerEvent(options) {\n var listener = {\n add: function (eventName) {\n function handleEvent() {\n sendSize(options.eventName, options.eventType)\n }\n\n eventHandlersByName[eventName] = handleEvent\n\n addEventListener(window, eventName, handleEvent, { passive: true })\n },\n remove: function (eventName) {\n var handleEvent = eventHandlersByName[eventName]\n delete eventHandlersByName[eventName]\n\n removeEventListener(window, eventName, handleEvent)\n }\n }\n\n if (options.eventNames && Array.prototype.map) {\n options.eventName = options.eventNames[0]\n options.eventNames.map(listener[options.method])\n } else {\n listener[options.method](options.eventName)\n }\n\n log(\n capitalizeFirstLetter(options.method) +\n ' event listener: ' +\n options.eventType\n )\n }\n\n function manageEventListeners(method) {\n manageTriggerEvent({\n method: method,\n eventType: 'Animation Start',\n eventNames: ['animationstart', 'webkitAnimationStart']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Animation Iteration',\n eventNames: ['animationiteration', 'webkitAnimationIteration']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Animation End',\n eventNames: ['animationend', 'webkitAnimationEnd']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Input',\n eventName: 'input'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Mouse Up',\n eventName: 'mouseup'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Mouse Down',\n eventName: 'mousedown'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Orientation Change',\n eventName: 'orientationchange'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Print',\n eventNames: ['afterprint', 'beforeprint']\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Ready State Change',\n eventName: 'readystatechange'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch Start',\n eventName: 'touchstart'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch End',\n eventName: 'touchend'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Touch Cancel',\n eventName: 'touchcancel'\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition Start',\n eventNames: [\n 'transitionstart',\n 'webkitTransitionStart',\n 'MSTransitionStart',\n 'oTransitionStart',\n 'otransitionstart'\n ]\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition Iteration',\n eventNames: [\n 'transitioniteration',\n 'webkitTransitionIteration',\n 'MSTransitionIteration',\n 'oTransitionIteration',\n 'otransitioniteration'\n ]\n })\n manageTriggerEvent({\n method: method,\n eventType: 'Transition End',\n eventNames: [\n 'transitionend',\n 'webkitTransitionEnd',\n 'MSTransitionEnd',\n 'oTransitionEnd',\n 'otransitionend'\n ]\n })\n if ('child' === resizeFrom) {\n manageTriggerEvent({\n method: method,\n eventType: 'IFrame Resized',\n eventName: 'resize'\n })\n }\n }\n\n function checkCalcMode(calcMode, calcModeDefault, modes, type) {\n if (calcModeDefault !== calcMode) {\n if (!(calcMode in modes)) {\n warn(\n calcMode + ' is not a valid option for ' + type + 'CalculationMethod.'\n )\n calcMode = calcModeDefault\n }\n log(type + ' calculation method set to \"' + calcMode + '\"')\n }\n\n return calcMode\n }\n\n function checkHeightMode() {\n heightCalcMode = checkCalcMode(\n heightCalcMode,\n heightCalcModeDefault,\n getHeight,\n 'height'\n )\n }\n\n function checkWidthMode() {\n widthCalcMode = checkCalcMode(\n widthCalcMode,\n widthCalcModeDefault,\n getWidth,\n 'width'\n )\n }\n\n function startEventListeners() {\n if (true === autoResize) {\n manageEventListeners('add')\n setupMutationObserver()\n } else {\n log('Auto Resize disabled')\n }\n }\n\n // function stopMsgsToParent() {\n // log('Disable outgoing messages')\n // sendPermit = false\n // }\n\n // function removeMsgListener() {\n // log('Remove event listener: Message')\n // removeEventListener(window, 'message', receiver)\n // }\n\n function disconnectMutationObserver() {\n if (null !== bodyObserver) {\n /* istanbul ignore next */ // Not testable in PhantonJS\n bodyObserver.disconnect()\n }\n }\n\n function stopEventListeners() {\n manageEventListeners('remove')\n disconnectMutationObserver()\n clearInterval(intervalTimer)\n }\n\n // function teardown() {\n // stopMsgsToParent()\n // removeMsgListener()\n // if (true === autoResize) stopEventListeners()\n // }\n\n function injectClearFixIntoBodyElement() {\n var clearFix = document.createElement('div')\n clearFix.style.clear = 'both'\n // Guard against the following having been globally redefined in CSS.\n clearFix.style.display = 'block'\n clearFix.style.height = '0'\n document.body.appendChild(clearFix)\n }\n\n function setupInPageLinks() {\n function getPagePosition() {\n return {\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 }\n\n function getElementPosition(el) {\n var elPosition = el.getBoundingClientRect(),\n pagePosition = getPagePosition()\n\n return {\n x: parseInt(elPosition.left, 10) + parseInt(pagePosition.x, 10),\n y: parseInt(elPosition.top, 10) + parseInt(pagePosition.y, 10)\n }\n }\n\n function findTarget(location) {\n function jumpToTarget(target) {\n var jumpPosition = getElementPosition(target)\n\n log(\n 'Moving to in page link (#' +\n hash +\n ') at x: ' +\n jumpPosition.x +\n ' y: ' +\n jumpPosition.y\n )\n sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width\n }\n\n var hash = location.split('#')[1] || location, // Remove # if present\n hashData = decodeURIComponent(hash),\n target =\n document.getElementById(hashData) ||\n document.getElementsByName(hashData)[0]\n\n if (undefined === target) {\n log(\n 'In page link (#' +\n hash +\n ') not found in iFrame, so sending to parent'\n )\n sendMsg(0, 0, 'inPageLink', '#' + hash)\n } else {\n jumpToTarget(target)\n }\n }\n\n function checkLocationHash() {\n var hash = window.location.hash\n var href = window.location.href\n\n if ('' !== hash && '#' !== hash) {\n findTarget(href)\n }\n }\n\n function bindAnchors() {\n function setupLink(el) {\n function linkClicked(e) {\n e.preventDefault()\n\n /* jshint validthis:true */\n findTarget(this.getAttribute('href'))\n }\n\n if ('#' !== el.getAttribute('href')) {\n addEventListener(el, 'click', linkClicked)\n }\n }\n\n Array.prototype.forEach.call(\n document.querySelectorAll('a[href^=\"#\"]'),\n setupLink\n )\n }\n\n function bindLocationHash() {\n addEventListener(window, 'hashchange', checkLocationHash)\n }\n\n function initCheck() {\n // Check if page loaded with location hash after init resize\n setTimeout(checkLocationHash, eventCancelTimer)\n }\n\n function enableInPageLinks() {\n /* istanbul ignore else */ // Not testable in phantonJS\n if (Array.prototype.forEach && document.querySelectorAll) {\n log('Setting up location.hash handlers')\n bindAnchors()\n bindLocationHash()\n initCheck()\n } else {\n warn(\n 'In page linking not fully supported in this browser! (See README.md for IE8 workaround)'\n )\n }\n }\n\n if (inPageLinks.enable) {\n enableInPageLinks()\n } else {\n log('In page linking not enabled')\n }\n\n return {\n findTarget: findTarget\n }\n }\n\n function setupMouseEvents() {\n if (mouseEvents !== true) return\n\n function sendMouse(e) {\n sendMsg(0, 0, e.type, e.screenY + ':' + e.screenX)\n }\n\n function addMouseListener(evt, name) {\n log('Add event listener: ' + name)\n addEventListener(window.document, evt, sendMouse)\n }\n\n addMouseListener('mouseenter', 'Mouse Enter')\n addMouseListener('mouseleave', 'Mouse Leave')\n }\n\n function setupPublicMethods() {\n log('Enable public methods')\n\n win.parentIFrame = {\n autoResize: function autoResizeF(resize) {\n if (true === resize && false === autoResize) {\n autoResize = true\n startEventListeners()\n } else if (false === resize && true === autoResize) {\n autoResize = false\n stopEventListeners()\n }\n sendMsg(0, 0, 'autoResize', JSON.stringify(autoResize))\n return autoResize\n },\n\n close: function closeF() {\n sendMsg(0, 0, 'close')\n // teardown()\n },\n\n getId: function getIdF() {\n return myID\n },\n\n getPageInfo: function getPageInfoF(callback) {\n if ('function' === typeof callback) {\n onPageInfo = callback\n sendMsg(0, 0, 'pageInfo')\n } else {\n onPageInfo = function () {}\n sendMsg(0, 0, 'pageInfoStop')\n }\n },\n\n moveToAnchor: function moveToAnchorF(hash) {\n inPageLinks.findTarget(hash)\n },\n\n reset: function resetF() {\n resetIFrame('parentIFrame.reset')\n },\n\n scrollTo: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollTo') // X&Y reversed at sendMsg uses height/width\n },\n\n scrollToOffset: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollToOffset') // X&Y reversed at sendMsg uses height/width\n },\n\n sendMessage: function sendMessageF(msg, targetOrigin) {\n sendMsg(0, 0, 'message', JSON.stringify(msg), targetOrigin)\n },\n\n setHeightCalculationMethod: function setHeightCalculationMethodF(\n heightCalculationMethod\n ) {\n heightCalcMode = heightCalculationMethod\n checkHeightMode()\n },\n\n setWidthCalculationMethod: function setWidthCalculationMethodF(\n widthCalculationMethod\n ) {\n widthCalcMode = widthCalculationMethod\n checkWidthMode()\n },\n\n setTargetOrigin: function setTargetOriginF(targetOrigin) {\n log('Set targetOrigin: ' + targetOrigin)\n targetOriginDefault = targetOrigin\n },\n\n size: function sizeF(customHeight, customWidth) {\n var valString =\n '' + (customHeight || '') + (customWidth ? ',' + customWidth : '')\n sendSize(\n 'size',\n 'parentIFrame.size(' + valString + ')',\n customHeight,\n customWidth\n )\n }\n }\n }\n\n function initInterval() {\n if (0 !== interval) {\n log('setInterval: ' + interval + 'ms')\n intervalTimer = setInterval(function () {\n sendSize('interval', 'setInterval: ' + interval)\n }, Math.abs(interval))\n }\n }\n\n // Not testable in PhantomJS\n /* istanbul ignore next */\n function setupBodyMutationObserver() {\n function addImageLoadListners(mutation) {\n function addImageLoadListener(element) {\n if (false === element.complete) {\n log('Attach listeners to ' + element.src)\n element.addEventListener('load', imageLoaded, false)\n element.addEventListener('error', imageError, false)\n elements.push(element)\n }\n }\n\n if (mutation.type === 'attributes' && mutation.attributeName === 'src') {\n addImageLoadListener(mutation.target)\n } else if (mutation.type === 'childList') {\n Array.prototype.forEach.call(\n mutation.target.querySelectorAll('img'),\n addImageLoadListener\n )\n }\n }\n\n function removeFromArray(element) {\n elements.splice(elements.indexOf(element), 1)\n }\n\n function removeImageLoadListener(element) {\n log('Remove listeners from ' + element.src)\n element.removeEventListener('load', imageLoaded, false)\n element.removeEventListener('error', imageError, false)\n removeFromArray(element)\n }\n\n function imageEventTriggered(event, type, typeDesc) {\n removeImageLoadListener(event.target)\n sendSize(type, typeDesc + ': ' + event.target.src)\n }\n\n function imageLoaded(event) {\n imageEventTriggered(event, 'imageLoad', 'Image loaded')\n }\n\n function imageError(event) {\n imageEventTriggered(event, 'imageLoadFailed', 'Image load failed')\n }\n\n function mutationObserved(mutations) {\n sendSize(\n 'mutationObserver',\n 'mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type\n )\n\n // Deal with WebKit / Blink asyncing image loading when tags are injected into the page\n mutations.forEach(addImageLoadListners)\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\n observer = new MutationObserver(mutationObserved)\n\n log('Create body MutationObserver')\n observer.observe(target, config)\n\n return observer\n }\n\n var elements = [],\n MutationObserver =\n window.MutationObserver || window.WebKitMutationObserver,\n observer = createMutationObserver()\n\n return {\n disconnect: function () {\n if ('disconnect' in observer) {\n log('Disconnect body MutationObserver')\n observer.disconnect()\n elements.forEach(removeImageLoadListener)\n }\n }\n }\n }\n\n function setupMutationObserver() {\n var forceIntervalTimer = 0 > interval\n\n // Not testable in PhantomJS\n /* istanbul ignore if */ if (\n window.MutationObserver ||\n window.WebKitMutationObserver\n ) {\n if (forceIntervalTimer) {\n initInterval()\n } else {\n bodyObserver = setupBodyMutationObserver()\n }\n } else {\n log('MutationObserver not supported in this browser!')\n initInterval()\n }\n }\n\n // document.documentElement.offsetHeight is not reliable, so\n // we have to jump through hoops to get a better value.\n function getComputedStyle(prop, el) {\n var retVal = 0\n el = el || document.body // Not testable in phantonJS\n\n retVal = document.defaultView.getComputedStyle(el, null)\n retVal = null === retVal ? 0 : retVal[prop]\n\n return parseInt(retVal, base)\n }\n\n function chkEventThottle(timer) {\n if (timer > throttledTimer / 2) {\n throttledTimer = 2 * timer\n log('Event throttle increased to ' + throttledTimer + 'ms')\n }\n }\n\n // Idea from https://github.com/guardian/iframe-messenger\n function getMaxElement(side, elements) {\n var elementsLength = elements.length,\n elVal = 0,\n maxVal = 0,\n Side = capitalizeFirstLetter(side),\n timer = Date.now()\n\n for (var i = 0; i < elementsLength; i++) {\n elVal =\n elements[i].getBoundingClientRect()[side] +\n getComputedStyle('margin' + Side, elements[i])\n if (elVal > maxVal) {\n maxVal = elVal\n }\n }\n\n timer = Date.now() - timer\n\n log('Parsed ' + elementsLength + ' HTML elements')\n log('Element position calculated in ' + timer + 'ms')\n\n chkEventThottle(timer)\n\n return maxVal\n }\n\n function getAllMeasurements(dimensions) {\n return [\n dimensions.bodyOffset(),\n dimensions.bodyScroll(),\n dimensions.documentElementOffset(),\n dimensions.documentElementScroll()\n ]\n }\n\n function getTaggedElements(side, tag) {\n function noTaggedElementsFound() {\n warn('No tagged elements (' + tag + ') found on page')\n return document.querySelectorAll('body *')\n }\n\n var elements = document.querySelectorAll('[' + tag + ']')\n\n if (elements.length === 0) noTaggedElementsFound()\n\n return getMaxElement(side, elements)\n }\n\n function getAllElements() {\n return document.querySelectorAll('body *')\n }\n\n var getHeight = {\n bodyOffset: function getBodyOffsetHeight() {\n return (\n document.body.offsetHeight +\n getComputedStyle('marginTop') +\n getComputedStyle('marginBottom')\n )\n },\n\n offset: function () {\n return getHeight.bodyOffset() // Backwards compatibility\n },\n\n bodyScroll: function getBodyScrollHeight() {\n return document.body.scrollHeight\n },\n\n custom: function getCustomWidth() {\n return customCalcMethods.height()\n },\n\n documentElementOffset: function getDEOffsetHeight() {\n return document.documentElement.offsetHeight\n },\n\n documentElementScroll: function getDEScrollHeight() {\n return document.documentElement.scrollHeight\n },\n\n max: function getMaxHeight() {\n return Math.max.apply(null, getAllMeasurements(getHeight))\n },\n\n min: function getMinHeight() {\n return Math.min.apply(null, getAllMeasurements(getHeight))\n },\n\n grow: function growHeight() {\n return getHeight.max() // Run max without the forced downsizing\n },\n\n lowestElement: function getBestHeight() {\n return Math.max(\n getHeight.bodyOffset() || getHeight.documentElementOffset(),\n getMaxElement('bottom', getAllElements())\n )\n },\n\n taggedElement: function getTaggedElementsHeight() {\n return getTaggedElements('bottom', 'data-iframe-height')\n }\n },\n getWidth = {\n bodyScroll: function getBodyScrollWidth() {\n return document.body.scrollWidth\n },\n\n bodyOffset: function getBodyOffsetWidth() {\n return document.body.offsetWidth\n },\n\n custom: function getCustomWidth() {\n return customCalcMethods.width()\n },\n\n documentElementScroll: function getDEScrollWidth() {\n return document.documentElement.scrollWidth\n },\n\n documentElementOffset: function getDEOffsetWidth() {\n return document.documentElement.offsetWidth\n },\n\n scroll: function getMaxWidth() {\n return Math.max(getWidth.bodyScroll(), getWidth.documentElementScroll())\n },\n\n max: function getMaxWidth() {\n return Math.max.apply(null, getAllMeasurements(getWidth))\n },\n\n min: function getMinWidth() {\n return Math.min.apply(null, getAllMeasurements(getWidth))\n },\n\n rightMostElement: function rightMostElement() {\n return getMaxElement('right', getAllElements())\n },\n\n taggedElement: function getTaggedElementsWidth() {\n return getTaggedElements('right', 'data-iframe-width')\n }\n }\n\n function sizeIFrame(\n triggerEvent,\n triggerEventDesc,\n customHeight,\n customWidth\n ) {\n function resizeIFrame() {\n height = currentHeight\n width = currentWidth\n\n sendMsg(height, width, triggerEvent)\n }\n\n function isSizeChangeDetected() {\n function checkTolarance(a, b) {\n var retVal = Math.abs(a - b) <= tolerance\n return !retVal\n }\n\n currentHeight =\n undefined === customHeight ? getHeight[heightCalcMode]() : customHeight\n currentWidth =\n undefined === customWidth ? getWidth[widthCalcMode]() : customWidth\n\n return (\n checkTolarance(height, currentHeight) ||\n (calculateWidth && checkTolarance(width, currentWidth))\n )\n }\n\n function isForceResizableEvent() {\n return !(triggerEvent in { init: 1, interval: 1, size: 1 })\n }\n\n function isForceResizableCalcMode() {\n return (\n heightCalcMode in resetRequiredMethods ||\n (calculateWidth && widthCalcMode in resetRequiredMethods)\n )\n }\n\n function logIgnored() {\n log('No change in size detected')\n }\n\n function checkDownSizing() {\n if (isForceResizableEvent() && isForceResizableCalcMode()) {\n resetIFrame(triggerEventDesc)\n } else if (!(triggerEvent in { interval: 1 })) {\n logIgnored()\n }\n }\n\n var currentHeight, currentWidth\n\n if (isSizeChangeDetected() || 'init' === triggerEvent) {\n lockTrigger()\n resizeIFrame()\n } else {\n checkDownSizing()\n }\n }\n\n var sizeIFrameThrottled = throttle(sizeIFrame)\n\n function sendSize(triggerEvent, triggerEventDesc, customHeight, customWidth) {\n function recordTrigger() {\n if (!(triggerEvent in { reset: 1, resetPage: 1, init: 1 })) {\n log('Trigger event: ' + triggerEventDesc)\n }\n }\n\n function isDoubleFiredEvent() {\n return triggerLocked && triggerEvent in doubleEventList\n }\n\n if (isDoubleFiredEvent()) {\n log('Trigger event cancelled: ' + triggerEvent)\n } else {\n recordTrigger()\n if (triggerEvent === 'init') {\n sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth)\n } else {\n sizeIFrameThrottled(\n triggerEvent,\n triggerEventDesc,\n customHeight,\n customWidth\n )\n }\n }\n }\n\n function lockTrigger() {\n if (!triggerLocked) {\n triggerLocked = true\n log('Trigger event lock on')\n }\n clearTimeout(triggerLockedTimer)\n triggerLockedTimer = setTimeout(function () {\n triggerLocked = false\n log('Trigger event lock off')\n log('--')\n }, eventCancelTimer)\n }\n\n function triggerReset(triggerEvent) {\n height = getHeight[heightCalcMode]()\n width = getWidth[widthCalcMode]()\n\n sendMsg(height, width, triggerEvent)\n }\n\n function resetIFrame(triggerEventDesc) {\n var hcm = heightCalcMode\n heightCalcMode = heightCalcModeDefault\n\n log('Reset trigger event: ' + triggerEventDesc)\n lockTrigger()\n triggerReset('reset')\n\n heightCalcMode = hcm\n }\n\n function sendMsg(height, width, triggerEvent, msg, targetOrigin) {\n function setTargetOrigin() {\n if (undefined === targetOrigin) {\n targetOrigin = targetOriginDefault\n } else {\n log('Message targetOrigin: ' + targetOrigin)\n }\n }\n\n function sendToParent() {\n var size = height + ':' + width,\n message =\n myID +\n ':' +\n size +\n ':' +\n triggerEvent +\n (undefined === msg ? '' : ':' + msg)\n\n log('Sending message to host page (' + message + ')')\n target.postMessage(msgID + message, targetOrigin)\n }\n\n if (true === sendPermit) {\n setTargetOrigin()\n sendToParent()\n }\n }\n\n function receiver(event) {\n var processRequestFromParent = {\n init: function initFromParent() {\n initMsg = event.data\n target = event.source\n\n init()\n firstRun = false\n setTimeout(function () {\n initLock = false\n }, eventCancelTimer)\n },\n\n reset: function resetFromParent() {\n if (initLock) {\n log('Page reset ignored by init')\n } else {\n log('Page size reset by host page')\n triggerReset('resetPage')\n }\n },\n\n resize: function resizeFromParent() {\n sendSize('resizeParent', 'Parent window requested size check')\n },\n\n moveToAnchor: function moveToAnchorF() {\n inPageLinks.findTarget(getData())\n },\n inPageLink: function inPageLinkF() {\n this.moveToAnchor()\n }, // Backward compatibility\n\n pageInfo: function pageInfoFromParent() {\n var msgBody = getData()\n log('PageInfoFromParent called from parent: ' + msgBody)\n onPageInfo(JSON.parse(msgBody))\n log(' --')\n },\n\n message: function messageFromParent() {\n var msgBody = getData()\n\n log('onMessage called from parent: ' + msgBody)\n // eslint-disable-next-line sonarjs/no-extra-arguments\n onMessage(JSON.parse(msgBody))\n log(' --')\n }\n }\n\n function isMessageForUs() {\n return msgID === ('' + event.data).slice(0, msgIdLen) // ''+ Protects against non-string messages\n }\n\n function getMessageType() {\n return event.data.split(']')[1].split(':')[0]\n }\n\n function getData() {\n return event.data.slice(event.data.indexOf(':') + 1)\n }\n\n function isMiddleTier() {\n return (\n (!(typeof module !== 'undefined' && module.exports) &&\n 'iFrameResize' in window) ||\n (window.jQuery !== undefined &&\n 'iFrameResize' in window.jQuery.prototype)\n )\n }\n\n function isInitMsg() {\n // Test if this message is from a child below us. This is an ugly test, however, updating\n // the message format would break backwards compatibility.\n return event.data.split(':')[2] in { true: 1, false: 1 }\n }\n\n function callFromParent() {\n var messageType = getMessageType()\n\n if (messageType in processRequestFromParent) {\n processRequestFromParent[messageType]()\n } else if (!isMiddleTier() && !isInitMsg()) {\n warn('Unexpected message (' + event.data + ')')\n }\n }\n\n function processMessage() {\n if (false === firstRun) {\n callFromParent()\n } else if (isInitMsg()) {\n processRequestFromParent.init()\n } else {\n log(\n 'Ignored message of type \"' +\n getMessageType() +\n '\". Received before initialization.'\n )\n }\n }\n\n if (isMessageForUs()) {\n processMessage()\n }\n }\n\n // Normally the parent kicks things off when it detects the iFrame has loaded.\n // If this script is async-loaded, then tell parent page to retry init.\n function chkLateLoaded() {\n if ('loading' !== document.readyState) {\n window.parent.postMessage('[iFrameResizerChild]Ready', '*')\n }\n }\n\n addEventListener(window, 'message', receiver)\n addEventListener(window, 'readystatechange', chkLateLoaded)\n chkLateLoaded()\n\n \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\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