{"version":3,"sources":["webpack:///webpack/bootstrap 8a558409d8c01e6594de","webpack:///./app/webpack/packs/iframeMessageReceiver.js","webpack:///./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","configurable","enumerable","get","n","__esModule","object","property","prototype","hasOwnProperty","p","s","__webpack_exports__","value","__WEBPACK_IMPORTED_MODULE_0_iframe_resizer_js_iframeResizer_contentWindow__","window","$crisp","push","document","addEventListener","parentIFrame","scrollToOffset","parent","postMessage","type","ACTIONS","setOriginUrl","url","appendHiddenInput","input","createElement","form","querySelector","appendChild","_ref","data","payload","_ref2","qs","target","getAttribute","undefined","autoResize","base","bodyBackground","bodyMargin","bodyMarginStr","bodyObserver","bodyPadding","calculateWidth","doubleEventList","resize","click","eventCancelTimer","firstRun","height","heightCalcModeDefault","heightCalcMode","initLock","initMsg","inPageLinks","interval","intervalTimer","logging","msgID","msgIdLen","length","myID","resetRequiredMethods","max","min","bodyScroll","documentElementScroll","resizeFrom","sendPermit","targetOriginDefault","tolerance","triggerLocked","triggerLockedTimer","throttledTimer","width","widthCalcModeDefault","widthCalcMode","win","onMessage","warn","onReady","onPageInfo","customCalcMethods","documentElement","offsetHeight","body","scrollWidth","eventHandlersByName","passiveSupported","options","create","passive","noop","removeEventListener","error","func","context","args","result","timeout","previous","later","getNow","Date","now","getTime","getHeight","bodyOffset","getComputedStyle","offset","scrollHeight","custom","documentElementOffset","Math","apply","getAllMeasurements","grow","lowestElement","getMaxElement","getAllElements","taggedElement","getTaggedElements","getWidth","offsetWidth","scroll","rightMostElement","sizeIFrameThrottled","sizeIFrame","remaining","this","arguments","clearTimeout","setTimeout","event","processRequestFromParent","init","source","reset","log","triggerReset","sendSize","moveToAnchor","findTarget","getData","inPageLink","pageInfo","msgBody","JSON","parse","message","getMessageType","split","substr","indexOf","isInitMsg","true","false","callFromParent","messageType","jQuery","chkLateLoaded","el","evt","capitalizeFirstLetter","string","charAt","toUpperCase","slice","formatLogMsg","msg","console","clearFix","strBool","str","Number","enable","readDataFromParent","location","href","setupCustomCalcMethods","calcMode","calcFunc","iFrameResizer","constructor","stringify","keys","forEach","depricate","targetOrigin","heightCalculationMethod","widthCalculationMethod","readDataFromPage","setBodyStyle","attr","chkCSS","setMargin","style","clear","display","checkHeightMode","checkWidthMode","startEventListeners","manageEventListeners","disconnect","clearInterval","close","sendMsg","getId","getPageInfo","callback","hash","resetIFrame","scrollTo","x","y","sendMessage","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","size","customHeight","customWidth","valString","getElementPosition","elPosition","getBoundingClientRect","pagePosition","pageXOffset","scrollLeft","pageYOffset","scrollTop","parseInt","left","top","hashData","decodeURIComponent","getElementById","getElementsByName","jumpPosition","jumpToTarget","checkLocationHash","Array","querySelectorAll","e","preventDefault","setupInPageLinks","key","splitName","manageTriggerEvent","listener","add","eventName","handleEvent","eventType","remove","eventNames","map","method","checkCalcMode","calcModeDefault","modes","forceIntervalTimer","MutationObserver","WebKitMutationObserver","initInterval","addImageLoadListners","mutation","addImageLoadListener","element","complete","src","imageLoaded","imageError","elements","attributeName","removeImageLoadListener","splice","removeFromArray","imageEventTriggered","typeDesc","mutationObserved","mutations","observer","observe","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","setupBodyMutationObserver","setInterval","abs","prop","retVal","defaultView","side","elementsLength","elVal","maxVal","Side","timer","chkEventThottle","dimention","tag","triggerEvent","triggerEventDesc","currentHeight","currentWidth","checkTolarance","a","b","isSizeChangeDetected","lockTrigger","resetPage","hcm","readyState"],"mappings":"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","file":"iframeMessageReceiver-5add8aece725c0290372.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, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 174);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 8a558409d8c01e6594de","import 'iframe-resizer/js/iframeResizer.contentWindow';\n\nwindow.$crisp = window.$crisp || [];\nwindow.$crisp.push([\n 'on',\n 'chat:closed',\n function() {\n window.$crisp.push(['do', 'chat:hide']);\n }\n]);\nwindow.$crisp.push(['do', 'chat:hide']);\n\ndocument.addEventListener('didScrollToTop', function() {\n if ('parentIFrame' in window) {\n window.parentIFrame.scrollToOffset(0, 0);\n }\n});\n\n// Inject URL of page embedding iframe\nwindow.parent.postMessage(\n {\n type: 'queryParentLocation'\n },\n '*'\n);\n\nconst ACTIONS = {\n setOriginUrl(url) {\n function appendHiddenInput() {\n const input = document.createElement('input');\n input.type = 'hidden';\n input.name = 'submission[origin_url]';\n input.value = url;\n const form = document.querySelector('.js-bcs-form');\n // Handle when running inside the loading page\n if (form) {\n // Only handle cases where the backend hasn't set it\n if (!form.querySelector('[name=\"submission[origin_url\"]')) {\n form.appendChild(input);\n }\n }\n }\n appendHiddenInput();\n // Ensure every slide has the origin_url injected\n document.addEventListener('didReplaceSlide', appendHiddenInput);\n }\n};\n\nwindow.addEventListener('message', function({ data }) {\n const { type, payload } = data;\n if (ACTIONS[type]) {\n ACTIONS[type](payload);\n }\n});\n\nconst ATTR_QUERY_STRING = 'data-iframe-query-string';\n\ndocument.addEventListener('didReplaceSlide', function({ target }) {\n const qs = target.getAttribute(ATTR_QUERY_STRING);\n if (qs) {\n window.parent.postMessage(\n {\n type: 'updateQueryString',\n payload: qs\n },\n '*'\n );\n }\n});\n\n\n\n// WEBPACK FOOTER //\n// ./app/webpack/packs/iframeMessageReceiver.js","/*\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 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 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 = getNow()\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 = getNow()\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 var getNow =\n Date.now ||\n function() {\n /* istanbul ignore next */ // Not testable in PhantonJS\n return new Date().getTime()\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 (' + 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 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.substr(msgIdLen).split(':')\n\n myID = data[0]\n bodyMargin = undefined !== data[1] ? Number(data[1]) : bodyMargin // For V1 compatibility\n calculateWidth = undefined !== data[2] ? strBool(data[2]) : calculateWidth\n logging = undefined !== data[3] ? strBool(data[3]) : logging\n interval = undefined !== data[4] ? Number(data[4]) : interval\n autoResize = undefined !== data[6] ? strBool(data[6]) : autoResize\n bodyMarginStr = data[7]\n heightCalcMode = undefined !== data[8] ? data[8] : heightCalcMode\n bodyBackground = data[9]\n bodyPadding = data[10]\n tolerance = undefined !== data[11] ? Number(data[11]) : tolerance\n inPageLinks.enable = undefined !== data[12] ? strBool(data[12]) : false\n resizeFrom = undefined !== data[13] ? data[13] : resizeFrom\n widthCalcMode = undefined !== data[14] ? data[14] : widthCalcMode\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 eventName: ['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 ? window.pageXOffset\n : document.documentElement.scrollLeft,\n y:\n window.pageYOffset !== undefined\n ? window.pageYOffset\n : document.documentElement.scrollTop\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 jumpToTarget(target)\n } else {\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 }\n }\n\n function checkLocationHash() {\n if ('' !== location.hash && '#' !== location.hash) {\n findTarget(location.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 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\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, undefined, undefined)\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 ? retVal[prop] : 0\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 = getNow()\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 = getNow() - 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(dimention) {\n return [\n dimention.bodyOffset(),\n dimention.bodyScroll(),\n dimention.documentElementOffset(),\n dimention.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 (0 === elements.length) 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 compatability\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 ? customHeight : getHeight[heightCalcMode]()\n currentWidth =\n undefined !== customWidth ? customWidth : getWidth[widthCalcMode]()\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 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 } else {\n log('Trigger event cancelled: ' + triggerEvent)\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 size reset by host page')\n triggerReset('resetPage')\n } else {\n log('Page reset ignored by init')\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 compatability\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).substr(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.substr(event.data.indexOf(':') + 1)\n }\n\n function isMiddleTier() {\n return (\n (!(typeof module !== 'undefined' && module.exports) &&\n 'iFrameResize' in window) ||\n ('jQuery' in window && '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 compatibity.\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\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js\n// module id = 175\n// module chunks = 6"],"sourceRoot":""}