{"version":3,"sources":["iframeSizerClean.js","ReadMoreSpot.js","TabsComponent.js","PageNavHeader.js","RulesAndTerms.js","AppDictionary.js","VersionSelector.js"],"names":["undefined","window","$","count","hiddenCheckEnabled","msgId","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","onClosed","onInit","onMessage","warn","onResized","onScroll","frameTimer","jQuery","fn","iFrameResize","options","this","filter","each","index","element","setupIFrame","end","info","define","amd","factory","module","exports","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","addEventListener","el","evt","func","removeEventListener","iFrameListener","event","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","iframeId","on","Dimension","Number","min","dimension","toLowerCase","size","getMsgBody","offset","msg","substr","indexOf","msgHeader","sendPageInfoToIframe","iframe","time","frameId","bodyPosition","iFramePosition","trigger","document","body","getBoundingClientRect","JSON","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","parseInt","top","offsetLeft","left","scrollTop","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","setTimeout","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","self","parentIFrame","scrollTo","unsetPagePosition","funcName","val","chkEvent","retBool","data","createOutgoingMsg","getElementById","iFrameReadyMsgReceived","split","type","loaded","true","false","hasSettings","remoteHost","origin","constructor","Array","i","retCode","length","checkList","Error","isMessageFromIFrame","firstRun","closeRequeston","closeIFrame","msgBody","message","parse","setListener","sendPageInfo","stop","forEach","stopPageInfo","startPageInfoMonitor","hash","hashData","decodeURIComponent","getElementsByName","jumpPosition","moveToAnchor","resetIFrame","actionMsg","retVal","TypeError","removeIframeListeners","parentNode","removeChild","e","chkZero","checkIFrames","checkIFrame","settingId","chkDimension","style","isVisible","offsetParent","Object","keys","key","mutationObserved","mutations","debouce","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observe","fixHiddenIFrames","processDimension","setDimension","doNotSync","calleeMsg","contentWindow","targetOrigin","postMessage","depricate","splitName","charAt","toUpperCase","slice","ensureHasId","src","join","checkOptions","option","prototype","hasOwnProperty","call","copyOptions","processOptions","overflow","setScrolling","addStyle","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","iFrameResizer","close","bind","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","eventName","isIFrameResizeEnabled","setupEventListeners","init","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","querySelectorAll","defineDs","DOMUtils","ready","$spot","_$spot$querySelector","classList","toggle","buttonText","contains","textContent","Utils","$tabComponents","$tabComponent","$tabContent","$tabNavLink","add","$content","$title","createElement","getAttribute","prepend","tabId","concat","toString","$tabLinkTitle","setAttribute","ev","preventDefault","$link","currentTarget","parentElement","remove","$tabElem","logDeprecated","Component","m","route","elem","$element","controller","targets","targetsArray","scrollPage","$topNavigation","scrollTarget","$scrollTargetElement","scrollY","scrollTopValue","behavior","pageIsReady","addHeaderHeightFix","insertAdjacentHTML","view","ctrl","map","item","href","onclick","sections","toc","tocEl","tocMobileEl","clearInput","rulesComponent","rulesEl","searchEl","updateRules","_searchString","string","searchString","arguments","trim","replace","searchRegex","RegExp","texts","text","match","matches","allTags","matchAll","start","maxRuns","exec","some","tag","matchBegin","matchEnd","reverse","substring","includes","textSection","header","innerHTML","value","rules","t","section","getRulesSections","getToc","headerTag","li","a","Dictionary","OutsideClick","Render","label","placeHolderText","render","toggleSelector","state","property","name","then","nodes","optionsWrapper","context","depend","deviceSelectorLabel","selectedOption","displayName","class","optionsList","deviceSelectorUpdate","selectOption"],"mappings":"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","file":"region-avalon-corporate.js","sourcesContent":["/* eslint-disable */\r\n/*\r\n * File: iframeResizer.js\r\n * Desc: Force iframes to size to content.\r\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\r\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\r\n * Author: David J. Bradshaw - dave@bradshaw.net\r\n * Contributor: Jure Mav - jure.mav@gmail.com\r\n * Contributor: Reed Dadoune - reed@dadoune.com\r\n */\r\n\r\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\r\n(function (undefined) {\r\n if (typeof window === 'undefined') return; // don't run for server side render\r\n\r\n var count = 0,\r\n hiddenCheckEnabled = false,\r\n msgHeader = 'message',\r\n msgHeaderLen = msgHeader.length,\r\n msgId = '[iFrameSizer]', // Must match iframe msg ID\r\n msgIdLen = msgId.length,\r\n pagePosition = null,\r\n requestAnimationFrame = window.requestAnimationFrame,\r\n resetRequiredMethods = {\r\n max: 1,\r\n scroll: 1,\r\n bodyScroll: 1,\r\n documentElementScroll: 1\r\n },\r\n settings = {},\r\n timer = null,\r\n defaults = {\r\n autoResize: true,\r\n bodyBackground: null,\r\n bodyMargin: null,\r\n bodyMarginV1: 8,\r\n bodyPadding: null,\r\n checkOrigin: true,\r\n inPageLinks: false,\r\n enablePublicMethods: true,\r\n heightCalculationMethod: 'bodyOffset',\r\n id: 'iFrameResizer',\r\n interval: 32,\r\n maxHeight: Infinity,\r\n maxWidth: Infinity,\r\n minHeight: 0,\r\n minWidth: 0,\r\n resizeFrom: 'parent',\r\n scrolling: false,\r\n sizeHeight: true,\r\n sizeWidth: false,\r\n warningTimeout: 5000,\r\n tolerance: 0,\r\n widthCalculationMethod: 'scroll',\r\n onClosed: function () { },\r\n onInit: function () { },\r\n onMessage: function () {\r\n warn('onMessage function not defined')\r\n },\r\n onResized: function () { },\r\n onScroll: function () {\r\n return true\r\n }\r\n }\r\n\r\n function getMutationObserver() {\r\n return (\r\n window.MutationObserver ||\r\n window.WebKitMutationObserver ||\r\n window.MozMutationObserver\r\n )\r\n }\r\n\r\n function addEventListener(el, evt, func) {\r\n el.addEventListener(evt, func, false)\r\n }\r\n\r\n function removeEventListener(el, evt, func) {\r\n el.removeEventListener(evt, func, false)\r\n }\r\n\r\n function setupRequestAnimationFrame() {\r\n var vendors = ['moz', 'webkit', 'o', 'ms']\r\n var x\r\n\r\n // Remove vendor prefixing if prefixed and break early if not\r\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\r\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame']\r\n }\r\n }\r\n \r\n function iFrameListener(event) {\r\n function resizeIFrame() {\r\n function resize() {\r\n setSize(messageData)\r\n setPagePosition(iframeId)\r\n on('onResized', messageData)\r\n }\r\n\r\n ensureInRange('Height')\r\n ensureInRange('Width')\r\n\r\n syncResize(resize, messageData, 'init')\r\n }\r\n\r\n function processMsg() {\r\n var data = msg.substr(msgIdLen).split(':')\r\n\r\n return {\r\n iframe: settings[data[0]] && settings[data[0]].iframe,\r\n id: data[0],\r\n height: data[1],\r\n width: data[2],\r\n type: data[3]\r\n }\r\n }\r\n\r\n function ensureInRange(Dimension) {\r\n var max = Number(settings[iframeId]['max' + Dimension]),\r\n min = Number(settings[iframeId]['min' + Dimension]),\r\n dimension = Dimension.toLowerCase(),\r\n size = Number(messageData[dimension])\r\n\r\n if (size < min) {\r\n size = min\r\n }\r\n\r\n if (size > max) {\r\n size = max\r\n }\r\n\r\n messageData[dimension] = '' + size\r\n }\r\n\r\n function isMessageFromIFrame() {\r\n function checkAllowedOrigin() {\r\n function checkList() {\r\n var i = 0,\r\n retCode = false\r\n\r\n for (; i < checkOrigin.length; i++) {\r\n if (checkOrigin[i] === origin) {\r\n retCode = true\r\n break\r\n }\r\n }\r\n return retCode\r\n }\r\n\r\n function checkSingle() {\r\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost\r\n return origin === remoteHost\r\n }\r\n\r\n return checkOrigin.constructor === Array ? checkList() : checkSingle()\r\n }\r\n\r\n var origin = event.origin,\r\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin\r\n\r\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\r\n throw new Error(\r\n 'Unexpected message received from: ' +\r\n origin +\r\n ' for ' +\r\n messageData.iframe.id +\r\n '. Message was: ' +\r\n event.data +\r\n '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.'\r\n )\r\n }\r\n\r\n return true\r\n }\r\n\r\n function isMessageForUs() {\r\n return (\r\n msgId === ('' + msg).substr(0, msgIdLen) &&\r\n msg.substr(msgIdLen).split(':')[0] in settings\r\n ) // ''+Protects against non-string msg\r\n }\r\n\r\n function isMessageFromMetaParent() {\r\n // Test if this message is from a parent above us. This is an ugly test, however, updating\r\n // the message format would break backwards compatibity.\r\n var retCode = messageData.type in { true: 1, false: 1, undefined: 1 }\r\n return retCode\r\n }\r\n\r\n function getMsgBody(offset) {\r\n return msg.substr(msg.indexOf(':') + msgHeaderLen + offset)\r\n }\r\n\r\n function forwardMsgFromIFrame(msgBody) {\r\n on('onMessage', {\r\n iframe: messageData.iframe,\r\n message: JSON.parse(msgBody)\r\n })\r\n }\r\n\r\n function getPageInfo() {\r\n var bodyPosition = document.body.getBoundingClientRect(),\r\n iFramePosition = messageData.iframe.getBoundingClientRect()\r\n\r\n return JSON.stringify({\r\n iframeHeight: iFramePosition.height,\r\n iframeWidth: iFramePosition.width,\r\n clientHeight: Math.max(\r\n document.documentElement.clientHeight,\r\n window.innerHeight || 0\r\n ),\r\n clientWidth: Math.max(\r\n document.documentElement.clientWidth,\r\n window.innerWidth || 0\r\n ),\r\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\r\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\r\n scrollTop: window.pageYOffset,\r\n scrollLeft: window.pageXOffset,\r\n documentHeight: document.documentElement.clientHeight,\r\n documentWidth: document.documentElement.clientWidth,\r\n windowHeight: window.innerHeight,\r\n windowWidth: window.innerWidth\r\n })\r\n }\r\n\r\n function sendPageInfoToIframe(iframe, iframeId) {\r\n function debouncedTrigger() {\r\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId)\r\n }\r\n debounceFrameEvents(debouncedTrigger, 32, iframeId)\r\n }\r\n\r\n function startPageInfoMonitor() {\r\n function setListener(type, func) {\r\n function sendPageInfo() {\r\n if (settings[id]) {\r\n sendPageInfoToIframe(settings[id].iframe, id)\r\n } else {\r\n stop()\r\n }\r\n }\r\n\r\n ;['scroll', 'resize'].forEach(function (evt) {\r\n func(window, evt, sendPageInfo)\r\n })\r\n }\r\n\r\n function stop() {\r\n setListener('Remove ', removeEventListener)\r\n }\r\n\r\n function start() {\r\n setListener('Add ', addEventListener)\r\n }\r\n\r\n var id = iframeId // Create locally scoped copy of iFrame ID\r\n\r\n start()\r\n\r\n if (settings[id]) {\r\n settings[id].stopPageInfo = stop\r\n }\r\n }\r\n\r\n function stopPageInfoMonitor() {\r\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\r\n settings[iframeId].stopPageInfo()\r\n delete settings[iframeId].stopPageInfo\r\n }\r\n }\r\n\r\n function checkIFrameExists() {\r\n var retBool = true\r\n\r\n if (null === messageData.iframe) {\r\n retBool = false\r\n }\r\n return retBool\r\n }\r\n\r\n function getElementPosition(target) {\r\n var iFramePosition = target.getBoundingClientRect()\r\n\r\n getPagePosition(iframeId)\r\n\r\n return {\r\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\r\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\r\n }\r\n }\r\n\r\n function scrollRequestFromChild(addOffset) {\r\n /* istanbul ignore next */ // Not testable in Karma\r\n function reposition() {\r\n pagePosition = newPosition\r\n scrollTo()\r\n }\r\n\r\n function calcOffset() {\r\n return {\r\n x: Number(messageData.width) + offset.x,\r\n y: Number(messageData.height) + offset.y\r\n }\r\n }\r\n\r\n function scrollParent() {\r\n if (window.parentIFrame) {\r\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](\r\n newPosition.x,\r\n newPosition.y\r\n )\r\n }\r\n \r\n }\r\n\r\n var offset = addOffset\r\n ? getElementPosition(messageData.iframe)\r\n : { x: 0, y: 0 },\r\n newPosition = calcOffset()\r\n\r\n if (window.top !== window.self) {\r\n scrollParent()\r\n } else {\r\n reposition()\r\n }\r\n }\r\n\r\n function scrollTo() {\r\n if (false !== on('onScroll', pagePosition)) {\r\n setPagePosition(iframeId)\r\n } else {\r\n unsetPagePosition()\r\n }\r\n }\r\n\r\n function findTarget(location) {\r\n function jumpToTarget() {\r\n var jumpPosition = getElementPosition(target)\r\n\r\n pagePosition = {\r\n x: jumpPosition.x,\r\n y: jumpPosition.y\r\n }\r\n\r\n scrollTo()\r\n }\r\n\r\n function jumpToParent() {\r\n if (window.parentIFrame) {\r\n window.parentIFrame.moveToAnchor(hash)\r\n }\r\n }\r\n\r\n var hash = location.split('#')[1] || '',\r\n hashData = decodeURIComponent(hash),\r\n target =\r\n document.getElementById(hashData) ||\r\n document.getElementsByName(hashData)[0]\r\n\r\n if (target) {\r\n jumpToTarget()\r\n } else if (window.top !== window.self) {\r\n jumpToParent()\r\n }\r\n }\r\n\r\n function on(funcName, val) {\r\n return chkEvent(iframeId, funcName, val)\r\n }\r\n\r\n function actionMsg() {\r\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun()\r\n\r\n switch (messageData.type) {\r\n case 'close':\r\n if (settings[iframeId].closeRequeston)\r\n chkEvent(iframeId, 'onCloseRequest', settings[iframeId].iframe)\r\n else closeIFrame(messageData.iframe)\r\n break\r\n\r\n case 'message':\r\n forwardMsgFromIFrame(getMsgBody(6))\r\n break\r\n\r\n case 'scrollTo':\r\n scrollRequestFromChild(false)\r\n break\r\n\r\n case 'scrollToOffset':\r\n scrollRequestFromChild(true)\r\n break\r\n\r\n case 'pageInfo':\r\n sendPageInfoToIframe(\r\n settings[iframeId] && settings[iframeId].iframe,\r\n iframeId\r\n )\r\n startPageInfoMonitor()\r\n break\r\n\r\n case 'pageInfoStop':\r\n stopPageInfoMonitor()\r\n break\r\n\r\n case 'inPageLink':\r\n findTarget(getMsgBody(9))\r\n break\r\n\r\n case 'reset':\r\n resetIFrame(messageData)\r\n break\r\n\r\n case 'init':\r\n resizeIFrame()\r\n on('onInit', messageData.iframe)\r\n break\r\n\r\n default:\r\n resizeIFrame()\r\n }\r\n }\r\n\r\n function hasSettings(iframeId) {\r\n var retBool = true\r\n\r\n if (!settings[iframeId]) {\r\n retBool = false\r\n }\r\n\r\n return retBool\r\n }\r\n\r\n function iFrameReadyMsgReceived() {\r\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\r\n for (var iframeId in settings) {\r\n trigger(\r\n 'iFrame requested init',\r\n createOutgoingMsg(iframeId),\r\n document.getElementById(iframeId),\r\n iframeId\r\n )\r\n }\r\n }\r\n\r\n function firstRun() {\r\n if (settings[iframeId]) {\r\n settings[iframeId].firstRun = false\r\n }\r\n }\r\n\r\n var msg = event.data,\r\n messageData = {},\r\n iframeId = null\r\n\r\n if ('[iFrameResizerChild]Ready' === msg) {\r\n iFrameReadyMsgReceived()\r\n } else if (isMessageForUs()) {\r\n messageData = processMsg()\r\n iframeId = messageData.id\r\n if (settings[iframeId]) {\r\n settings[iframeId].loaded = true\r\n }\r\n\r\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\r\n\r\n if (checkIFrameExists() && isMessageFromIFrame()) {\r\n actionMsg()\r\n }\r\n }\r\n }\r\n }\r\n\r\n function chkEvent(iframeId, funcName, val) {\r\n var func = null,\r\n retVal = null\r\n\r\n if (settings[iframeId]) {\r\n func = settings[iframeId][funcName]\r\n\r\n if ('function' === typeof func) {\r\n retVal = func(val)\r\n } else {\r\n throw new TypeError(\r\n funcName + ' on iFrame[' + iframeId + '] is not a function'\r\n )\r\n }\r\n }\r\n\r\n return retVal\r\n }\r\n\r\n function removeIframeListeners(iframe) {\r\n var iframeId = iframe.id\r\n delete settings[iframeId]\r\n }\r\n\r\n function closeIFrame(iframe) {\r\n var iframeId = iframe.id\r\n\r\n try {\r\n // Catch race condition error with React\r\n if (iframe.parentNode) {\r\n iframe.parentNode.removeChild(iframe)\r\n }\r\n } catch (e) {\r\n }\r\n\r\n chkEvent(iframeId, 'onClosed', iframeId)\r\n removeIframeListeners(iframe)\r\n }\r\n\r\n function getPagePosition(iframeId) {\r\n if (null === pagePosition) {\r\n pagePosition = {\r\n x:\r\n window.pageXOffset !== undefined\r\n ? window.pageXOffset\r\n : document.documentElement.scrollLeft,\r\n y:\r\n window.pageYOffset !== undefined\r\n ? window.pageYOffset\r\n : document.documentElement.scrollTop\r\n }\r\n }\r\n }\r\n\r\n function setPagePosition(iframeId) {\r\n if (null !== pagePosition) {\r\n window.scrollTo(pagePosition.x, pagePosition.y)\r\n unsetPagePosition()\r\n }\r\n }\r\n\r\n function unsetPagePosition() {\r\n pagePosition = null\r\n }\r\n\r\n function resetIFrame(messageData) {\r\n function reset() {\r\n setSize(messageData)\r\n trigger('reset', 'reset', messageData.iframe, messageData.id)\r\n }\r\n\r\n getPagePosition(messageData.id)\r\n syncResize(reset, messageData, 'reset')\r\n }\r\n\r\n function setSize(messageData) {\r\n function setDimension(dimension) {\r\n if (!messageData.id) {\r\n return\r\n }\r\n messageData.iframe.style[dimension] = messageData[dimension] + 'px'\r\n }\r\n\r\n function chkZero(dimension) {\r\n // FireFox sets dimension of hidden iFrames to zero.\r\n // So if we detect that set up an event to check for\r\n // when iFrame becomes visible.\r\n\r\n /* istanbul ignore next */ // Not testable in PhantomJS\r\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\r\n hiddenCheckEnabled = true\r\n fixHiddenIFrames()\r\n }\r\n }\r\n\r\n function processDimension(dimension) {\r\n setDimension(dimension)\r\n chkZero(dimension)\r\n }\r\n\r\n var iframeId = messageData.iframe.id\r\n\r\n if (settings[iframeId]) {\r\n if (settings[iframeId].sizeHeight) {\r\n processDimension('height')\r\n }\r\n if (settings[iframeId].sizeWidth) {\r\n processDimension('width')\r\n }\r\n }\r\n }\r\n\r\n function syncResize(func, messageData, doNotSync) {\r\n /* istanbul ignore if */ // Not testable in PhantomJS\r\n if (doNotSync !== messageData.type && requestAnimationFrame) {\r\n requestAnimationFrame(func)\r\n } else {\r\n func()\r\n }\r\n }\r\n\r\n function trigger(calleeMsg, msg, iframe, id) {\r\n function postMessageToIFrame() {\r\n var target = settings[id] && settings[id].targetOrigin\r\n iframe.contentWindow.postMessage(msgId + msg, target)\r\n }\r\n \r\n function chkAndSend() {\r\n if (\r\n iframe &&\r\n 'contentWindow' in iframe &&\r\n null !== iframe.contentWindow\r\n ) {\r\n // Null test for PhantomJS\r\n postMessageToIFrame()\r\n } else {\r\n }\r\n }\r\n\r\n var errorShown = false\r\n\r\n id = id || iframe.id\r\n\r\n if (settings[id]) {\r\n chkAndSend()\r\n }\r\n }\r\n\r\n function createOutgoingMsg(iframeId) {\r\n return (\r\n iframeId +\r\n ':' +\r\n settings[iframeId].bodyMarginV1 +\r\n ':' +\r\n settings[iframeId].sizeWidth +\r\n ':' +\r\n settings[iframeId].interval +\r\n ':' +\r\n settings[iframeId].enablePublicMethods +\r\n ':' +\r\n settings[iframeId].autoResize +\r\n ':' +\r\n settings[iframeId].bodyMargin +\r\n ':' +\r\n settings[iframeId].heightCalculationMethod +\r\n ':' +\r\n settings[iframeId].bodyBackground +\r\n ':' +\r\n settings[iframeId].bodyPadding +\r\n ':' +\r\n settings[iframeId].tolerance +\r\n ':' +\r\n settings[iframeId].inPageLinks +\r\n ':' +\r\n settings[iframeId].resizeFrom +\r\n ':' +\r\n settings[iframeId].widthCalculationMethod\r\n )\r\n }\r\n\r\n function setupIFrame(iframe, options) {\r\n function setLimits() {\r\n function addStyle(style) {\r\n if (\r\n Infinity !== settings[iframeId][style] &&\r\n 0 !== settings[iframeId][style]\r\n ) {\r\n iframe.style[style] = settings[iframeId][style] + 'px'\r\n }\r\n }\r\n\r\n function chkMinMax(dimension) {\r\n if (\r\n settings[iframeId]['min' + dimension] >\r\n settings[iframeId]['max' + dimension]\r\n ) {\r\n throw new Error(\r\n 'Value for min' +\r\n dimension +\r\n ' can not be greater than max' +\r\n dimension\r\n )\r\n }\r\n }\r\n\r\n chkMinMax('Height')\r\n chkMinMax('Width')\r\n\r\n addStyle('maxHeight')\r\n addStyle('minHeight')\r\n addStyle('maxWidth')\r\n addStyle('minWidth')\r\n }\r\n\r\n function newId() {\r\n var id = (options && options.id) || defaults.id + count++\r\n if (null !== document.getElementById(id)) {\r\n id += count++\r\n }\r\n return id\r\n }\r\n\r\n function ensureHasId(iframeId) {\r\n if ('' === iframeId) {\r\n // eslint-disable-next-line no-multi-assign\r\n iframe.id = iframeId = newId()\r\n }\r\n\r\n return iframeId\r\n }\r\n\r\n function setScrolling() {\r\n iframe.style.overflow =\r\n false === (settings[iframeId] && settings[iframeId].scrolling)\r\n ? 'hidden'\r\n : 'auto'\r\n switch (settings[iframeId] && settings[iframeId].scrolling) {\r\n case 'omit':\r\n break\r\n\r\n case true:\r\n iframe.scrolling = 'yes'\r\n break\r\n\r\n case false:\r\n iframe.scrolling = 'no'\r\n break\r\n\r\n default:\r\n iframe.scrolling = settings[iframeId]\r\n ? settings[iframeId].scrolling\r\n : 'no'\r\n }\r\n }\r\n\r\n // The V1 iFrame script expects an int, where as in V2 expects a CSS\r\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\r\n // and then convert V2 to a string PX value.\r\n function setupBodyMarginValues() {\r\n if (\r\n 'number' ===\r\n typeof (settings[iframeId] && settings[iframeId].bodyMargin) ||\r\n '0' === (settings[iframeId] && settings[iframeId].bodyMargin)\r\n ) {\r\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin\r\n settings[iframeId].bodyMargin =\r\n '' + settings[iframeId].bodyMargin + 'px'\r\n }\r\n }\r\n\r\n function checkReset() {\r\n // Reduce scope of firstRun to function, because IE8's JS execution\r\n // context stack is borked and this value gets externally\r\n // changed midway through running this function!!!\r\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\r\n resetRequertMethod =\r\n settings[iframeId] &&\r\n settings[iframeId].heightCalculationMethod in resetRequiredMethods\r\n\r\n if (!firstRun && resetRequertMethod) {\r\n resetIFrame({ iframe: iframe, height: 0, width: 0, type: 'init' })\r\n }\r\n }\r\n\r\n function setupIFrameObject() {\r\n if (settings[iframeId]) {\r\n settings[iframeId].iframe.iFrameResizer = {\r\n close: closeIFrame.bind(null, settings[iframeId].iframe),\r\n\r\n removeListeners: removeIframeListeners.bind(\r\n null,\r\n settings[iframeId].iframe\r\n ),\r\n\r\n resize: trigger.bind(\r\n null,\r\n 'Window resize',\r\n 'resize',\r\n settings[iframeId].iframe\r\n ),\r\n\r\n moveToAnchor: function (anchor) {\r\n trigger(\r\n 'Move to anchor',\r\n 'moveToAnchor:' + anchor,\r\n settings[iframeId].iframe,\r\n iframeId\r\n )\r\n },\r\n\r\n sendMessage: function (message) {\r\n message = JSON.stringify(message)\r\n trigger(\r\n 'Send Message',\r\n 'message:' + message,\r\n settings[iframeId].iframe,\r\n iframeId\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n // We have to call trigger twice, as we can not be sure if all\r\n // iframes have completed loading when this code runs. The\r\n // event listener also catches the page changing in the iFrame.\r\n function init(msg) {\r\n function iFrameLoaded() {\r\n trigger('iFrame.onload', msg, iframe, undefined, true)\r\n checkReset()\r\n }\r\n\r\n function createDestroyObserver(MutationObserver) {\r\n if (!iframe.parentNode) {\r\n return\r\n }\r\n\r\n var destroyObserver = new MutationObserver(function (mutations) {\r\n mutations.forEach(function (mutation) {\r\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes) // Transform NodeList into an Array\r\n removedNodes.forEach(function (removedNode) {\r\n if (removedNode === iframe) {\r\n closeIFrame(iframe)\r\n }\r\n })\r\n })\r\n })\r\n destroyObserver.observe(iframe.parentNode, {\r\n childList: true\r\n })\r\n }\r\n\r\n var MutationObserver = getMutationObserver()\r\n if (MutationObserver) {\r\n createDestroyObserver(MutationObserver)\r\n }\r\n\r\n addEventListener(iframe, 'load', iFrameLoaded)\r\n trigger('init', msg, iframe, undefined, true)\r\n }\r\n\r\n function checkOptions(options) {\r\n if ('object' !== typeof options) {\r\n throw new TypeError('Options is not an object')\r\n }\r\n }\r\n\r\n function copyOptions(options) {\r\n // eslint-disable-next-line no-restricted-syntax\r\n for (var option in defaults) {\r\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\r\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(\r\n options,\r\n option\r\n )\r\n ? options[option]\r\n : defaults[option]\r\n }\r\n }\r\n }\r\n\r\n function getTargetOrigin(remoteHost) {\r\n return '' === remoteHost || 'file://' === remoteHost ? '*' : remoteHost\r\n }\r\n\r\n function depricate(key) {\r\n var splitName = key.split('Callback')\r\n\r\n if (splitName.length === 2) {\r\n var name =\r\n 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1)\r\n this[name] = this[key]\r\n delete this[key]\r\n }\r\n }\r\n\r\n function processOptions(options) {\r\n options = options || {}\r\n settings[iframeId] = {\r\n firstRun: true,\r\n iframe: iframe,\r\n remoteHost: iframe.src\r\n .split('/')\r\n .slice(0, 3)\r\n .join('/')\r\n }\r\n\r\n checkOptions(options)\r\n Object.keys(options).forEach(depricate, options)\r\n copyOptions(options)\r\n\r\n if (settings[iframeId]) {\r\n settings[iframeId].targetOrigin =\r\n true === settings[iframeId].checkOrigin\r\n ? getTargetOrigin(settings[iframeId].remoteHost)\r\n : '*'\r\n }\r\n }\r\n\r\n function beenHere() {\r\n return iframeId in settings && 'iFrameResizer' in iframe\r\n }\r\n\r\n var iframeId = ensureHasId(iframe.id)\r\n\r\n if (!beenHere()) {\r\n processOptions(options)\r\n setScrolling()\r\n setLimits()\r\n setupBodyMarginValues()\r\n init(createOutgoingMsg(iframeId))\r\n setupIFrameObject()\r\n }\r\n }\r\n\r\n function debouce(fn, time) {\r\n if (null === timer) {\r\n timer = setTimeout(function () {\r\n timer = null\r\n fn()\r\n }, time)\r\n }\r\n }\r\n\r\n var frameTimer = {}\r\n function debounceFrameEvents(fn, time, frameId) {\r\n if (!frameTimer[frameId]) {\r\n frameTimer[frameId] = setTimeout(function () {\r\n frameTimer[frameId] = null\r\n fn()\r\n }, time)\r\n }\r\n }\r\n\r\n // Not testable in PhantomJS\r\n /* istanbul ignore next */\r\n\r\n function fixHiddenIFrames() {\r\n function checkIFrames() {\r\n function checkIFrame(settingId) {\r\n function chkDimension(dimension) {\r\n return (\r\n '0px' ===\r\n (settings[settingId] && settings[settingId].iframe.style[dimension])\r\n )\r\n }\r\n\r\n function isVisible(el) {\r\n return null !== el.offsetParent\r\n }\r\n\r\n if (\r\n settings[settingId] &&\r\n isVisible(settings[settingId].iframe) &&\r\n (chkDimension('height') || chkDimension('width'))\r\n ) {\r\n trigger(\r\n 'Visibility change',\r\n 'resize',\r\n settings[settingId].iframe,\r\n settingId\r\n )\r\n }\r\n }\r\n\r\n Object.keys(settings).forEach(function (key) {\r\n checkIFrame(settings[key])\r\n })\r\n }\r\n\r\n function mutationObserved(mutations) {\r\n debouce(checkIFrames, 16)\r\n }\r\n\r\n function createMutationObserver() {\r\n var target = document.querySelector('body'),\r\n config = {\r\n attributes: true,\r\n attributeOldValue: false,\r\n characterData: true,\r\n characterDataOldValue: false,\r\n childList: true,\r\n subtree: true\r\n },\r\n observer = new MutationObserver(mutationObserved)\r\n\r\n observer.observe(target, config)\r\n }\r\n\r\n var MutationObserver = getMutationObserver()\r\n if (MutationObserver) {\r\n createMutationObserver()\r\n }\r\n }\r\n\r\n function resizeIFrames(event) {\r\n function resize() {\r\n sendTriggerMsg('Window ' + event, 'resize')\r\n }\r\n\r\n debouce(resize, 16)\r\n }\r\n\r\n // Not testable in PhantomJS\r\n /* istanbul ignore next */\r\n function tabVisible() {\r\n function resize() {\r\n sendTriggerMsg('Tab Visable', 'resize')\r\n }\r\n\r\n if ('hidden' !== document.visibilityState) {\r\n debouce(resize, 16)\r\n }\r\n }\r\n\r\n function sendTriggerMsg(eventName, event) {\r\n function isIFrameResizeEnabled(iframeId) {\r\n return (\r\n settings[iframeId] &&\r\n 'parent' === settings[iframeId].resizeFrom &&\r\n settings[iframeId].autoResize &&\r\n !settings[iframeId].firstRun\r\n )\r\n }\r\n\r\n Object.keys(settings).forEach(function (iframeId) {\r\n if (isIFrameResizeEnabled(iframeId)) {\r\n trigger(eventName, event, document.getElementById(iframeId), iframeId)\r\n }\r\n })\r\n }\r\n\r\n function setupEventListeners() {\r\n addEventListener(window, 'message', iFrameListener)\r\n\r\n addEventListener(window, 'resize', function () {\r\n resizeIFrames('resize')\r\n })\r\n\r\n addEventListener(document, 'visibilitychange', tabVisible)\r\n\r\n addEventListener(document, '-webkit-visibilitychange', tabVisible)\r\n }\r\n\r\n function factory() {\r\n function init(options, element) {\r\n function chkType() {\r\n if (!element.tagName) {\r\n throw new TypeError('Object is not a valid DOM element')\r\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\r\n throw new TypeError(\r\n 'Expected