{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/packs/widgets.ts","webpack:///./node_modules/iframe-resizer/js/iframeResizer.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","loaded","currentUrl","URL","document","location","lang","searchParams","window","split","host","contactWidgetContainer","getElementById","contactWidgetUrl","set","contactIframeStyle","createElement","innerHTML","head","append","contactIframe","setAttribute","href","setTimeout","log","meetWidgetUrl","meetWidgetButtons","querySelectorAll","length","forEach","btn","meetIframeStyle","meetIframe","body","reloadIframe","iframe","src","iframeContainer","parentElement","remove","bodyStyle","getAttribute","addEventListener","e","eventObject","JSON","parse","data","eventType","eventName","hash","historyTotal","history","go","includes","pathname","closedEvent","error","open","scrollTop","contentWindow","focus","pushState","title","search","readyState","_typeof","iterator","obj","constructor","undefined","$","count","logEnabled","hiddenCheckEnabled","msgHeaderLen","msgId","msgIdLen","pagePosition","requestAnimationFrame","resetRequiredMethods","max","scroll","bodyScroll","documentElementScroll","settings","timer","defaults","autoResize","bodyBackground","bodyMargin","bodyMarginV1","bodyPadding","checkOrigin","inPageLinks","enablePublicMethods","heightCalculationMethod","id","interval","maxHeight","Infinity","maxWidth","minHeight","minWidth","mouseEvents","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClose","onClosed","onInit","onMessage","warn","onMouseEnter","onMouseLeave","onResized","onScroll","frameTimer","jQuery","fn","iFrameResize","options","this","filter","each","index","element","setupIFrame","end","info","factory","getMutationObserver","MutationObserver","WebKitMutationObserver","MozMutationObserver","el","evt","func","removeEventListener","formatLogHeader","iframeId","retStr","top","self","parentIFrame","getId","getMyID","isLogEnabled","msg","output","type","enabled","console","iFrameListener","event","resizeIFrame","ensureInRange","syncResize","setSize","messageData","setPagePosition","on","getPaddingEnds","compStyle","boxSizing","paddingTop","parseInt","paddingBottom","getBorderEnds","borderTopWidth","borderBottomWidth","Dimension","Number","min","dimension","toLowerCase","size","getMsgBody","offset","substr","indexOf","sendPageInfoToIframe","time","frameId","bodyPosition","iFramePosition","trigger","getBoundingClientRect","stringify","iframeHeight","height","iframeWidth","width","clientHeight","Math","documentElement","innerHeight","clientWidth","innerWidth","offsetTop","offsetLeft","left","pageYOffset","scrollLeft","pageXOffset","documentHeight","documentWidth","windowHeight","windowWidth","getElementPosition","target","getPagePosition","x","floor","y","scrollRequestFromChild","addOffset","newPosition","scrollTo","unsetPagePosition","onMouse","mousePos","screenX","screenY","funcName","val","chkEvent","retBool","retCode","createOutgoingMsg","iFrameReadyMsgReceived","getComputedStyle","true","false","hasSettings","remoteHost","origin","Array","checkList","Error","isMessageFromIFrame","firstRun","closeIFrame","msgBody","message","setListener","sendPageInfo","stop","stopPageInfo","startPageInfoMonitor","jumpPosition","hashData","decodeURIComponent","getElementsByName","moveToAnchor","findTarget","resetIFrame","actionMsg","retVal","TypeError","removeIframeListeners","parentNode","removeChild","chkZero","checkIFrames","keys","settingId","chkDimension","style","offsetParent","checkIFrame","mutationObserved","mutations","debouce","querySelector","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","fixHiddenIFrames","processDimension","setDimension","doNotSync","jasmine","calleeMsg","noResponseWarning","errorShown","targetOrigin","postMessage","msgTimeout","depricate","splitName","charAt","toUpperCase","slice","ensureHasId","join","checkOptions","option","copyOptions","match","processOptions","overflow","setScrolling","addStyle","styleValue","chkMinMax","setLimits","mutation","removedNodes","removedNode","createDestroyObserver","resetRequertMethod","iFrameResizer","close","removeListeners","resize","anchor","sendMessage","tabVisible","visibilityState","sendTriggerMsg","isIFrameResizeEnabled","setupEventListeners","init","tagName","chkType","iFrames","push","vendors","setupRequestAnimationFrame","warnDeprecatedOptions"],"mappings":"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","file":"js/widgets.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"https://demos-api.nyc3.cdn.digitaloceanspaces.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 150);\n","import 'iframe-resizer/js/iframeResizer';\n\n(function() {\n const loaded = function() {\n const currentUrl = new URL(`${document.location}`);\n const lang =\n currentUrl.searchParams.get('locale') ||\n currentUrl.searchParams.get(\n 'com.veriday.digitalagent.web.locale.override'\n ) || window['locale'];\n window['locale'] = lang ?\n lang.split('_')[0] :\n window.location.host === 'www1.digitalagent.ca' ? 'en' : 'fr';\n\n const contactWidgetContainer =\n document.getElementById('contact-widget-container');\n\n if (contactWidgetContainer) {\n const contactWidgetUrl = new URL(\n window['contactWidgetUrl'] || 'https://widgets.demos-rj.com/contact'\n );\n\n contactWidgetUrl.searchParams.set(\n 'locale', window['locale'].split('_')[0]\n );\n\n const contactIframeStyle = document.createElement('style');\n contactIframeStyle.innerHTML = `#contact-widget {\nwidth: 1px !important;\nmin-width: 100% !important;\noverflow: hidden !important;\noverflow-y: auto !important;\noutline: 0 !important;\nborder: none !important;\n}`;\n document.head.append(contactIframeStyle);\n\n const contactIframe =\n document.createElement('iframe') as HTMLIFrameElement;\n contactIframe.setAttribute('id', 'contact-widget');\n contactIframe.setAttribute('src', contactWidgetUrl.href);\n contactWidgetContainer.innerHTML = '';\n contactWidgetContainer.append(contactIframe);\n\n setTimeout(\n () => window['iFrameResize']({ log: false }, '#contact-widget')\n , 1000\n );\n }\n\n // Meet\n const meetWidgetUrl = new URL(\n window['meetWidgetUrl'] || 'https://widgets.demos-rj.com/meet'\n );\n\n const meetWidgetButtons = document.querySelectorAll(\n `a[href=\"${meetWidgetUrl.href}\"]`\n ) as NodeListOf;\n\n meetWidgetUrl.searchParams.set('locale', window['locale'].split('_')[0]);\n\n if (meetWidgetButtons.length) {\n meetWidgetButtons.forEach(\n (btn) => btn.setAttribute('href', '#meetWidget')\n );\n\n const meetIframeStyle = document.createElement('style');\n meetIframeStyle.innerHTML = `#meet-widget {\nposition: fixed !important;\ntop: 0 !important;\nleft: 0 !important;\nwidth: 100% !important;\nheight: 100% !important;\noverflow: hidden !important;\noverflow-y: auto !important;\noutline: 0 !important;\nopacity: 1 !important;\nz-index: 3000 !important;\nbackground-color: rgba(0, 0, 0, 0.95) !important;\nborder: none !important;\n}\n#meet-widget[aria-hidden=\"true\"] {\ntransition: opacity 0.5s !important;\nopacity: 0 !important;\nz-index: -1 !important;\nleft: -100vw !important;\n}\n#meet-widget[aria-hidden=\"false\"] {\ntransition: opacity 0.5s !important;\n}`;\n document.head.append(meetIframeStyle);\n\n const meetIframe =\n document.createElement('iframe') as HTMLIFrameElement;\n meetIframe.setAttribute('id', 'meet-widget');\n meetIframe.setAttribute('aria-hidden', 'true');\n document.body.append(meetIframe);\n\n const reloadIframe = function(iframe: HTMLIFrameElement, src: string) {\n const iframeContainer = iframe.parentElement;\n iframe.remove();\n iframe.setAttribute('src', src);\n iframeContainer.append(iframe);\n }\n\n const bodyStyle = document.body.getAttribute('style') || '';\n const toggleIframe = function(iframe: HTMLIFrameElement) {\n const open = location.hash === '#meetWidget';\n iframe.setAttribute('aria-hidden', `${!open}`);\n document.body.setAttribute(\n 'style',\n open ? 'overflow: hidden;' + bodyStyle : bodyStyle\n );\n\n if (open) {\n iframe.scrollTop = 0;\n iframe.contentWindow.focus();\n reloadIframe(iframe, meetWidgetUrl.href);\n } else {\n setTimeout(\n () => reloadIframe(iframe, '')\n , 1000\n );\n\n if (window['gtag']) {\n window['gtag'](\n 'config',\n window['GOOGLE_ANALYTICS_ID'],\n { 'page_path': location.pathname }\n );\n }\n }\n }\n\n window.addEventListener('message', function(e) {\n try {\n let eventObject = JSON.parse(e.data);\n\n switch (eventObject.eventType) {\n case 'meet':\n switch (eventObject.eventName) {\n case 'close':\n if (location.hash === '#meetWidget') {\n const historyTotal = eventObject.data.historyTotal;\n setTimeout(\n function() { window.history.go(-historyTotal); } \n );\n }\n break;\n\n case 'step':\n\n break;\n\n default:\n break;\n }\n break;\n\n case 'video':\n const analyticsEvents: string[] = [\n 'start', 'pause', 'seek', 'watchedFirstQuarter', 'watchedHalf',\n 'watchedThirdQuarter', 'watchedFull'\n ];\n\n if (\n window['gtag'] && analyticsEvents.includes(eventObject.eventName)\n ) {\n window['gtag'](\n 'event',\n `video:${eventObject.eventName}`,\n {\n 'event_category': 'video',\n 'event_label': window.location.pathname\n }\n );\n }\n break;\n\n default:\n break;\n }\n\n if (eventObject.closedEvent && location.hash === '#meetWidget') {\n const historyTotal = eventObject.historyTotal;\n setTimeout(\n function() { window.history.go(-historyTotal); } \n );\n }\n } catch(error) {\n // console.log(error);\n }\n });\n\n window.addEventListener('hashchange', function() {\n toggleIframe(meetIframe);\n }, false);\n if (location.hash === '#meetWidget') {\n history.pushState(\n '',\n document.title,\n window.location.pathname + window.location.search\n );\n }\n }\n }\n\n if (document.readyState !== 'loading') {\n loaded();\n } else {\n document.addEventListener('DOMContentLoaded', loaded);\n }\n})();\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\n * File: iframeResizer.js\n * Desc: Force iframes to size to content.\n * Requires: iframeResizer.contentWindow.js to be loaded into the target frame.\n * Doc: https://github.com/davidjbradshaw/iframe-resizer\n * Author: David J. Bradshaw - dave@bradshaw.net\n * Contributor: Jure Mav - jure.mav@gmail.com\n * Contributor: Reed Dadoune - reed@dadoune.com\n */\n// eslint-disable-next-line sonarjs/cognitive-complexity, no-shadow-restricted-names\n;\n\n(function (undefined) {\n if (typeof window === 'undefined') return; // don't run for server side render\n\n var count = 0,\n logEnabled = false,\n hiddenCheckEnabled = false,\n msgHeader = 'message',\n msgHeaderLen = msgHeader.length,\n msgId = '[iFrameSizer]',\n // Must match iframe msg ID\n msgIdLen = msgId.length,\n pagePosition = null,\n requestAnimationFrame = window.requestAnimationFrame,\n resetRequiredMethods = {\n max: 1,\n scroll: 1,\n bodyScroll: 1,\n documentElementScroll: 1\n },\n settings = {},\n timer = null,\n defaults = {\n autoResize: true,\n bodyBackground: null,\n bodyMargin: null,\n bodyMarginV1: 8,\n bodyPadding: null,\n checkOrigin: true,\n inPageLinks: false,\n enablePublicMethods: true,\n heightCalculationMethod: 'bodyOffset',\n id: 'iFrameResizer',\n interval: 32,\n log: false,\n maxHeight: Infinity,\n maxWidth: Infinity,\n minHeight: 0,\n minWidth: 0,\n 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 onClose() {\n return true;\n },\n onClosed: function onClosed() {},\n onInit: function onInit() {},\n onMessage: function onMessage() {\n warn('onMessage function not defined');\n },\n onMouseEnter: function onMouseEnter() {},\n onMouseLeave: function onMouseLeave() {},\n onResized: function onResized() {},\n onScroll: function onScroll() {\n return true;\n }\n };\n\n function getMutationObserver() {\n return window.MutationObserver || window.WebKitMutationObserver || window.MozMutationObserver;\n }\n\n function addEventListener(el, evt, func) {\n el.addEventListener(evt, func, false);\n }\n\n function removeEventListener(el, evt, func) {\n el.removeEventListener(evt, func, false);\n }\n\n function setupRequestAnimationFrame() {\n var vendors = ['moz', 'webkit', 'o', 'ms'];\n var x; // Remove vendor prefixing if prefixed and break early if not\n\n for (x = 0; x < vendors.length && !requestAnimationFrame; x += 1) {\n requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];\n }\n\n if (!requestAnimationFrame) {\n log('setup', 'RequestAnimationFrame not supported');\n } else {\n // Firefox extension content-scripts have a globalThis object that is not the same as window.\n // Binding `requestAnimationFrame` to window allows the function to work and prevents errors\n // being thrown when run in that context, and should be a no-op in every other context.\n requestAnimationFrame = requestAnimationFrame.bind(window);\n }\n }\n\n function getMyID(iframeId) {\n var retStr = 'Host page: ' + iframeId;\n\n if (window.top !== window.self) {\n retStr = window.parentIFrame && window.parentIFrame.getId ? window.parentIFrame.getId() + ': ' + iframeId : '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 syncResize(resize, messageData, 'init');\n }\n\n function processMsg() {\n var data = msg.substr(msgIdLen).split(':');\n var height = data[1] ? parseInt(data[1], 10) : 0;\n var iframe = settings[data[0]] && settings[data[0]].iframe;\n var compStyle = getComputedStyle(iframe);\n return {\n iframe: iframe,\n id: data[0],\n height: height + getPaddingEnds(compStyle) + getBorderEnds(compStyle),\n width: data[2],\n type: data[3]\n };\n }\n\n function getPaddingEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n\n var top = compStyle.paddingTop ? parseInt(compStyle.paddingTop, 10) : 0;\n var bot = compStyle.paddingBottom ? parseInt(compStyle.paddingBottom, 10) : 0;\n return top + bot;\n }\n\n function getBorderEnds(compStyle) {\n if (compStyle.boxSizing !== 'border-box') {\n return 0;\n }\n\n var top = compStyle.borderTopWidth ? parseInt(compStyle.borderTopWidth, 10) : 0;\n var bot = compStyle.borderBottomWidth ? parseInt(compStyle.borderBottomWidth, 10) : 0;\n return top + bot;\n }\n\n function ensureInRange(Dimension) {\n var max = Number(settings[iframeId]['max' + Dimension]),\n min = Number(settings[iframeId]['min' + Dimension]),\n dimension = Dimension.toLowerCase(),\n size = Number(messageData[dimension]);\n log(iframeId, 'Checking ' + dimension + ' is in range ' + min + '-' + max);\n\n if (size < min) {\n size = min;\n log(iframeId, 'Set ' + dimension + ' to min value');\n }\n\n if (size > max) {\n size = max;\n log(iframeId, 'Set ' + dimension + ' to max value');\n }\n\n messageData[dimension] = '' + size;\n }\n\n function isMessageFromIFrame() {\n function checkAllowedOrigin() {\n function checkList() {\n var i = 0,\n retCode = false;\n log(iframeId, 'Checking connection is from allowed list of origins: ' + checkOrigin);\n\n for (; i < checkOrigin.length; i++) {\n if (checkOrigin[i] === origin) {\n retCode = true;\n break;\n }\n }\n\n return retCode;\n }\n\n function checkSingle() {\n var remoteHost = settings[iframeId] && settings[iframeId].remoteHost;\n log(iframeId, 'Checking connection is from: ' + remoteHost);\n return origin === remoteHost;\n }\n\n return checkOrigin.constructor === Array ? checkList() : checkSingle();\n }\n\n var origin = event.origin,\n checkOrigin = settings[iframeId] && settings[iframeId].checkOrigin;\n\n if (checkOrigin && '' + origin !== 'null' && !checkAllowedOrigin()) {\n throw new Error('Unexpected message received from: ' + origin + ' for ' + messageData.iframe.id + '. Message was: ' + event.data + '. This error can be disabled by setting the checkOrigin: false option or by providing of array of trusted domains.');\n }\n\n return true;\n }\n\n function isMessageForUs() {\n return msgId === ('' + msg).substr(0, msgIdLen) && msg.substr(msgIdLen).split(':')[0] in settings; // ''+Protects against non-string msg\n }\n\n function isMessageFromMetaParent() {\n // Test if this message is from a parent above us. This is an ugly test, however, updating\n // the message format would break backwards compatibity.\n var retCode = (messageData.type in {\n true: 1,\n false: 1,\n undefined: 1\n });\n\n if (retCode) {\n log(iframeId, 'Ignoring init message from meta parent page');\n }\n\n return retCode;\n }\n\n function getMsgBody(offset) {\n return msg.substr(msg.indexOf(':') + msgHeaderLen + offset);\n }\n\n function forwardMsgFromIFrame(msgBody) {\n log(iframeId, 'onMessage passed: {iframe: ' + messageData.iframe.id + ', message: ' + msgBody + '}');\n on('onMessage', {\n iframe: messageData.iframe,\n message: JSON.parse(msgBody)\n });\n log(iframeId, '--');\n }\n\n function getPageInfo() {\n var bodyPosition = document.body.getBoundingClientRect(),\n iFramePosition = messageData.iframe.getBoundingClientRect();\n return JSON.stringify({\n iframeHeight: iFramePosition.height,\n iframeWidth: iFramePosition.width,\n clientHeight: Math.max(document.documentElement.clientHeight, window.innerHeight || 0),\n clientWidth: Math.max(document.documentElement.clientWidth, window.innerWidth || 0),\n offsetTop: parseInt(iFramePosition.top - bodyPosition.top, 10),\n offsetLeft: parseInt(iFramePosition.left - bodyPosition.left, 10),\n scrollTop: window.pageYOffset,\n scrollLeft: window.pageXOffset,\n documentHeight: document.documentElement.clientHeight,\n documentWidth: document.documentElement.clientWidth,\n windowHeight: window.innerHeight,\n windowWidth: window.innerWidth\n });\n }\n\n function sendPageInfoToIframe(iframe, iframeId) {\n function debouncedTrigger() {\n trigger('Send Page Info', 'pageInfo:' + getPageInfo(), iframe, iframeId);\n }\n\n debounceFrameEvents(debouncedTrigger, 32, iframeId);\n }\n\n function startPageInfoMonitor() {\n function setListener(type, func) {\n function sendPageInfo() {\n if (settings[id]) {\n sendPageInfoToIframe(settings[id].iframe, id);\n } else {\n stop();\n }\n }\n\n ;\n ['scroll', 'resize'].forEach(function (evt) {\n log(id, type + evt + ' listener for sendPageInfo');\n func(window, evt, sendPageInfo);\n });\n }\n\n function stop() {\n setListener('Remove ', removeEventListener);\n }\n\n function start() {\n setListener('Add ', addEventListener);\n }\n\n var id = iframeId; // Create locally scoped copy of iFrame ID\n\n start();\n\n if (settings[id]) {\n settings[id].stopPageInfo = stop;\n }\n }\n\n function stopPageInfoMonitor() {\n if (settings[iframeId] && settings[iframeId].stopPageInfo) {\n settings[iframeId].stopPageInfo();\n delete settings[iframeId].stopPageInfo;\n }\n }\n\n function checkIFrameExists() {\n var retBool = true;\n\n if (null === messageData.iframe) {\n warn(iframeId, 'IFrame (' + messageData.id + ') not found');\n retBool = false;\n }\n\n return retBool;\n }\n\n function getElementPosition(target) {\n var iFramePosition = target.getBoundingClientRect();\n getPagePosition(iframeId);\n return {\n x: Math.floor(Number(iFramePosition.left) + Number(pagePosition.x)),\n y: Math.floor(Number(iFramePosition.top) + Number(pagePosition.y))\n };\n }\n\n function scrollRequestFromChild(addOffset) {\n /* istanbul ignore next */\n // Not testable in Karma\n function reposition() {\n pagePosition = newPosition;\n scrollTo();\n log(iframeId, '--');\n }\n\n function calcOffset() {\n return {\n x: Number(messageData.width) + offset.x,\n y: Number(messageData.height) + offset.y\n };\n }\n\n function scrollParent() {\n if (window.parentIFrame) {\n window.parentIFrame['scrollTo' + (addOffset ? 'Offset' : '')](newPosition.x, newPosition.y);\n } else {\n warn(iframeId, 'Unable to scroll to requested position, window.parentIFrame not found');\n }\n }\n\n var offset = addOffset ? getElementPosition(messageData.iframe) : {\n x: 0,\n y: 0\n },\n newPosition = calcOffset();\n log(iframeId, 'Reposition requested from iFrame (offset x:' + offset.x + ' y:' + offset.y + ')');\n\n if (window.top !== window.self) {\n scrollParent();\n } else {\n reposition();\n }\n }\n\n function scrollTo() {\n if (false !== on('onScroll', pagePosition)) {\n setPagePosition(iframeId);\n } else {\n unsetPagePosition();\n }\n }\n\n function findTarget(location) {\n function jumpToTarget() {\n var jumpPosition = getElementPosition(target);\n log(iframeId, 'Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);\n pagePosition = {\n x: jumpPosition.x,\n y: jumpPosition.y\n };\n scrollTo();\n log(iframeId, '--');\n }\n\n function jumpToParent() {\n if (window.parentIFrame) {\n window.parentIFrame.moveToAnchor(hash);\n } else {\n log(iframeId, 'In page link #' + hash + ' not found and window.parentIFrame not found');\n }\n }\n\n var hash = location.split('#')[1] || '',\n hashData = decodeURIComponent(hash),\n target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\n\n if (target) {\n jumpToTarget();\n } else if (window.top !== window.self) {\n jumpToParent();\n } else {\n log(iframeId, 'In page link #' + hash + ' not found');\n }\n }\n\n function onMouse(event) {\n var mousePos = {};\n\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n var data = getMsgBody(9).split(':');\n mousePos = {\n x: data[1],\n y: data[0]\n };\n } else {\n mousePos = {\n x: messageData.width,\n y: messageData.height\n };\n }\n\n on(event, {\n iframe: messageData.iframe,\n screenX: Number(mousePos.x),\n screenY: Number(mousePos.y),\n type: messageData.type\n });\n }\n\n function on(funcName, val) {\n return chkEvent(iframeId, funcName, val);\n }\n\n function actionMsg() {\n if (settings[iframeId] && settings[iframeId].firstRun) firstRun();\n\n switch (messageData.type) {\n case 'close':\n closeIFrame(messageData.iframe);\n break;\n\n case 'message':\n forwardMsgFromIFrame(getMsgBody(6));\n break;\n\n case 'mouseenter':\n onMouse('onMouseEnter');\n break;\n\n case 'mouseleave':\n onMouse('onMouseLeave');\n break;\n\n case 'autoResize':\n settings[iframeId].autoResize = JSON.parse(getMsgBody(9));\n break;\n\n case 'scrollTo':\n scrollRequestFromChild(false);\n break;\n\n case 'scrollToOffset':\n scrollRequestFromChild(true);\n break;\n\n case 'pageInfo':\n sendPageInfoToIframe(settings[iframeId] && settings[iframeId].iframe, iframeId);\n startPageInfoMonitor();\n break;\n\n case 'pageInfoStop':\n stopPageInfoMonitor();\n break;\n\n case 'inPageLink':\n findTarget(getMsgBody(9));\n break;\n\n case 'reset':\n resetIFrame(messageData);\n break;\n\n case 'init':\n resizeIFrame();\n on('onInit', messageData.iframe);\n break;\n\n default:\n if (Number(messageData.width) === 0 && Number(messageData.height) === 0) {\n warn('Unsupported message received (' + messageData.type + '), this is likely due to the iframe containing a later ' + 'version of iframe-resizer than the parent page');\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(messageData.type + ' No settings for ' + iframeId + '. Message was: ' + msg);\n }\n\n return retBool;\n }\n\n function iFrameReadyMsgReceived() {\n // eslint-disable-next-line no-restricted-syntax, guard-for-in\n for (var iframeId in settings) {\n trigger('iFrame requested init', createOutgoingMsg(iframeId), settings[iframeId].iframe, iframeId);\n }\n }\n\n function firstRun() {\n if (settings[iframeId]) {\n settings[iframeId].firstRun = false;\n }\n }\n\n var msg = event.data,\n messageData = {},\n iframeId = null;\n\n if ('[iFrameResizerChild]Ready' === msg) {\n iFrameReadyMsgReceived();\n } else if (isMessageForUs()) {\n messageData = processMsg();\n iframeId = messageData.id;\n\n if (settings[iframeId]) {\n settings[iframeId].loaded = true;\n }\n\n if (!isMessageFromMetaParent() && hasSettings(iframeId)) {\n log(iframeId, 'Received: ' + msg);\n\n if (checkIFrameExists() && isMessageFromIFrame()) {\n actionMsg();\n }\n }\n } else {\n info(iframeId, 'Ignored: ' + msg);\n }\n }\n\n function chkEvent(iframeId, funcName, val) {\n var func = null,\n retVal = null;\n\n if (settings[iframeId]) {\n func = settings[iframeId][funcName];\n\n if ('function' === typeof func) {\n retVal = func(val);\n } else {\n throw new TypeError(funcName + ' on iFrame[' + iframeId + '] is not a function');\n }\n }\n\n return retVal;\n }\n\n function removeIframeListeners(iframe) {\n var iframeId = iframe.id;\n delete settings[iframeId];\n }\n\n function closeIFrame(iframe) {\n var iframeId = iframe.id;\n\n if (chkEvent(iframeId, 'onClose', iframeId) === false) {\n log(iframeId, 'Close iframe cancelled by onClose event');\n return;\n }\n\n log(iframeId, 'Removing iFrame: ' + iframeId);\n\n try {\n // Catch race condition error with React\n if (iframe.parentNode) {\n iframe.parentNode.removeChild(iframe);\n }\n } catch (error) {\n warn(error);\n }\n\n chkEvent(iframeId, 'onClosed', iframeId);\n log(iframeId, '--');\n removeIframeListeners(iframe);\n }\n\n function getPagePosition(iframeId) {\n if (null === pagePosition) {\n pagePosition = {\n x: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,\n y: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop\n };\n log(iframeId, 'Get page position: ' + pagePosition.x + ',' + pagePosition.y);\n }\n }\n\n function setPagePosition(iframeId) {\n if (null !== pagePosition) {\n window.scrollTo(pagePosition.x, pagePosition.y);\n log(iframeId, 'Set page position: ' + pagePosition.x + ',' + pagePosition.y);\n unsetPagePosition();\n }\n }\n\n function unsetPagePosition() {\n pagePosition = null;\n }\n\n function resetIFrame(messageData) {\n function reset() {\n setSize(messageData);\n trigger('reset', 'reset', messageData.iframe, messageData.id);\n }\n\n log(messageData.id, 'Size reset requested by ' + ('init' === messageData.type ? 'host page' : 'iFrame'));\n getPagePosition(messageData.id);\n syncResize(reset, messageData, 'reset');\n }\n\n function setSize(messageData) {\n function setDimension(dimension) {\n if (!messageData.id) {\n log('undefined', 'messageData id not set');\n return;\n }\n\n messageData.iframe.style[dimension] = messageData[dimension] + 'px';\n log(messageData.id, 'IFrame (' + iframeId + ') ' + dimension + ' set to ' + messageData[dimension] + 'px');\n }\n\n function chkZero(dimension) {\n // FireFox sets dimension of hidden iFrames to zero.\n // So if we detect that set up an event to check for\n // when iFrame becomes visible.\n\n /* istanbul ignore next */\n // Not testable in PhantomJS\n if (!hiddenCheckEnabled && '0' === messageData[dimension]) {\n hiddenCheckEnabled = true;\n log(iframeId, 'Hidden iFrame detected, creating visibility listener');\n fixHiddenIFrames();\n }\n }\n\n function processDimension(dimension) {\n setDimension(dimension);\n chkZero(dimension);\n }\n\n var iframeId = messageData.iframe.id;\n\n if (settings[iframeId]) {\n if (settings[iframeId].sizeHeight) {\n processDimension('height');\n }\n\n if (settings[iframeId].sizeWidth) {\n processDimension('width');\n }\n }\n }\n\n function syncResize(func, messageData, doNotSync) {\n /* istanbul ignore if */\n // Not testable in PhantomJS\n if (doNotSync !== messageData.type && requestAnimationFrame && // including check for jasmine because had trouble getting spy to work in unit test using requestAnimationFrame\n !window.jasmine) {\n log(messageData.id, 'Requesting animation frame');\n requestAnimationFrame(func);\n } else {\n func();\n }\n }\n\n function trigger(calleeMsg, msg, iframe, id, noResponseWarning) {\n function postMessageToIFrame() {\n var target = settings[id] && settings[id].targetOrigin;\n log(id, '[' + calleeMsg + '] Sending msg to iframe[' + id + '] (' + msg + ') targetOrigin: ' + target);\n iframe.contentWindow.postMessage(msgId + msg, target);\n }\n\n function iFrameNotFound() {\n warn(id, '[' + calleeMsg + '] IFrame(' + id + ') not found');\n }\n\n function chkAndSend() {\n if (iframe && 'contentWindow' in iframe && null !== iframe.contentWindow) {\n // Null test for PhantomJS\n postMessageToIFrame();\n } else {\n iFrameNotFound();\n }\n }\n\n function warnOnNoResponse() {\n function warning() {\n if (settings[id] && !settings[id].loaded && !errorShown) {\n errorShown = true;\n warn(id, 'IFrame has not responded within ' + settings[id].warningTimeout / 1000 + ' seconds. Check iFrameResizer.contentWindow.js has been loaded in iFrame. This message can be ignored if everything is working, or you can set the warningTimeout option to a higher value or zero to suppress this warning.');\n }\n }\n\n if (!!noResponseWarning && settings[id] && !!settings[id].warningTimeout) {\n settings[id].msgTimeout = setTimeout(warning, settings[id].warningTimeout);\n }\n }\n\n var errorShown = false;\n id = id || iframe.id;\n\n if (settings[id]) {\n chkAndSend();\n warnOnNoResponse();\n }\n }\n\n function createOutgoingMsg(iframeId) {\n return iframeId + ':' + settings[iframeId].bodyMarginV1 + ':' + settings[iframeId].sizeWidth + ':' + settings[iframeId].log + ':' + settings[iframeId].interval + ':' + settings[iframeId].enablePublicMethods + ':' + settings[iframeId].autoResize + ':' + settings[iframeId].bodyMargin + ':' + settings[iframeId].heightCalculationMethod + ':' + settings[iframeId].bodyBackground + ':' + settings[iframeId].bodyPadding + ':' + settings[iframeId].tolerance + ':' + settings[iframeId].inPageLinks + ':' + settings[iframeId].resizeFrom + ':' + settings[iframeId].widthCalculationMethod + ':' + settings[iframeId].mouseEvents;\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\n if (Infinity !== styleValue && 0 !== styleValue) {\n iframe.style[style] = isNumber(styleValue) ? styleValue + 'px' : styleValue;\n log(iframeId, 'Set ' + style + ' = ' + iframe.style[style]);\n }\n }\n\n function chkMinMax(dimension) {\n if (settings[iframeId]['min' + dimension] > settings[iframeId]['max' + dimension]) {\n throw new Error('Value for min' + dimension + ' can not be greater than max' + dimension);\n }\n }\n\n chkMinMax('Height');\n chkMinMax('Width');\n addStyle('maxHeight');\n addStyle('minHeight');\n addStyle('maxWidth');\n addStyle('minWidth');\n }\n\n function newId() {\n var id = options && options.id || defaults.id + count++;\n\n if (null !== document.getElementById(id)) {\n id += count++;\n }\n\n return id;\n }\n\n function ensureHasId(iframeId) {\n if ('' === iframeId) {\n // eslint-disable-next-line no-multi-assign\n iframe.id = iframeId = newId();\n logEnabled = (options || {}).log;\n log(iframeId, 'Added missing iframe ID: ' + iframeId + ' (' + iframe.src + ')');\n }\n\n return iframeId;\n }\n\n function setScrolling() {\n log(iframeId, 'IFrame scrolling ' + (settings[iframeId] && settings[iframeId].scrolling ? 'enabled' : 'disabled') + ' for ' + iframeId);\n iframe.style.overflow = false === (settings[iframeId] && settings[iframeId].scrolling) ? 'hidden' : 'auto';\n\n switch (settings[iframeId] && settings[iframeId].scrolling) {\n case 'omit':\n break;\n\n case true:\n iframe.scrolling = 'yes';\n break;\n\n case false:\n iframe.scrolling = 'no';\n break;\n\n default:\n iframe.scrolling = settings[iframeId] ? settings[iframeId].scrolling : 'no';\n }\n } // The V1 iFrame script expects an int, where as in V2 expects a CSS\n // string value such as '1px 3em', so if we have an int for V2, set V1=V2\n // and then convert V2 to a string PX value.\n\n\n function setupBodyMarginValues() {\n if ('number' === typeof (settings[iframeId] && settings[iframeId].bodyMargin) || '0' === (settings[iframeId] && settings[iframeId].bodyMargin)) {\n settings[iframeId].bodyMarginV1 = settings[iframeId].bodyMargin;\n settings[iframeId].bodyMargin = '' + settings[iframeId].bodyMargin + 'px';\n }\n }\n\n function checkReset() {\n // Reduce scope of firstRun to function, because IE8's JS execution\n // context stack is borked and this value gets externally\n // changed midway through running this function!!!\n var firstRun = settings[iframeId] && settings[iframeId].firstRun,\n resetRequertMethod = settings[iframeId] && settings[iframeId].heightCalculationMethod in resetRequiredMethods;\n\n if (!firstRun && resetRequertMethod) {\n resetIFrame({\n iframe: iframe,\n height: 0,\n width: 0,\n type: 'init'\n });\n }\n }\n\n function setupIFrameObject() {\n if (settings[iframeId]) {\n settings[iframeId].iframe.iFrameResizer = {\n close: closeIFrame.bind(null, settings[iframeId].iframe),\n removeListeners: removeIframeListeners.bind(null, settings[iframeId].iframe),\n resize: trigger.bind(null, 'Window resize', 'resize', settings[iframeId].iframe),\n moveToAnchor: function moveToAnchor(anchor) {\n trigger('Move to anchor', 'moveToAnchor:' + anchor, settings[iframeId].iframe, iframeId);\n },\n sendMessage: function sendMessage(message) {\n message = JSON.stringify(message);\n trigger('Send Message', 'message:' + message, settings[iframeId].iframe, iframeId);\n }\n };\n }\n } // We have to call trigger twice, as we can not be sure if all\n // iframes have completed loading when this code runs. The\n // event listener also catches the page changing in the iFrame.\n\n\n function init(msg) {\n function iFrameLoaded() {\n trigger('iFrame.onload', msg, iframe, undefined, true);\n checkReset();\n }\n\n function createDestroyObserver(MutationObserver) {\n if (!iframe.parentNode) {\n return;\n }\n\n var destroyObserver = new MutationObserver(function (mutations) {\n mutations.forEach(function (mutation) {\n var removedNodes = Array.prototype.slice.call(mutation.removedNodes); // Transform NodeList into an Array\n\n removedNodes.forEach(function (removedNode) {\n if (removedNode === iframe) {\n closeIFrame(iframe);\n }\n });\n });\n });\n destroyObserver.observe(iframe.parentNode, {\n childList: true\n });\n }\n\n var MutationObserver = getMutationObserver();\n\n if (MutationObserver) {\n createDestroyObserver(MutationObserver);\n }\n\n addEventListener(iframe, 'load', iFrameLoaded);\n trigger('init', msg, iframe, undefined, true);\n }\n\n function checkOptions(options) {\n if ('object' !== _typeof(options)) {\n throw new TypeError('Options is not an object');\n }\n }\n\n function copyOptions(options) {\n // eslint-disable-next-line no-restricted-syntax\n for (var option in defaults) {\n if (Object.prototype.hasOwnProperty.call(defaults, option)) {\n settings[iframeId][option] = Object.prototype.hasOwnProperty.call(options, option) ? options[option] : defaults[option];\n }\n }\n }\n\n function getTargetOrigin(remoteHost) {\n return '' === remoteHost || null !== remoteHost.match(/^(about:blank|javascript:|file:\\/\\/)/) ? '*' : remoteHost;\n }\n\n function depricate(key) {\n var splitName = key.split('Callback');\n\n if (splitName.length === 2) {\n var name = 'on' + splitName[0].charAt(0).toUpperCase() + splitName[0].slice(1);\n this[name] = this[key];\n delete this[key];\n warn(iframeId, \"Deprecated: '\" + key + \"' has been renamed '\" + name + \"'. The old method will be removed in the next major version.\");\n }\n }\n\n function processOptions(options) {\n options = options || {};\n settings[iframeId] = {\n firstRun: true,\n iframe: iframe,\n remoteHost: iframe.src && iframe.src.split('/').slice(0, 3).join('/')\n };\n checkOptions(options);\n Object.keys(options).forEach(depricate, options);\n copyOptions(options);\n\n if (settings[iframeId]) {\n settings[iframeId].targetOrigin = true === settings[iframeId].checkOrigin ? getTargetOrigin(settings[iframeId].remoteHost) : '*';\n }\n }\n\n function beenHere() {\n return iframeId in settings && 'iFrameResizer' in iframe;\n }\n\n var iframeId = ensureHasId(iframe.id);\n\n if (!beenHere()) {\n processOptions(options);\n setScrolling();\n setLimits();\n setupBodyMarginValues();\n init(createOutgoingMsg(iframeId));\n setupIFrameObject();\n } else {\n warn(iframeId, 'Ignored iFrame, already setup.');\n }\n }\n\n function debouce(fn, time) {\n if (null === timer) {\n timer = setTimeout(function () {\n timer = null;\n fn();\n }, time);\n }\n }\n\n var frameTimer = {};\n\n function debounceFrameEvents(fn, time, frameId) {\n if (!frameTimer[frameId]) {\n frameTimer[frameId] = setTimeout(function () {\n frameTimer[frameId] = null;\n fn();\n }, time);\n }\n } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\n function fixHiddenIFrames() {\n function checkIFrames() {\n function checkIFrame(settingId) {\n function chkDimension(dimension) {\n return '0px' === (settings[settingId] && settings[settingId].iframe.style[dimension]);\n }\n\n function isVisible(el) {\n return null !== el.offsetParent;\n }\n\n if (settings[settingId] && isVisible(settings[settingId].iframe) && (chkDimension('height') || chkDimension('width'))) {\n trigger('Visibility change', 'resize', settings[settingId].iframe, settingId);\n }\n }\n\n Object.keys(settings).forEach(function (key) {\n checkIFrame(key);\n });\n }\n\n function mutationObserved(mutations) {\n log('window', 'Mutation observed: ' + mutations[0].target + ' ' + mutations[0].type);\n debouce(checkIFrames, 16);\n }\n\n function createMutationObserver() {\n var target = document.querySelector('body'),\n config = {\n attributes: true,\n attributeOldValue: false,\n characterData: true,\n characterDataOldValue: false,\n childList: true,\n subtree: true\n },\n observer = new MutationObserver(mutationObserved);\n observer.observe(target, config);\n }\n\n var MutationObserver = getMutationObserver();\n\n if (MutationObserver) {\n createMutationObserver();\n }\n }\n\n function resizeIFrames(event) {\n function resize() {\n sendTriggerMsg('Window ' + event, 'resize');\n }\n\n log('window', 'Trigger event: ' + event);\n debouce(resize, 16);\n } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\n function tabVisible() {\n function resize() {\n sendTriggerMsg('Tab Visable', 'resize');\n }\n\n if ('hidden' !== document.visibilityState) {\n log('document', 'Trigger event: Visiblity change');\n debouce(resize, 16);\n }\n }\n\n function sendTriggerMsg(eventName, event) {\n function isIFrameResizeEnabled(iframeId) {\n return settings[iframeId] && 'parent' === settings[iframeId].resizeFrom && settings[iframeId].autoResize && !settings[iframeId].firstRun;\n }\n\n Object.keys(settings).forEach(function (iframeId) {\n if (isIFrameResizeEnabled(iframeId)) {\n trigger(eventName, event, settings[iframeId].iframe, iframeId);\n }\n });\n }\n\n function setupEventListeners() {\n addEventListener(window, 'message', iFrameListener);\n addEventListener(window, 'resize', function () {\n resizeIFrames('resize');\n });\n addEventListener(document, 'visibilitychange', tabVisible);\n addEventListener(document, '-webkit-visibilitychange', tabVisible);\n }\n\n function factory() {\n function init(options, element) {\n function chkType() {\n if (!element.tagName) {\n throw new TypeError('Object is not a valid DOM element');\n } else if ('IFRAME' !== element.tagName.toUpperCase()) {\n throw new TypeError('Expected