{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/core-js/modules/_global.js","webpack:///./node_modules/core-js/modules/_descriptors.js","webpack:///./node_modules/core-js/modules/_wks.js","webpack:///./node_modules/core-js/modules/_hide.js","webpack:///./node_modules/core-js/modules/_is-object.js","webpack:///./node_modules/core-js/modules/_fails.js","webpack:///./node_modules/core-js/modules/_object-dp.js","webpack:///./node_modules/core-js/modules/_an-object.js","webpack:///./node_modules/core-js/modules/_redefine.js","webpack:///./node_modules/core-js/modules/_has.js","webpack:///./node_modules/core-js/modules/_uid.js","webpack:///./node_modules/core-js/modules/_core.js","webpack:///./node_modules/core-js/modules/_defined.js","webpack:///./node_modules/core-js/modules/_property-desc.js","webpack:///./node_modules/core-js/modules/_fix-re-wks.js","webpack:///./node_modules/core-js/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/modules/_dom-create.js","webpack:///./node_modules/core-js/modules/_to-primitive.js","webpack:///./node_modules/core-js/modules/_shared.js","webpack:///./node_modules/core-js/modules/_library.js","webpack:///./node_modules/core-js/modules/es6.regexp.match.js","webpack:///./website/vendor/scripts/fabrique/base.js","webpack:///./website/vendor/scripts/fabrique/helpers/classnames.js","webpack:///./website/vendor/scripts/fabrique/helpers/prevent-ie-transitions-on-load.js","webpack:///./website/vendor/scripts/fabrique/helpers/vh-mobile-device-fix.js","webpack:///./node_modules/intersection-observer/intersection-observer.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","global","window","Math","self","Function","__g","a","store","uid","USE_SYMBOL","dP","createDesc","f","it","exec","e","anObject","IE8_DOM_DEFINE","toPrimitive","O","P","Attributes","TypeError","isObject","hide","has","SRC","$toString","TPL","split","inspectSource","val","safe","isFunction","join","String","this","id","px","random","concat","undefined","toString","core","version","__e","bitmap","configurable","writable","redefine","fails","defined","wks","KEY","length","SYMBOL","fns","strfn","rxfn","RegExp","string","arg","document","is","createElement","S","fn","valueOf","push","copyright","MATCH","$match","regexp","require","IntersectionObserver","POLL_INTERVAL","documentElement","classList","add","edge","navigator","userAgent","indexOf","parseInt","substring","documentMode","match","element","addEventListener","requestAnimationFrame","remove","agent","timeout","clearTimeout","setTimeout","IntersectionObserverEntry","intersectionRatio","registry","crossOriginUpdater","crossOriginRect","THROTTLE_TIMEOUT","USE_MUTATION_OBSERVER","_setupCrossOriginUpdater","boundingClientRect","intersectionRect","convertFromParentRect","top","bottom","left","right","width","height","forEach","observer","_checkForIntersections","_resetCrossOriginUpdater","observe","target","_observationTargets","some","item","nodeType","Error","_registerInstance","entry","_monitorIntersections","ownerDocument","unobserve","filter","_unmonitorIntersections","_unregisterInstance","disconnect","_unmonitorAllIntersections","takeRecords","records","_queuedEntries","slice","_initThresholds","opt_threshold","threshold","Array","isArray","sort","isNaN","_parseRootMargin","opt_rootMargin","margins","map","margin","parts","parseFloat","unit","doc","win","defaultView","_monitoringDocuments","callback","monitoringInterval","domObserver","setInterval","addEvent","MutationObserver","attributes","childList","characterData","subtree","_monitoringUnsubscribes","clearInterval","removeEvent","root","frame","getFrameElement","index","rootDoc","itemDoc","unsubscribe","splice","unsubscribes","rootIsInDom","_rootIsInDom","rootRect","_getRootRect","targetRect","getBoundingClientRect","rootContainsTarget","_rootContainsTarget","oldEntry","_computeTargetAndRootIntersection","newEntry","time","performance","now","rootBounds","_hasCrossedThreshold","isIntersecting","_callback","getComputedStyle","display","rect1","rect2","parent","getParentNode","atRoot","parentRect","parentComputedStyle","frameRect","frameIntersect","body","overflow","max","min","html","clientWidth","clientHeight","_expandRectByRootMargin","rect","_rootMarginValues","newRect","oldRatio","newRatio","thresholds","containsDeep","ensureDOMRect","targetArea","intersectionArea","Number","toFixed","opt_options","timer","options","rootMargin","node","event","opt_useCapture","attachEvent","removeEventListener","detatchEvent","el","err","y","x","parentBoundingRect","parentIntersectionRect","child","parentNode","host","assignedSlot","frameElement"],"mappings":"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","file":"base-module.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 81);\n","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self\n // eslint-disable-next-line no-new-func\n : Function('return this')();\nif (typeof __g == 'number') __g = global; // eslint-disable-line no-undef\n","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function () {\n return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;\n});\n","var store = require('./_shared')('wks');\nvar uid = require('./_uid');\nvar Symbol = require('./_global').Symbol;\nvar USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function (name) {\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n","var dP = require('./_object-dp');\nvar createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function (object, key, value) {\n return dP.f(object, key, createDesc(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (e) {\n return true;\n }\n};\n","var anObject = require('./_an-object');\nvar IE8_DOM_DEFINE = require('./_ie8-dom-define');\nvar toPrimitive = require('./_to-primitive');\nvar dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return dP(O, P, Attributes);\n } catch (e) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var isObject = require('./_is-object');\nmodule.exports = function (it) {\n if (!isObject(it)) throw TypeError(it + ' is not an object!');\n return it;\n};\n","var global = require('./_global');\nvar hide = require('./_hide');\nvar has = require('./_has');\nvar SRC = require('./_uid')('src');\nvar TO_STRING = 'toString';\nvar $toString = Function[TO_STRING];\nvar TPL = ('' + $toString).split(TO_STRING);\n\nrequire('./_core').inspectSource = function (it) {\n return $toString.call(it);\n};\n\n(module.exports = function (O, key, val, safe) {\n var isFunction = typeof val == 'function';\n if (isFunction) has(val, 'name') || hide(val, 'name', key);\n if (O[key] === val) return;\n if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));\n if (O === global) {\n O[key] = val;\n } else if (!safe) {\n delete O[key];\n hide(O, key, val);\n } else if (O[key]) {\n O[key] = val;\n } else {\n hide(O, key, val);\n }\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, TO_STRING, function toString() {\n return typeof this == 'function' && this[SRC] || $toString.call(this);\n});\n","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","var id = 0;\nvar px = Math.random();\nmodule.exports = function (key) {\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n","var core = module.exports = { version: '2.5.7' };\nif (typeof __e == 'number') __e = core; // eslint-disable-line no-undef\n","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar hide = require('./_hide');\nvar redefine = require('./_redefine');\nvar fails = require('./_fails');\nvar defined = require('./_defined');\nvar wks = require('./_wks');\n\nmodule.exports = function (KEY, length, exec) {\n var SYMBOL = wks(KEY);\n var fns = exec(defined, SYMBOL, ''[KEY]);\n var strfn = fns[0];\n var rxfn = fns[1];\n if (fails(function () {\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n })) {\n redefine(String.prototype, KEY, strfn);\n hide(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return rxfn.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return rxfn.call(string, this); }\n );\n }\n};\n","module.exports = !require('./_descriptors') && !require('./_fails')(function () {\n return Object.defineProperty(require('./_dom-create')('div'), 'a', { get: function () { return 7; } }).a != 7;\n});\n","var isObject = require('./_is-object');\nvar document = require('./_global').document;\n// typeof document.createElement is 'object' in old IE\nvar is = isObject(document) && isObject(document.createElement);\nmodule.exports = function (it) {\n return is ? document.createElement(it) : {};\n};\n","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (it, S) {\n if (!isObject(it)) return it;\n var fn, val;\n if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;\n if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var core = require('./_core');\nvar global = require('./_global');\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || (global[SHARED] = {});\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: core.version,\n mode: require('./_library') ? 'pure' : 'global',\n copyright: '© 2018 Denis Pushkarev (zloirock.ru)'\n});\n","module.exports = false;\n","// @@match logic\nrequire('./_fix-re-wks')('match', 1, function (defined, MATCH, $match) {\n // 21.1.3.11 String.prototype.match(regexp)\n return [function match(regexp) {\n 'use strict';\n var O = defined(this);\n var fn = regexp == undefined ? undefined : regexp[MATCH];\n return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n }, $match];\n});\n","'use strict';\n\n// Include helpers\n// We don't have globbing support for require calls, so include them separately\nrequire('./helpers/classnames.js');\nrequire('./helpers/prevent-ie-transitions-on-load.js');\nrequire('./helpers/vh-mobile-device-fix.js');\n\nif (!WEBPACK_ENV.ESMODULE) {\n // Include polyfills\n // We don't have globbing support for require calls, so include them separately\n require('./polyfills/array-find-for-ie11.js');\n require('./polyfills/array-from-for-ie11.js');\n require('./polyfills/custom-events-for-ie11.js');\n require('./polyfills/element-classlist-for-ie11.js');\n require('./polyfills/element-matches.js');\n require('./polyfills/get-scrolling-element.js');\n require('./polyfills/string-includes.js');\n require('./polyfills/string-starts-with.js');\n\n // Import smooth scroll\n // For: IE 11, Chrome < 61, Firefox < 36, Safari\n require('smoothscroll-polyfill').polyfill();\n\n // Web animations polyfill - about 50kb raw, so only use if you need it\n require('web-animations-js');\n}\n\n// Intersection observer polyfill - about 20kb raw, but we need it for IE11 & Safari\nrequire('intersection-observer');\nIntersectionObserver.prototype.POLL_INTERVAL = 250; // Time in milliseconds.\n","\n// Enable JS className\ndocument.documentElement.classList.add('has-js');\n\n// Enable hover(), focus() and hover-and-focus() mixins\ndocument.documentElement.classList.add(('ontouchstart' in window) ? 'touch' : 'no-touch');\n\n// Enable Edge classNames (is-edge)\nconst edge = window.navigator.userAgent.indexOf('Edge');\n\nif (edge !== -1) {\n document.documentElement.classList.add('is-edge');\n\n const version = parseInt(window.navigator.userAgent.substring(edge + 5, window.navigator.userAgent.indexOf('.', edge)), 10);\n\n if (version) {\n document.documentElement.classList.add('is-edge' + version);\n }\n}\n\n// Enable IE classNames (is-ie, is-ie9, is-ie10, is-ie11)\nif (document.documentMode) {\n document.documentElement.classList.add('is-ie');\n document.documentElement.classList.add('is-ie' + document.documentMode);\n}\n\n// Enable iOS classnames (is-ipad, is-iphone, is-ios)\nif (navigator.userAgent.match(/(iPad)/gi)) {\n document.documentElement.classList.add('is-ipad');\n document.documentElement.classList.add('is-ios');\n} else if (navigator.userAgent.match(/(iPhone)/gi)) {\n document.documentElement.classList.add('is-iphone');\n document.documentElement.classList.add('is-ios');\n}\n\n// Enable OS classnames (is-osx, is-windows)\nif (navigator.userAgent.match(/(Mac OS X)/gi)) {\n document.documentElement.classList.add('is-osx');\n} else if (navigator.userAgent.match(/(Windows)/gi)) {\n document.documentElement.classList.add('is-windows');\n}\n\n// Enable Android classNames (is-android)\nif (navigator.userAgent.match(/(Android)/gi)) {\n document.documentElement.classList.add('is-android');\n}\n","\n// Prevent IE/Edge from executing transitions on load (makes the page load in a really weird way)\n\nif (window.navigator.userAgent.indexOf('Edge') > -1 || document.documentMode) {\n const element = document.documentElement;\n\n element.classList.add('is-loading');\n window.addEventListener('load', () => window.requestAnimationFrame(() => element.classList.remove('is-loading')));\n}\n","\n// Enable Fix-vh-on-mobile-devices fix\nconst agent = window.navigator.userAgent;\nconst element = document.documentElement;\nlet timeout;\n\nfunction onOrientationChange() {\n\n element.classList.remove('is-buggy-vh-device');\n\n window.clearTimeout(timeout);\n timeout = window.setTimeout(() => element.classList.add('is-buggy-vh-device'), 500);\n\n}\n\nif (agent.match(/Android/) || agent.match(/iPhone/) || agent.match(/iPad/)) {\n element.classList.add('is-buggy-vh-device');\n\n window.addEventListener('orientationchange', onOrientationChange);\n}\n","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n/**\n * The signal updater for cross-origin intersection. When not null, it means\n * that the polyfill is configured to work in a cross-origin mode.\n * @type {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nvar crossOriginUpdater = null;\n\n/**\n * The current cross-origin intersection. Only used in the cross-origin mode.\n * @type {DOMRect|ClientRect}\n */\nvar crossOriginRect = null;\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = ensureDOMRect(entry.rootBounds);\n this.boundingClientRect = ensureDOMRect(entry.boundingClientRect);\n this.intersectionRect = ensureDOMRect(entry.intersectionRect || getEmptyRect());\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n\n /** @private @const {!Array} */\n this._monitoringDocuments = [];\n /** @private @const {!Array} */\n this._monitoringUnsubscribes = [];\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Sets up the polyfill in the cross-origin mode. The result is the\n * updater function that accepts two arguments: `boundingClientRect` and\n * `intersectionRect` - just as these fields would be available to the\n * parent via `IntersectionObserverEntry`. This function should be called\n * each time the iframe receives intersection information from the parent\n * window, e.g. via messaging.\n * @return {function(DOMRect|ClientRect, DOMRect|ClientRect)}\n */\nIntersectionObserver._setupCrossOriginUpdater = function() {\n if (!crossOriginUpdater) {\n /**\n * @param {DOMRect|ClientRect} boundingClientRect\n * @param {DOMRect|ClientRect} intersectionRect\n */\n crossOriginUpdater = function(boundingClientRect, intersectionRect) {\n if (!boundingClientRect || !intersectionRect) {\n crossOriginRect = getEmptyRect();\n } else {\n crossOriginRect = convertFromParentRect(boundingClientRect, intersectionRect);\n }\n registry.forEach(function(observer) {\n observer._checkForIntersections();\n });\n };\n }\n return crossOriginUpdater;\n};\n\n\n/**\n * Resets the cross-origin mode.\n */\nIntersectionObserver._resetCrossOriginUpdater = function() {\n crossOriginUpdater = null;\n crossOriginRect = null;\n};\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections(target.ownerDocument);\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n return item.element != target;\n });\n this._unmonitorIntersections(target.ownerDocument);\n if (this._observationTargets.length == 0) {\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorAllIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array} An array of margin objects with the keys\n * value and unit.\n */\nIntersectionObserver.prototype._parseRootMargin = function(opt_rootMargin) {\n var marginString = opt_rootMargin || '0px';\n var margins = marginString.split(/\\s+/).map(function(margin) {\n var parts = /^(-?\\d*\\.?\\d+)(px|%)$/.exec(margin);\n if (!parts) {\n throw new Error('rootMargin must be specified in pixels or percent');\n }\n return {value: parseFloat(parts[1]), unit: parts[2]};\n });\n\n // Handles shorthand.\n margins[1] = margins[1] || margins[0];\n margins[2] = margins[2] || margins[0];\n margins[3] = margins[3] || margins[1];\n\n return margins;\n};\n\n\n/**\n * Starts polling for intersection changes if the polling is not already\n * happening, and if the page's visibility state is visible.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._monitorIntersections = function(doc) {\n var win = doc.defaultView;\n if (!win) {\n // Already destroyed.\n return;\n }\n if (this._monitoringDocuments.indexOf(doc) != -1) {\n // Already monitoring.\n return;\n }\n\n // Private state for monitoring.\n var callback = this._checkForIntersections;\n var monitoringInterval = null;\n var domObserver = null;\n\n // If a poll interval is set, use polling instead of listening to\n // resize and scroll events or DOM mutations.\n if (this.POLL_INTERVAL) {\n monitoringInterval = win.setInterval(callback, this.POLL_INTERVAL);\n } else {\n addEvent(win, 'resize', callback, true);\n addEvent(doc, 'scroll', callback, true);\n if (this.USE_MUTATION_OBSERVER && 'MutationObserver' in win) {\n domObserver = new win.MutationObserver(callback);\n domObserver.observe(doc, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true\n });\n }\n }\n\n this._monitoringDocuments.push(doc);\n this._monitoringUnsubscribes.push(function() {\n // Get the window object again. When a friendly iframe is destroyed, it\n // will be null.\n var win = doc.defaultView;\n\n if (win) {\n if (monitoringInterval) {\n win.clearInterval(monitoringInterval);\n }\n removeEvent(win, 'resize', callback, true);\n }\n\n removeEvent(doc, 'scroll', callback, true);\n if (domObserver) {\n domObserver.disconnect();\n }\n });\n\n // Also monitor the parent.\n if (doc != (this.root && this.root.ownerDocument || document)) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._monitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorIntersections = function(doc) {\n var index = this._monitoringDocuments.indexOf(doc);\n if (index == -1) {\n return;\n }\n\n var rootDoc = (this.root && this.root.ownerDocument || document);\n\n // Check if any dependent targets are still remaining.\n var hasDependentTargets =\n this._observationTargets.some(function(item) {\n var itemDoc = item.element.ownerDocument;\n // Target is in this context.\n if (itemDoc == doc) {\n return true;\n }\n // Target is nested in this context.\n while (itemDoc && itemDoc != rootDoc) {\n var frame = getFrameElement(itemDoc);\n itemDoc = frame && frame.ownerDocument;\n if (itemDoc == doc) {\n return true;\n }\n }\n return false;\n });\n if (hasDependentTargets) {\n return;\n }\n\n // Unsubscribe.\n var unsubscribe = this._monitoringUnsubscribes[index];\n this._monitoringDocuments.splice(index, 1);\n this._monitoringUnsubscribes.splice(index, 1);\n unsubscribe();\n\n // Also unmonitor the parent.\n if (doc != rootDoc) {\n var frame = getFrameElement(doc);\n if (frame) {\n this._unmonitorIntersections(frame.ownerDocument);\n }\n }\n};\n\n\n/**\n * Stops polling for intersection changes.\n * @param {!Document} doc\n * @private\n */\nIntersectionObserver.prototype._unmonitorAllIntersections = function() {\n var unsubscribes = this._monitoringUnsubscribes.slice(0);\n this._monitoringDocuments.length = 0;\n this._monitoringUnsubscribes.length = 0;\n for (var i = 0; i < unsubscribes.length; i++) {\n unsubscribes[i]();\n }\n};\n\n\n/**\n * Scans each observation target for intersection changes and adds them\n * to the internal entries queue. If new entries are found, it\n * schedules the callback to be invoked.\n * @private\n */\nIntersectionObserver.prototype._checkForIntersections = function() {\n if (!this.root && crossOriginUpdater && !crossOriginRect) {\n // Cross origin monitoring, but no initial data available yet.\n return;\n }\n\n var rootIsInDom = this._rootIsInDom();\n var rootRect = rootIsInDom ? this._getRootRect() : getEmptyRect();\n\n this._observationTargets.forEach(function(item) {\n var target = item.element;\n var targetRect = getBoundingClientRect(target);\n var rootContainsTarget = this._rootContainsTarget(target);\n var oldEntry = item.entry;\n var intersectionRect = rootIsInDom && rootContainsTarget &&\n this._computeTargetAndRootIntersection(target, targetRect, rootRect);\n\n var newEntry = item.entry = new IntersectionObserverEntry({\n time: now(),\n target: target,\n boundingClientRect: targetRect,\n rootBounds: crossOriginUpdater && !this.root ? null : rootRect,\n intersectionRect: intersectionRect\n });\n\n if (!oldEntry) {\n this._queuedEntries.push(newEntry);\n } else if (rootIsInDom && rootContainsTarget) {\n // If the new entry intersection ratio has crossed any of the\n // thresholds, add a new entry.\n if (this._hasCrossedThreshold(oldEntry, newEntry)) {\n this._queuedEntries.push(newEntry);\n }\n } else {\n // If the root is not in the DOM or target is not contained within\n // root but the previous entry for this target had an intersection,\n // add a new record indicating removal.\n if (oldEntry && oldEntry.isIntersecting) {\n this._queuedEntries.push(newEntry);\n }\n }\n }, this);\n\n if (this._queuedEntries.length) {\n this._callback(this.takeRecords(), this);\n }\n};\n\n\n/**\n * Accepts a target and root rect computes the intersection between then\n * following the algorithm in the spec.\n * TODO(philipwalton): at this time clip-path is not considered.\n * https://w3c.github.io/IntersectionObserver/#calculate-intersection-rect-algo\n * @param {Element} target The target DOM element\n * @param {Object} targetRect The bounding rect of the target.\n * @param {Object} rootRect The bounding rect of the root after being\n * expanded by the rootMargin value.\n * @return {?Object} The final intersection rect object or undefined if no\n * intersection is found.\n * @private\n */\nIntersectionObserver.prototype._computeTargetAndRootIntersection =\n function(target, targetRect, rootRect) {\n // If the element isn't displayed, an intersection can't happen.\n if (window.getComputedStyle(target).display == 'none') return;\n\n var intersectionRect = targetRect;\n var parent = getParentNode(target);\n var atRoot = false;\n\n while (!atRoot && parent) {\n var parentRect = null;\n var parentComputedStyle = parent.nodeType == 1 ?\n window.getComputedStyle(parent) : {};\n\n // If the parent isn't displayed, an intersection can't happen.\n if (parentComputedStyle.display == 'none') return null;\n\n if (parent == this.root || parent.nodeType == /* DOCUMENT */ 9) {\n atRoot = true;\n if (parent == this.root || parent == document) {\n if (crossOriginUpdater && !this.root) {\n if (!crossOriginRect ||\n crossOriginRect.width == 0 && crossOriginRect.height == 0) {\n // A 0-size cross-origin intersection means no-intersection.\n parent = null;\n parentRect = null;\n intersectionRect = null;\n } else {\n parentRect = crossOriginRect;\n }\n } else {\n parentRect = rootRect;\n }\n } else {\n // Check if there's a frame that can be navigated to.\n var frame = getParentNode(parent);\n var frameRect = frame && getBoundingClientRect(frame);\n var frameIntersect =\n frame &&\n this._computeTargetAndRootIntersection(frame, frameRect, rootRect);\n if (frameRect && frameIntersect) {\n parent = frame;\n parentRect = convertFromParentRect(frameRect, frameIntersect);\n } else {\n parent = null;\n intersectionRect = null;\n }\n }\n } else {\n // If the element has a non-visible overflow, and it's not the \n // or element, update the intersection rect.\n // Note: and cannot be clipped to a rect that's not also\n // the document rect, so no need to compute a new intersection.\n var doc = parent.ownerDocument;\n if (parent != doc.body &&\n parent != doc.documentElement &&\n parentComputedStyle.overflow != 'visible') {\n parentRect = getBoundingClientRect(parent);\n }\n }\n\n // If either of the above conditionals set a new parentRect,\n // calculate new intersection data.\n if (parentRect) {\n intersectionRect = computeRectIntersection(parentRect, intersectionRect);\n }\n if (!intersectionRect) break;\n parent = parent && getParentNode(parent);\n }\n return intersectionRect;\n};\n\n\n/**\n * Returns the root rect after being expanded by the rootMargin value.\n * @return {ClientRect} The expanded root rect.\n * @private\n */\nIntersectionObserver.prototype._getRootRect = function() {\n var rootRect;\n if (this.root) {\n rootRect = getBoundingClientRect(this.root);\n } else {\n // Use / instead of window since scroll bars affect size.\n var html = document.documentElement;\n var body = document.body;\n rootRect = {\n top: 0,\n left: 0,\n right: html.clientWidth || body.clientWidth,\n width: html.clientWidth || body.clientWidth,\n bottom: html.clientHeight || body.clientHeight,\n height: html.clientHeight || body.clientHeight\n };\n }\n return this._expandRectByRootMargin(rootRect);\n};\n\n\n/**\n * Accepts a rect and expands it by the rootMargin value.\n * @param {DOMRect|ClientRect} rect The rect object to expand.\n * @return {ClientRect} The expanded rect.\n * @private\n */\nIntersectionObserver.prototype._expandRectByRootMargin = function(rect) {\n var margins = this._rootMarginValues.map(function(margin, i) {\n return margin.unit == 'px' ? margin.value :\n margin.value * (i % 2 ? rect.width : rect.height) / 100;\n });\n var newRect = {\n top: rect.top - margins[0],\n right: rect.right + margins[1],\n bottom: rect.bottom + margins[2],\n left: rect.left - margins[3]\n };\n newRect.width = newRect.right - newRect.left;\n newRect.height = newRect.bottom - newRect.top;\n\n return newRect;\n};\n\n\n/**\n * Accepts an old and new entry and returns true if at least one of the\n * threshold values has been crossed.\n * @param {?IntersectionObserverEntry} oldEntry The previous entry for a\n * particular target element or null if no previous entry exists.\n * @param {IntersectionObserverEntry} newEntry The current entry for a\n * particular target element.\n * @return {boolean} Returns true if a any threshold has been crossed.\n * @private\n */\nIntersectionObserver.prototype._hasCrossedThreshold =\n function(oldEntry, newEntry) {\n\n // To make comparing easier, an entry that has a ratio of 0\n // but does not actually intersect is given a value of -1\n var oldRatio = oldEntry && oldEntry.isIntersecting ?\n oldEntry.intersectionRatio || 0 : -1;\n var newRatio = newEntry.isIntersecting ?\n newEntry.intersectionRatio || 0 : -1;\n\n // Ignore unchanged ratios\n if (oldRatio === newRatio) return;\n\n for (var i = 0; i < this.thresholds.length; i++) {\n var threshold = this.thresholds[i];\n\n // Return true if an entry matches a threshold or if the new ratio\n // and the old ratio are on the opposite sides of a threshold.\n if (threshold == oldRatio || threshold == newRatio ||\n threshold < oldRatio !== threshold < newRatio) {\n return true;\n }\n }\n};\n\n\n/**\n * Returns whether or not the root element is an element and is in the DOM.\n * @return {boolean} True if the root element is an element and is in the DOM.\n * @private\n */\nIntersectionObserver.prototype._rootIsInDom = function() {\n return !this.root || containsDeep(document, this.root);\n};\n\n\n/**\n * Returns whether or not the target element is a child of root.\n * @param {Element} target The target element to check.\n * @return {boolean} True if the target element is a child of root.\n * @private\n */\nIntersectionObserver.prototype._rootContainsTarget = function(target) {\n return containsDeep(this.root || document, target) &&\n (!this.root || this.root.ownerDocument == target.ownerDocument);\n};\n\n\n/**\n * Adds the instance to the global IntersectionObserver registry if it isn't\n * already present.\n * @private\n */\nIntersectionObserver.prototype._registerInstance = function() {\n if (registry.indexOf(this) < 0) {\n registry.push(this);\n }\n};\n\n\n/**\n * Removes the instance from the global IntersectionObserver registry.\n * @private\n */\nIntersectionObserver.prototype._unregisterInstance = function() {\n var index = registry.indexOf(this);\n if (index != -1) registry.splice(index, 1);\n};\n\n\n/**\n * Returns the result of the performance.now() method or null in browsers\n * that don't support the API.\n * @return {number} The elapsed time since the page was requested.\n */\nfunction now() {\n return window.performance && performance.now && performance.now();\n}\n\n\n/**\n * Throttles a function and delays its execution, so it's only called at most\n * once within a given time period.\n * @param {Function} fn The function to throttle.\n * @param {number} timeout The amount of time that must pass before the\n * function can be called again.\n * @return {Function} The throttled function.\n */\nfunction throttle(fn, timeout) {\n var timer = null;\n return function () {\n if (!timer) {\n timer = setTimeout(function() {\n fn();\n timer = null;\n }, timeout);\n }\n };\n}\n\n\n/**\n * Adds an event handler to a DOM node ensuring cross-browser compatibility.\n * @param {Node} node The DOM node to add the event handler to.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to add.\n * @param {boolean} opt_useCapture Optionally adds the even to the capture\n * phase. Note: this only works in modern browsers.\n */\nfunction addEvent(node, event, fn, opt_useCapture) {\n if (typeof node.addEventListener == 'function') {\n node.addEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.attachEvent == 'function') {\n node.attachEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Removes a previously added event handler from a DOM node.\n * @param {Node} node The DOM node to remove the event handler from.\n * @param {string} event The event name.\n * @param {Function} fn The event handler to remove.\n * @param {boolean} opt_useCapture If the event handler was added with this\n * flag set to true, it should be set to true here in order to remove it.\n */\nfunction removeEvent(node, event, fn, opt_useCapture) {\n if (typeof node.removeEventListener == 'function') {\n node.removeEventListener(event, fn, opt_useCapture || false);\n }\n else if (typeof node.detatchEvent == 'function') {\n node.detatchEvent('on' + event, fn);\n }\n}\n\n\n/**\n * Returns the intersection between two rect objects.\n * @param {Object} rect1 The first rect.\n * @param {Object} rect2 The second rect.\n * @return {?Object|?ClientRect} The intersection rect or undefined if no\n * intersection is found.\n */\nfunction computeRectIntersection(rect1, rect2) {\n var top = Math.max(rect1.top, rect2.top);\n var bottom = Math.min(rect1.bottom, rect2.bottom);\n var left = Math.max(rect1.left, rect2.left);\n var right = Math.min(rect1.right, rect2.right);\n var width = right - left;\n var height = bottom - top;\n\n return (width >= 0 && height >= 0) && {\n top: top,\n bottom: bottom,\n left: left,\n right: right,\n width: width,\n height: height\n } || null;\n}\n\n\n/**\n * Shims the native getBoundingClientRect for compatibility with older IE.\n * @param {Element} el The element whose bounding rect to get.\n * @return {DOMRect|ClientRect} The (possibly shimmed) rect of the element.\n */\nfunction getBoundingClientRect(el) {\n var rect;\n\n try {\n rect = el.getBoundingClientRect();\n } catch (err) {\n // Ignore Windows 7 IE11 \"Unspecified error\"\n // https://github.com/w3c/IntersectionObserver/pull/205\n }\n\n if (!rect) return getEmptyRect();\n\n // Older IE\n if (!(rect.width && rect.height)) {\n rect = {\n top: rect.top,\n right: rect.right,\n bottom: rect.bottom,\n left: rect.left,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n }\n return rect;\n}\n\n\n/**\n * Returns an empty rect object. An empty rect is returned when an element\n * is not in the DOM.\n * @return {ClientRect} The empty rect.\n */\nfunction getEmptyRect() {\n return {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n width: 0,\n height: 0\n };\n}\n\n\n/**\n * Ensure that the result has all of the necessary fields of the DOMRect.\n * Specifically this ensures that `x` and `y` fields are set.\n *\n * @param {?DOMRect|?ClientRect} rect\n * @return {?DOMRect}\n */\nfunction ensureDOMRect(rect) {\n // A `DOMRect` object has `x` and `y` fields.\n if (!rect || 'x' in rect) {\n return rect;\n }\n // A IE's `ClientRect` type does not have `x` and `y`. The same is the case\n // for internally calculated Rect objects. For the purposes of\n // `IntersectionObserver`, it's sufficient to simply mirror `left` and `top`\n // for these fields.\n return {\n top: rect.top,\n y: rect.top,\n bottom: rect.bottom,\n left: rect.left,\n x: rect.left,\n right: rect.right,\n width: rect.width,\n height: rect.height\n };\n}\n\n\n/**\n * Inverts the intersection and bounding rect from the parent (frame) BCR to\n * the local BCR space.\n * @param {DOMRect|ClientRect} parentBoundingRect The parent's bound client rect.\n * @param {DOMRect|ClientRect} parentIntersectionRect The parent's own intersection rect.\n * @return {ClientRect} The local root bounding rect for the parent's children.\n */\nfunction convertFromParentRect(parentBoundingRect, parentIntersectionRect) {\n var top = parentIntersectionRect.top - parentBoundingRect.top;\n var left = parentIntersectionRect.left - parentBoundingRect.left;\n return {\n top: top,\n left: left,\n height: parentIntersectionRect.height,\n width: parentIntersectionRect.width,\n bottom: top + parentIntersectionRect.height,\n right: left + parentIntersectionRect.width\n };\n}\n\n\n/**\n * Checks to see if a parent element contains a child element (including inside\n * shadow DOM).\n * @param {Node} parent The parent element.\n * @param {Node} child The child element.\n * @return {boolean} True if the parent node contains the child node.\n */\nfunction containsDeep(parent, child) {\n var node = child;\n while (node) {\n if (node == parent) return true;\n\n node = getParentNode(node);\n }\n return false;\n}\n\n\n/**\n * Gets the parent node of an element or its host element if the parent node\n * is a shadow root.\n * @param {Node} node The node whose parent to get.\n * @return {Node|null} The parent node or null if no parent exists.\n */\nfunction getParentNode(node) {\n var parent = node.parentNode;\n\n if (node.nodeType == /* DOCUMENT */ 9 && node != document) {\n // If this node is a document node, look for the embedding frame.\n return getFrameElement(node);\n }\n\n if (parent && parent.nodeType == 11 && parent.host) {\n // If the parent is a shadow root, return the host element.\n return parent.host;\n }\n\n if (parent && parent.assignedSlot) {\n // If the parent is distributed in a , return the parent of a slot.\n return parent.assignedSlot.parentNode;\n }\n\n return parent;\n}\n\n\n/**\n * Returns the embedding frame element, if any.\n * @param {!Document} doc\n * @return {!Element}\n */\nfunction getFrameElement(doc) {\n try {\n return doc.defaultView && doc.defaultView.frameElement || null;\n } catch (e) {\n // Ignore the error.\n return null;\n }\n}\n\n\n// Exposes the constructors globally.\nwindow.IntersectionObserver = IntersectionObserver;\nwindow.IntersectionObserverEntry = IntersectionObserverEntry;\n\n}());\n"],"sourceRoot":""}