{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/iframe-resizer/js/iframeResizer.contentWindow.js","webpack:///./app/javascript/packs/froala_iframe.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","_typeof","obj","iterator","constructor","undefined","window","autoResize","bodyBackground","bodyMargin","bodyMarginStr","bodyObserver","bodyPadding","calculateWidth","doubleEventList","resize","click","eventCancelTimer","firstRun","height","heightCalcModeDefault","heightCalcMode","initLock","initMsg","inPageLinks","interval","intervalTimer","logging","mouseEvents","msgID","msgIdLen","length","myID","resetRequiredMethods","max","min","bodyScroll","documentElementScroll","resizeFrom","target","parent","targetOriginDefault","tolerance","triggerLocked","triggerLockedTimer","throttledTimer","width","widthCalcModeDefault","widthCalcMode","win","onMessage","warn","onReady","onPageInfo","customCalcMethods","document","documentElement","offsetHeight","body","scrollWidth","eventHandlersByName","passiveSupported","options","passive","addEventListener","noop","removeEventListener","error","func","context","args","result","timeout","previous","later","getHeight","bodyOffset","getComputedStyle","offset","scrollHeight","custom","documentElementOffset","Math","apply","getAllMeasurements","grow","lowestElement","getMaxElement","getAllElements","taggedElement","getTaggedElements","getWidth","offsetWidth","scroll","rightMostElement","sizeIFrameThrottled","sizeIFrame","Date","now","remaining","this","arguments","clearTimeout","setTimeout","event","processRequestFromParent","init","data","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","Boolean","readDataFromParent","location","href","readData","iFrameResizer","stringify","keys","forEach","depricate","targetOrigin","heightCalculationMethod","widthCalculationMethod","setupCustomCalcMethods","calcMode","calcFunc","readDataFromPage","setBodyStyle","attr","chkCSS","setMargin","createElement","style","clear","display","appendChild","checkHeightMode","checkWidthMode","parentIFrame","startEventListeners","manageEventListeners","disconnect","clearInterval","sendMsg","close","getId","getPageInfo","callback","hash","resetIFrame","scrollTo","x","y","scrollToOffset","sendMessage","setHeightCalculationMethod","setWidthCalculationMethod","setTargetOrigin","size","customHeight","customWidth","sendMouse","e","type","screenY","screenX","addMouseListener","setupMouseEvents","getPagePosition","pageXOffset","scrollLeft","pageYOffset","scrollTop","getElementPosition","elPosition","getBoundingClientRect","pagePosition","parseInt","left","top","jumpToTarget","jumpPosition","hashData","decodeURIComponent","getElementById","getElementsByName","checkLocationHash","bindAnchors","setupLink","linkClicked","preventDefault","getAttribute","Array","querySelectorAll","bindLocationHash","initCheck","enableInPageLinks","setupInPageLinks","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","push","attributeName","removeFromArray","splice","removeImageLoadListener","imageEventTriggered","typeDesc","mutationObserved","mutations","createMutationObserver","querySelector","config","attributes","attributeOldValue","characterData","characterDataOldValue","childList","subtree","observer","observe","setupBodyMutationObserver","setInterval","abs","prop","retVal","defaultView","side","elementsLength","elVal","maxVal","Side","timer","chkEventThottle","dimensions","tag","triggerEvent","triggerEventDesc","currentHeight","currentWidth","checkTolarance","a","b","isSizeChangeDetected","lockTrigger","resetPage","hcm","postMessage","readyState"],"mappings":"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","file":"js/froala_iframe-846c8b6b1aa1654a2cda.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 = \"//assets.eventene.com/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 620);\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.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// 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 autoResize = true,\n base = 10,\n bodyBackground = '',\n bodyMargin = 0,\n bodyMarginStr = '',\n bodyObserver = null,\n bodyPadding = '',\n calculateWidth = false,\n doubleEventList = {\n resize: 1,\n click: 1\n },\n eventCancelTimer = 128,\n firstRun = true,\n height = 1,\n heightCalcModeDefault = 'bodyOffset',\n heightCalcMode = heightCalcModeDefault,\n initLock = true,\n initMsg = '',\n inPageLinks = {},\n interval = 32,\n intervalTimer = null,\n logging = false,\n mouseEvents = false,\n msgID = '[iFrameSizer]',\n // 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 onMessage() {\n warn('onMessage function not defined');\n },\n onReady = function onReady() {},\n onPageInfo = function onPageInfo() {},\n customCalcMethods = {\n height: function height() {\n warn('Custom height calculation function not defined');\n return document.documentElement.offsetHeight;\n },\n width: function width() {\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 passive: {\n get: function get() {\n passiveSupported = true;\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 } // Based on underscore.js\n\n\n function throttle(func) {\n var context,\n args,\n result,\n timeout = null,\n previous = 0,\n later = function later() {\n previous = Date.now();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null;\n }\n };\n\n return function () {\n var now = Date.now();\n\n if (!previous) {\n previous = now;\n }\n\n var remaining = throttledTimer - (now - previous);\n context = this;\n args = arguments;\n\n if (remaining <= 0 || remaining > throttledTimer) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n // eslint-disable-next-line no-multi-assign\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n }\n\n function formatLogMsg(msg) {\n return msgID + '[' + myID + '] ' + msg;\n }\n\n function log(msg) {\n if (logging && 'object' === _typeof(window.console)) {\n // eslint-disable-next-line no-console\n console.log(formatLogMsg(msg));\n }\n }\n\n function warn(msg) {\n if ('object' === _typeof(window.console)) {\n // eslint-disable-next-line no-console\n console.warn(formatLogMsg(msg));\n }\n }\n\n function init() {\n readDataFromParent();\n log('Initialising iFrame (' + window.location.href + ')');\n readDataFromPage();\n setMargin();\n setBodyStyle('background', bodyBackground);\n setBodyStyle('padding', bodyPadding);\n injectClearFixIntoBodyElement();\n checkHeightMode();\n checkWidthMode();\n stopInfiniteResizingOfIFrame();\n setupPublicMethods();\n setupMouseEvents();\n startEventListeners();\n inPageLinks = setupInPageLinks();\n sendSize('init', 'Init message from host page');\n onReady();\n }\n\n function readDataFromParent() {\n function strBool(str) {\n return 'true' === str;\n }\n\n var data = initMsg.substr(msgIdLen).split(':');\n myID = data[0];\n bodyMargin = undefined !== data[1] ? Number(data[1]) : bodyMargin; // For V1 compatibility\n\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 mouseEvents = undefined !== data[15] ? Boolean(data[15]) : mouseEvents;\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(\"Deprecated: '\" + key + \"' has been renamed '\" + name + \"'. The old method will be removed in the next major version.\");\n }\n }\n\n function readDataFromPage() {\n function readData() {\n var data = window.iFrameResizer;\n log('Reading data from page: ' + JSON.stringify(data));\n Object.keys(data).forEach(depricate, data);\n onMessage = 'onMessage' in data ? data.onMessage : onMessage;\n onReady = 'onReady' in data ? data.onReady : onReady;\n targetOriginDefault = 'targetOrigin' in data ? data.targetOrigin : targetOriginDefault;\n heightCalcMode = 'heightCalculationMethod' in data ? data.heightCalculationMethod : heightCalcMode;\n widthCalcMode = 'widthCalculationMethod' in data ? data.widthCalculationMethod : 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 ('iFrameResizer' in window && Object === window.iFrameResizer.constructor) {\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\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 add(eventName) {\n function handleEvent() {\n sendSize(options.eventName, options.eventType);\n }\n\n eventHandlersByName[eventName] = handleEvent;\n addEventListener(window, eventName, handleEvent, {\n passive: true\n });\n },\n remove: function remove(eventName) {\n var handleEvent = eventHandlersByName[eventName];\n delete eventHandlersByName[eventName];\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(capitalizeFirstLetter(options.method) + ' event listener: ' + options.eventType);\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: ['transitionstart', 'webkitTransitionStart', 'MSTransitionStart', 'oTransitionStart', 'otransitionstart']\n });\n manageTriggerEvent({\n method: method,\n eventType: 'Transition Iteration',\n eventNames: ['transitioniteration', 'webkitTransitionIteration', 'MSTransitionIteration', 'oTransitionIteration', 'otransitioniteration']\n });\n manageTriggerEvent({\n method: method,\n eventType: 'Transition End',\n eventNames: ['transitionend', 'webkitTransitionEnd', 'MSTransitionEnd', 'oTransitionEnd', '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(calcMode + ' is not a valid option for ' + type + 'CalculationMethod.');\n calcMode = calcModeDefault;\n }\n\n log(type + ' calculation method set to \"' + calcMode + '\"');\n }\n\n return calcMode;\n }\n\n function checkHeightMode() {\n heightCalcMode = checkCalcMode(heightCalcMode, heightCalcModeDefault, getHeight, 'height');\n }\n\n function checkWidthMode() {\n widthCalcMode = checkCalcMode(widthCalcMode, widthCalcModeDefault, getWidth, 'width');\n }\n\n function startEventListeners() {\n if (true === autoResize) {\n manageEventListeners('add');\n setupMutationObserver();\n } else {\n log('Auto Resize disabled');\n }\n } // function stopMsgsToParent() {\n // log('Disable outgoing messages')\n // sendPermit = false\n // }\n // function removeMsgListener() {\n // log('Remove event listener: Message')\n // removeEventListener(window, 'message', receiver)\n // }\n\n\n function disconnectMutationObserver() {\n if (null !== bodyObserver) {\n /* istanbul ignore next */\n // Not testable in PhantonJS\n bodyObserver.disconnect();\n }\n }\n\n function stopEventListeners() {\n manageEventListeners('remove');\n disconnectMutationObserver();\n clearInterval(intervalTimer);\n } // function teardown() {\n // stopMsgsToParent()\n // removeMsgListener()\n // if (true === autoResize) stopEventListeners()\n // }\n\n\n function injectClearFixIntoBodyElement() {\n var clearFix = document.createElement('div');\n clearFix.style.clear = 'both'; // Guard against the following having been globally redefined in CSS.\n\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: window.pageXOffset !== undefined ? window.pageXOffset : document.documentElement.scrollLeft,\n y: window.pageYOffset !== undefined ? window.pageYOffset : document.documentElement.scrollTop\n };\n }\n\n function getElementPosition(el) {\n var elPosition = el.getBoundingClientRect(),\n pagePosition = getPagePosition();\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 log('Moving to in page link (#' + hash + ') at x: ' + jumpPosition.x + ' y: ' + jumpPosition.y);\n sendMsg(jumpPosition.y, jumpPosition.x, 'scrollToOffset'); // X&Y reversed at sendMsg uses height/width\n }\n\n var hash = location.split('#')[1] || location,\n // Remove # if present\n hashData = decodeURIComponent(hash),\n target = document.getElementById(hashData) || document.getElementsByName(hashData)[0];\n\n if (undefined !== target) {\n jumpToTarget(target);\n } else {\n log('In page link (#' + hash + ') not found in iFrame, so sending to parent');\n sendMsg(0, 0, 'inPageLink', '#' + hash);\n }\n }\n\n function checkLocationHash() {\n var hash = window.location.hash;\n var href = window.location.href;\n\n if ('' !== hash && '#' !== hash) {\n findTarget(href);\n }\n }\n\n function bindAnchors() {\n function setupLink(el) {\n function linkClicked(e) {\n e.preventDefault();\n /* jshint validthis:true */\n\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(document.querySelectorAll('a[href^=\"#\"]'), setupLink);\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 */\n // 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('In page linking not fully supported in this browser! (See README.md for IE8 workaround)');\n }\n }\n\n if (inPageLinks.enable) {\n enableInPageLinks();\n } else {\n log('In page linking not enabled');\n }\n\n return {\n findTarget: findTarget\n };\n }\n\n function setupMouseEvents() {\n if (mouseEvents !== true) return;\n\n function sendMouse(e) {\n sendMsg(0, 0, e.type, e.screenY + ':' + e.screenX);\n }\n\n function addMouseListener(evt, name) {\n log('Add event listener: ' + name);\n addEventListener(window.document, evt, sendMouse);\n }\n\n addMouseListener('mouseenter', 'Mouse Enter');\n addMouseListener('mouseleave', 'Mouse Leave');\n }\n\n function setupPublicMethods() {\n log('Enable public methods');\n 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 sendMsg(0, 0, 'autoResize', JSON.stringify(autoResize));\n return autoResize;\n },\n close: function closeF() {\n sendMsg(0, 0, 'close'); // teardown()\n },\n getId: function getIdF() {\n return myID;\n },\n getPageInfo: function getPageInfoF(callback) {\n if ('function' === typeof callback) {\n onPageInfo = callback;\n sendMsg(0, 0, 'pageInfo');\n } else {\n onPageInfo = function onPageInfo() {};\n\n sendMsg(0, 0, 'pageInfoStop');\n }\n },\n moveToAnchor: function moveToAnchorF(hash) {\n inPageLinks.findTarget(hash);\n },\n reset: function resetF() {\n resetIFrame('parentIFrame.reset');\n },\n scrollTo: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollTo'); // X&Y reversed at sendMsg uses height/width\n },\n scrollToOffset: function scrollToF(x, y) {\n sendMsg(y, x, 'scrollToOffset'); // X&Y reversed at sendMsg uses height/width\n },\n sendMessage: function sendMessageF(msg, targetOrigin) {\n sendMsg(0, 0, 'message', JSON.stringify(msg), targetOrigin);\n },\n setHeightCalculationMethod: function setHeightCalculationMethodF(heightCalculationMethod) {\n heightCalcMode = heightCalculationMethod;\n checkHeightMode();\n },\n setWidthCalculationMethod: function setWidthCalculationMethodF(widthCalculationMethod) {\n widthCalcMode = widthCalculationMethod;\n checkWidthMode();\n },\n setTargetOrigin: function setTargetOriginF(targetOrigin) {\n log('Set targetOrigin: ' + targetOrigin);\n targetOriginDefault = targetOrigin;\n },\n size: function sizeF(customHeight, customWidth) {\n var valString = '' + (customHeight || '') + (customWidth ? ',' + customWidth : '');\n sendSize('size', 'parentIFrame.size(' + valString + ')', customHeight, customWidth);\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 } // Not testable in PhantomJS\n\n /* istanbul ignore next */\n\n\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(mutation.target.querySelectorAll('img'), addImageLoadListener);\n }\n }\n\n function removeFromArray(element) {\n elements.splice(elements.indexOf(element), 1);\n }\n\n function removeImageLoadListener(element) {\n log('Remove listeners from ' + element.src);\n element.removeEventListener('load', imageLoaded, false);\n element.removeEventListener('error', imageError, false);\n removeFromArray(element);\n }\n\n function imageEventTriggered(event, type, typeDesc) {\n removeImageLoadListener(event.target);\n sendSize(type, typeDesc + ': ' + event.target.src);\n }\n\n function imageLoaded(event) {\n imageEventTriggered(event, 'imageLoad', 'Image loaded');\n }\n\n function imageError(event) {\n imageEventTriggered(event, 'imageLoadFailed', 'Image load failed');\n }\n\n function mutationObserved(mutations) {\n sendSize('mutationObserver', 'mutationObserver: ' + mutations[0].target + ' ' + mutations[0].type); // Deal with WebKit / Blink asyncing image loading when tags are injected into the page\n\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 observer = new MutationObserver(mutationObserved);\n log('Create body MutationObserver');\n observer.observe(target, config);\n return observer;\n }\n\n var elements = [],\n MutationObserver = window.MutationObserver || window.WebKitMutationObserver,\n observer = createMutationObserver();\n return {\n disconnect: function disconnect() {\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; // Not testable in PhantomJS\n\n /* istanbul ignore if */\n\n if (window.MutationObserver || window.WebKitMutationObserver) {\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 } // document.documentElement.offsetHeight is not reliable, so\n // we have to jump through hoops to get a better value.\n\n\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 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 } // Idea from https://github.com/guardian/iframe-messenger\n\n\n function getMaxElement(side, elements) {\n var elementsLength = elements.length,\n elVal = 0,\n maxVal = 0,\n Side = capitalizeFirstLetter(side),\n timer = Date.now();\n\n for (var i = 0; i < elementsLength; i++) {\n elVal = elements[i].getBoundingClientRect()[side] + getComputedStyle('margin' + Side, elements[i]);\n\n if (elVal > maxVal) {\n maxVal = elVal;\n }\n }\n\n timer = Date.now() - timer;\n log('Parsed ' + elementsLength + ' HTML elements');\n log('Element position calculated in ' + timer + 'ms');\n chkEventThottle(timer);\n return maxVal;\n }\n\n function getAllMeasurements(dimensions) {\n return [dimensions.bodyOffset(), dimensions.bodyScroll(), dimensions.documentElementOffset(), dimensions.documentElementScroll()];\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 if (elements.length === 0) noTaggedElementsFound();\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 document.body.offsetHeight + getComputedStyle('marginTop') + getComputedStyle('marginBottom');\n },\n offset: function offset() {\n return getHeight.bodyOffset(); // Backwards compatability\n },\n bodyScroll: function getBodyScrollHeight() {\n return document.body.scrollHeight;\n },\n custom: function getCustomWidth() {\n return customCalcMethods.height();\n },\n documentElementOffset: function getDEOffsetHeight() {\n return document.documentElement.offsetHeight;\n },\n documentElementScroll: function getDEScrollHeight() {\n return document.documentElement.scrollHeight;\n },\n max: function getMaxHeight() {\n return Math.max.apply(null, getAllMeasurements(getHeight));\n },\n min: function getMinHeight() {\n return Math.min.apply(null, getAllMeasurements(getHeight));\n },\n grow: function growHeight() {\n return getHeight.max(); // Run max without the forced downsizing\n },\n lowestElement: function getBestHeight() {\n return Math.max(getHeight.bodyOffset() || getHeight.documentElementOffset(), getMaxElement('bottom', getAllElements()));\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 bodyOffset: function getBodyOffsetWidth() {\n return document.body.offsetWidth;\n },\n custom: function getCustomWidth() {\n return customCalcMethods.width();\n },\n documentElementScroll: function getDEScrollWidth() {\n return document.documentElement.scrollWidth;\n },\n documentElementOffset: function getDEOffsetWidth() {\n return document.documentElement.offsetWidth;\n },\n scroll: function getMaxWidth() {\n return Math.max(getWidth.bodyScroll(), getWidth.documentElementScroll());\n },\n max: function getMaxWidth() {\n return Math.max.apply(null, getAllMeasurements(getWidth));\n },\n min: function getMinWidth() {\n return Math.min.apply(null, getAllMeasurements(getWidth));\n },\n rightMostElement: function rightMostElement() {\n return getMaxElement('right', getAllElements());\n },\n taggedElement: function getTaggedElementsWidth() {\n return getTaggedElements('right', 'data-iframe-width');\n }\n };\n\n function sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth) {\n function resizeIFrame() {\n height = currentHeight;\n width = currentWidth;\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 = undefined !== customHeight ? customHeight : getHeight[heightCalcMode]();\n currentWidth = undefined !== customWidth ? customWidth : getWidth[widthCalcMode]();\n return checkTolarance(height, currentHeight) || calculateWidth && checkTolarance(width, currentWidth);\n }\n\n function isForceResizableEvent() {\n return !(triggerEvent in {\n init: 1,\n interval: 1,\n size: 1\n });\n }\n\n function isForceResizableCalcMode() {\n return heightCalcMode in resetRequiredMethods || calculateWidth && widthCalcMode in resetRequiredMethods;\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 {\n interval: 1\n })) {\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 {\n reset: 1,\n resetPage: 1,\n init: 1\n })) {\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\n if (triggerEvent === 'init') {\n sizeIFrame(triggerEvent, triggerEventDesc, customHeight, customWidth);\n } else {\n sizeIFrameThrottled(triggerEvent, triggerEventDesc, customHeight, customWidth);\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\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 sendMsg(height, width, triggerEvent);\n }\n\n function resetIFrame(triggerEventDesc) {\n var hcm = heightCalcMode;\n heightCalcMode = heightCalcModeDefault;\n log('Reset trigger event: ' + triggerEventDesc);\n lockTrigger();\n triggerReset('reset');\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 = myID + ':' + size + ':' + triggerEvent + (undefined !== msg ? ':' + msg : '');\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 init();\n firstRun = false;\n setTimeout(function () {\n initLock = false;\n }, eventCancelTimer);\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 resize: function resizeFromParent() {\n sendSize('resizeParent', 'Parent window requested size check');\n },\n moveToAnchor: function moveToAnchorF() {\n inPageLinks.findTarget(getData());\n },\n inPageLink: function inPageLinkF() {\n this.moveToAnchor();\n },\n // Backward compatability\n pageInfo: function pageInfoFromParent() {\n var msgBody = getData();\n log('PageInfoFromParent called from parent: ' + msgBody);\n onPageInfo(JSON.parse(msgBody));\n log(' --');\n },\n message: function messageFromParent() {\n var msgBody = getData();\n log('onMessage called from parent: ' + msgBody); // eslint-disable-next-line sonarjs/no-extra-arguments\n\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 !(typeof module !== 'undefined' && module.exports) && 'iFrameResize' in window || 'jQuery' in window && 'iFrameResize' in window.jQuery.prototype;\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 {\n true: 1,\n false: 1\n };\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('Ignored message of type \"' + getMessageType() + '\". Received before initialization.');\n }\n }\n\n if (isMessageForUs()) {\n processMessage();\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\n\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})();","import 'froala-editor/css/froala_style.css';\nimport '../css/vendor/_froala_iframe.scss';\nimport 'iframe-resizer/js/iframeResizer.contentWindow';\n"],"sourceRoot":""}