/*! * Webflow: Front-end site library * @license MIT * Inline scripts may access the api using an async handler: * var Webflow = Webflow || []; * Webflow.push(readyFunction); */ /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 120); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } module.exports = _interopRequireDefault; /***/ }), /* 1 */ /***/ (function(module, exports) { /** * Checks if `value` is classified as an `Array` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an array, else `false`. * @example * * _.isArray([1, 2, 3]); * // => true * * _.isArray(document.body.children); * // => false * * _.isArray('abc'); * // => false * * _.isArray(_.noop); * // => false */ var isArray = Array.isArray; module.exports = isArray; /***/ }), /* 2 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(13); Object.defineProperty(exports, "__esModule", { value: true }); var _exportNames = { IX2EngineActionTypes: true, IX2EngineConstants: true }; exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; var _triggerEvents = __webpack_require__(169); Object.keys(_triggerEvents).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _triggerEvents[key]; } }); }); var _animationActions = __webpack_require__(170); Object.keys(_animationActions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _animationActions[key]; } }); }); var _triggerInteractions = __webpack_require__(171); Object.keys(_triggerInteractions).forEach(function (key) { if (key === "default" || key === "__esModule") return; if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; Object.defineProperty(exports, key, { enumerable: true, get: function get() { return _triggerInteractions[key]; } }); }); var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(172)); exports.IX2EngineActionTypes = IX2EngineActionTypes; var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(173)); exports.IX2EngineConstants = IX2EngineConstants; /***/ }), /* 3 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {var O = 'object'; var check = function (it) { return it && it.Math == Math && it; }; // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 module.exports = // eslint-disable-next-line no-undef check(typeof globalThis == O && globalThis) || check(typeof window == O && window) || check(typeof self == O && self) || check(typeof global == O && global) || // eslint-disable-next-line no-new-func Function('return this')(); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) /***/ }), /* 4 */ /***/ (function(module, exports, __webpack_require__) { var freeGlobal = __webpack_require__(89); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = freeGlobal || freeSelf || Function('return this')(); module.exports = root; /***/ }), /* 5 */ /***/ (function(module, exports) { /** * Checks if `value` is the * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an object, else `false`. * @example * * _.isObject({}); * // => true * * _.isObject([1, 2, 3]); * // => true * * _.isObject(_.noop); * // => true * * _.isObject(null); * // => false */ function isObject(value) { var type = typeof value; return value != null && (type == 'object' || type == 'function'); } module.exports = isObject; /***/ }), /* 6 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document, navigator, WEBFLOW_ENV_TEST */ /* eslint-disable no-var */ /** * Webflow: Core site library */ var Webflow = {}; var modules = {}; var primary = []; var secondary = window.Webflow || []; var $ = window.jQuery; var $win = $(window); var $doc = $(document); var isFunction = $.isFunction; var _ = Webflow._ = __webpack_require__(122); var tram = Webflow.tram = __webpack_require__(65) && $.tram; var domready = false; var destroyed = false; tram.config.hideBackface = false; tram.config.keepInherited = true; /** * Webflow.define - Define a named module * @param {string} name * @param {function} factory * @param {object} options * @return {object} */ Webflow.define = function (name, factory, options) { if (modules[name]) { unbindModule(modules[name]); } var instance = modules[name] = factory($, _, options) || {}; bindModule(instance); return instance; }; /** * Webflow.require - Require a named module * @param {string} name * @return {object} */ Webflow.require = function (name) { return modules[name]; }; function bindModule(module) { // If running in Webflow app, subscribe to design/preview events if (Webflow.env()) { isFunction(module.design) && $win.on('__wf_design', module.design); isFunction(module.preview) && $win.on('__wf_preview', module.preview); } // Subscribe to front-end destroy event isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module if (module.ready && isFunction(module.ready)) { addReady(module); } } function addReady(module) { // If domready has already happened, run ready method if (domready) { module.ready(); return; } // Otherwise add ready method to the primary queue (only once) if (_.contains(primary, module.ready)) { return; } primary.push(module.ready); } function unbindModule(module) { // Unsubscribe module from window events isFunction(module.design) && $win.off('__wf_design', module.design); isFunction(module.preview) && $win.off('__wf_preview', module.preview); isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue if (module.ready && isFunction(module.ready)) { removeReady(module); } } function removeReady(module) { primary = _.filter(primary, function (readyFn) { return readyFn !== module.ready; }); } /** * Webflow.push - Add a ready handler into secondary queue * @param {function} ready Callback to invoke on domready */ Webflow.push = function (ready) { // If domready has already happened, invoke handler if (domready) { isFunction(ready) && ready(); return; } // Otherwise push into secondary queue secondary.push(ready); }; /** * Webflow.env - Get the state of the Webflow app * @param {string} mode [optional] * @return {boolean} */ Webflow.env = function (mode) { var designFlag = window.__wf_design; var inApp = typeof designFlag !== 'undefined'; if (!mode) { return inApp; } if (mode === 'design') { return inApp && designFlag; } if (mode === 'preview') { return inApp && !designFlag; } if (mode === 'slug') { return inApp && window.__wf_slug; } if (mode === 'editor') { return window.WebflowEditor; } if (mode === 'test') { return false || window.__wf_test; } if (mode === 'frame') { return window !== window.top; } }; // Feature detects + browser sniffs ಠ_ಠ var userAgent = navigator.userAgent.toLowerCase(); var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices var touchTarget; // Listen for both events to support touch/mouse hybrid devices touch && $doc.on('touchstart mousedown', function (evt) { touchTarget = evt.target; }); /** * Webflow.validClick - validate click target against current touch target * @param {HTMLElement} clickTarget Element being clicked * @return {Boolean} True if click target is valid (always true on non-touch) */ Webflow.validClick = touch ? function (clickTarget) { return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); } : function () { return true; }; /** * Webflow.resize, Webflow.scroll - throttled event proxies */ var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow'; var scrollEvents = 'scroll.webflow ' + resizeEvents; Webflow.resize = eventProxy($win, resizeEvents); Webflow.scroll = eventProxy($win, scrollEvents); Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events function eventProxy(target, types) { // Set up throttled method (using custom frame-based _.throttle) var handlers = []; var proxy = {}; proxy.up = _.throttle(function (evt) { _.each(handlers, function (h) { h(evt); }); }); // Bind events to target if (target && types) { target.on(types, proxy.up); } /** * Add an event handler * @param {function} handler */ proxy.on = function (handler) { if (typeof handler !== 'function') { return; } if (_.contains(handlers, handler)) { return; } handlers.push(handler); }; /** * Remove an event handler * @param {function} handler */ proxy.off = function (handler) { // If no arguments supplied, clear all handlers if (!arguments.length) { handlers = []; return; } // Otherwise, remove handler from the list handlers = _.filter(handlers, function (h) { return h !== handler; }); }; return proxy; } // Webflow.location - Wrap window.location in api Webflow.location = function (url) { window.location = url; }; if (Webflow.env()) { // Ignore redirects inside a Webflow design/edit environment Webflow.location = function () {}; } // Webflow.ready - Call primary and secondary handlers Webflow.ready = function () { domready = true; // Restore modules after destroy if (destroyed) { restoreModules(); // Otherwise run primary ready methods } else { _.each(primary, callReady); } // Run secondary ready methods _.each(secondary, callReady); // Trigger resize Webflow.resize.up(); }; function callReady(readyFn) { isFunction(readyFn) && readyFn(); } function restoreModules() { destroyed = false; _.each(modules, bindModule); } /** * Webflow.load - Add a window load handler that will run even if load event has already happened * @param {function} handler */ var deferLoad; Webflow.load = function (handler) { deferLoad.then(handler); }; function bindLoad() { // Reject any previous deferred (to support destroy) if (deferLoad) { deferLoad.reject(); $win.off('load', deferLoad.resolve); } // Create deferred and bind window load event deferLoad = new $.Deferred(); $win.on('load', deferLoad.resolve); } // Webflow.destroy - Trigger a destroy event for all modules Webflow.destroy = function (options) { options = options || {}; destroyed = true; $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests if (options.domready != null) { domready = options.domready; } // Unbind modules _.each(modules, unbindModule); // Clear any proxy event handlers Webflow.resize.off(); Webflow.scroll.off(); Webflow.redraw.off(); // Clear any queued ready methods primary = []; secondary = []; // If load event has not yet fired, replace the deferred if (deferLoad.state() === 'pending') { bindLoad(); } }; // Listen for domready $(Webflow.ready); // Listen for window.onload and resolve deferred bindLoad(); // Export commonjs module module.exports = window.Webflow = Webflow; /***/ }), /* 7 */ /***/ (function(module, exports, __webpack_require__) { var baseMatches = __webpack_require__(176), baseMatchesProperty = __webpack_require__(230), identity = __webpack_require__(59), isArray = __webpack_require__(1), property = __webpack_require__(239); /** * The base implementation of `_.iteratee`. * * @private * @param {*} [value=_.identity] The value to convert to an iteratee. * @returns {Function} Returns the iteratee. */ function baseIteratee(value) { // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. if (typeof value == 'function') { return value; } if (value == null) { return identity; } if (typeof value == 'object') { return isArray(value) ? baseMatchesProperty(value[0], value[1]) : baseMatches(value); } return property(value); } module.exports = baseIteratee; /***/ }), /* 8 */ /***/ (function(module, exports, __webpack_require__) { var baseIsNative = __webpack_require__(188), getValue = __webpack_require__(193); /** * Gets the native function at `key` of `object`. * * @private * @param {Object} object The object to query. * @param {string} key The key of the method to get. * @returns {*} Returns the function if it's native, else `undefined`. */ function getNative(object, key) { var value = getValue(object, key); return baseIsNative(value) ? value : undefined; } module.exports = getNative; /***/ }), /* 9 */ /***/ (function(module, exports) { /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && typeof value == 'object'; } module.exports = isObjectLike; /***/ }), /* 10 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(13); Object.defineProperty(exports, "__esModule", { value: true }); exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exports.IX2BrowserSupport = void 0; var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(44)); exports.IX2BrowserSupport = IX2BrowserSupport; var IX2Easings = _interopRequireWildcard(__webpack_require__(106)); exports.IX2Easings = IX2Easings; var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(108)); exports.IX2EasingUtils = IX2EasingUtils; var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(246)); exports.IX2ElementsReducer = IX2ElementsReducer; var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(110)); exports.IX2VanillaPlugins = IX2VanillaPlugins; var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(248)); exports.IX2VanillaUtils = IX2VanillaUtils; /***/ }), /* 11 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(19), getRawTag = __webpack_require__(189), objectToString = __webpack_require__(190); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return (symToStringTag && symToStringTag in Object(value)) ? getRawTag(value) : objectToString(value); } module.exports = baseGetTag; /***/ }), /* 12 */ /***/ (function(module, exports, __webpack_require__) { var isFunction = __webpack_require__(88), isLength = __webpack_require__(52); /** * Checks if `value` is array-like. A value is considered array-like if it's * not a function and has a `value.length` that's an integer greater than or * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is array-like, else `false`. * @example * * _.isArrayLike([1, 2, 3]); * // => true * * _.isArrayLike(document.body.children); * // => true * * _.isArrayLike('abc'); * // => true * * _.isArrayLike(_.noop); * // => false */ function isArrayLike(value) { return value != null && isLength(value.length) && !isFunction(value); } module.exports = isArrayLike; /***/ }), /* 13 */ /***/ (function(module, exports) { function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj["default"] = obj; return newObj; } } module.exports = _interopRequireWildcard; /***/ }), /* 14 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(15); // Thank's IE8 for his funny defineProperty module.exports = !fails(function () { return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 15 */ /***/ (function(module, exports) { module.exports = function (exec) { try { return !!exec(); } catch (error) { return true; } }; /***/ }), /* 16 */ /***/ (function(module, exports) { var hasOwnProperty = {}.hasOwnProperty; module.exports = function (it, key) { return hasOwnProperty.call(it, key); }; /***/ }), /* 17 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(14); var definePropertyModule = __webpack_require__(38); var createPropertyDescriptor = __webpack_require__(67); module.exports = DESCRIPTORS ? function (object, key, value) { return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /* 18 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; exports.clone = clone; exports.addLast = addLast; exports.addFirst = addFirst; exports.removeLast = removeLast; exports.removeFirst = removeFirst; exports.insert = insert; exports.removeAt = removeAt; exports.replaceAt = replaceAt; exports.getIn = getIn; exports.set = set; exports.setIn = setIn; exports.update = update; exports.updateIn = updateIn; exports.merge = merge; exports.mergeDeep = mergeDeep; exports.mergeIn = mergeIn; exports.omit = omit; exports.addDefaults = addDefaults; /*! * Timm * * Immutability helpers with fast reads and acceptable writes. * * @copyright Guillermo Grau Panea 2016 * @license MIT */ var INVALID_ARGS = 'INVALID_ARGS'; // =============================================== // ### Helpers // =============================================== function throwStr(msg) { throw new Error(msg); } function getKeysAndSymbols(obj) { var keys = Object.keys(obj); if (Object.getOwnPropertySymbols) { return keys.concat(Object.getOwnPropertySymbols(obj)); } return keys; } var hasOwnProperty = {}.hasOwnProperty; function clone(obj) { if (Array.isArray(obj)) return obj.slice(); var keys = getKeysAndSymbols(obj); var out = {}; for (var i = 0; i < keys.length; i++) { var key = keys[i]; out[key] = obj[key]; } return out; } function doMerge(fAddDefaults, fDeep, first) { var out = first; !(out != null) && throwStr( false ? undefined : INVALID_ARGS); var fChanged = false; for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { rest[_key - 3] = arguments[_key]; } for (var idx = 0; idx < rest.length; idx++) { var obj = rest[idx]; if (obj == null) continue; var keys = getKeysAndSymbols(obj); if (!keys.length) continue; for (var j = 0; j <= keys.length; j++) { var key = keys[j]; if (fAddDefaults && out[key] !== undefined) continue; var nextVal = obj[key]; if (fDeep && isObject(out[key]) && isObject(nextVal)) { nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); } if (nextVal === undefined || nextVal === out[key]) continue; if (!fChanged) { fChanged = true; out = clone(out); } out[key] = nextVal; } } return out; } function isObject(o) { var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); return o != null && (type === 'object' || type === 'function'); } // _deepFreeze = (obj) -> // Object.freeze obj // for key in Object.getOwnPropertyNames obj // val = obj[key] // if isObject(val) and not Object.isFrozen val // _deepFreeze val // obj // =============================================== // -- ### Arrays // =============================================== // -- #### addLast() // -- Returns a new array with an appended item or items. // -- // -- Usage: `addLast(array: Array, val: Array|T): Array` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = addLast(arr, 'c') // -- // ['a', 'b', 'c'] // -- arr2 === arr // -- // false // -- arr3 = addLast(arr, ['c', 'd']) // -- // ['a', 'b', 'c', 'd'] // -- ``` // `array.concat(val)` also handles the scalar case, // but is apparently very slow function addLast(array, val) { if (Array.isArray(val)) return array.concat(val); return array.concat([val]); } // -- #### addFirst() // -- Returns a new array with a prepended item or items. // -- // -- Usage: `addFirst(array: Array, val: Array|T): Array` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = addFirst(arr, 'c') // -- // ['c', 'a', 'b'] // -- arr2 === arr // -- // false // -- arr3 = addFirst(arr, ['c', 'd']) // -- // ['c', 'd', 'a', 'b'] // -- ``` function addFirst(array, val) { if (Array.isArray(val)) return val.concat(array); return [val].concat(array); } // -- #### removeLast() // -- Returns a new array removing the last item. // -- // -- Usage: `removeLast(array: Array): Array` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = removeLast(arr) // -- // ['a'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- arr3 = [] // -- removeLast(arr3) === arr3 // -- // true // -- ``` function removeLast(array) { if (!array.length) return array; return array.slice(0, array.length - 1); } // -- #### removeFirst() // -- Returns a new array removing the first item. // -- // -- Usage: `removeFirst(array: Array): Array` // -- // -- ```js // -- arr = ['a', 'b'] // -- arr2 = removeFirst(arr) // -- // ['b'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- arr3 = [] // -- removeFirst(arr3) === arr3 // -- // true // -- ``` function removeFirst(array) { if (!array.length) return array; return array.slice(1); } // -- #### insert() // -- Returns a new array obtained by inserting an item or items // -- at a specified index. // -- // -- Usage: `insert(array: Array, idx: number, val: Array|T): Array` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = insert(arr, 1, 'd') // -- // ['a', 'd', 'b', 'c'] // -- arr2 === arr // -- // false // -- insert(arr, 1, ['d', 'e']) // -- // ['a', 'd', 'e', 'b', 'c'] // -- ``` function insert(array, idx, val) { return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); } // -- #### removeAt() // -- Returns a new array obtained by removing an item at // -- a specified index. // -- // -- Usage: `removeAt(array: Array, idx: number): Array` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = removeAt(arr, 1) // -- // ['a', 'c'] // -- arr2 === arr // -- // false // -- // -- // The same array is returned if there are no changes: // -- removeAt(arr, 4) === arr // -- // true // -- ``` function removeAt(array, idx) { if (idx >= array.length || idx < 0) return array; return array.slice(0, idx).concat(array.slice(idx + 1)); } // -- #### replaceAt() // -- Returns a new array obtained by replacing an item at // -- a specified index. If the provided item is the same as // -- (*referentially equal to*) the previous item at that position, // -- the original array is returned. // -- // -- Usage: `replaceAt(array: Array, idx: number, newItem: T): Array` // -- // -- ```js // -- arr = ['a', 'b', 'c'] // -- arr2 = replaceAt(arr, 1, 'd') // -- // ['a', 'd', 'c'] // -- arr2 === arr // -- // false // -- // -- // The same object is returned if there are no changes: // -- replaceAt(arr, 1, 'b') === arr // -- // true // -- ``` function replaceAt(array, idx, newItem) { if (array[idx] === newItem) return array; var len = array.length; var result = Array(len); for (var i = 0; i < len; i++) { result[i] = array[i]; } result[idx] = newItem; return result; } // =============================================== // -- ### Collections (objects and arrays) // =============================================== // -- The following types are used throughout this section // -- ```js // -- type ArrayOrObject = Array|Object; // -- type Key = number|string; // -- ``` // -- #### getIn() // -- Returns a value from an object at a given path. Works with // -- nested arrays and objects. If the path does not exist, it returns // -- `undefined`. // -- // -- Usage: `getIn(obj: ?ArrayOrObject, path: Array): any` // -- // -- ```js // -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } // -- getIn(obj, ['d', 'd1']) // -- // 3 // -- getIn(obj, ['e', 1]) // -- // 'b' // -- ``` function getIn(obj, path) { !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); if (obj == null) return undefined; var ptr = obj; for (var i = 0; i < path.length; i++) { var key = path[i]; ptr = ptr != null ? ptr[key] : undefined; if (ptr === undefined) return ptr; } return ptr; } // -- #### set() // -- Returns a new object with a modified attribute. // -- If the provided value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `set(obj: ?T, key: Key, val: any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, c: 3 } // -- obj2 = set(obj, 'b', 5) // -- // { a: 1, b: 5, c: 3 } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- set(obj, 'b', 2) === obj // -- // true // -- ``` function set(obj, key, val) { var fallback = typeof key === 'number' ? [] : {}; var finalObj = obj == null ? fallback : obj; if (finalObj[key] === val) return finalObj; var obj2 = clone(finalObj); obj2[key] = val; return obj2; } // -- #### setIn() // -- Returns a new object with a modified **nested** attribute. // -- // -- Notes: // -- // -- * If the provided value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- * If the path does not exist, it will be created before setting // -- the new value. // -- // -- Usage: `setIn(obj: T, path: Array, val: any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj2 = setIn(obj, ['d', 'd1'], 4) // -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj2 === obj // -- // false // -- obj2.d === obj.d // -- // false // -- obj2.e === obj.e // -- // true // -- // -- // The same object is returned if there are no changes: // -- obj3 = setIn(obj, ['d', 'd1'], 3) // -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } // -- obj3 === obj // -- // true // -- obj3.d === obj.d // -- // true // -- obj3.e === obj.e // -- // true // -- // -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: // -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) // -- // { a: 3, unknown: [{ path: 4 }] } // -- ``` function doSetIn(obj, path, val, idx) { var newValue = void 0; var key = path[idx]; if (idx === path.length - 1) { newValue = val; } else { var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; newValue = doSetIn(nestedObj, path, val, idx + 1); } return set(obj, key, newValue); } function setIn(obj, path, val) { if (!path.length) return val; return doSetIn(obj, path, val, 0); } // -- #### update() // -- Returns a new object with a modified attribute, // -- calculated via a user-provided callback based on the current value. // -- If the calculated value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `update(obj: T, key: Key, // -- fnUpdate: (prevValue: any) => any): T` // -- // -- ```js // -- obj = { a: 1, b: 2, c: 3 } // -- obj2 = update(obj, 'b', (val) => val + 1) // -- // { a: 1, b: 3, c: 3 } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- update(obj, 'b', (val) => val) === obj // -- // true // -- ``` function update(obj, key, fnUpdate) { var prevVal = obj == null ? undefined : obj[key]; var nextVal = fnUpdate(prevVal); return set(obj, key, nextVal); } // -- #### updateIn() // -- Returns a new object with a modified **nested** attribute, // -- calculated via a user-provided callback based on the current value. // -- If the calculated value is the same as (*referentially equal to*) // -- the previous value, the original object is returned. // -- // -- Usage: `updateIn(obj: T, path: Array, // -- fnUpdate: (prevValue: any) => any): T` // -- // -- ```js // -- obj = { a: 1, d: { d1: 3, d2: 4 } } // -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) // -- // { a: 1, d: { d1: 4, d2: 4 } } // -- obj2 === obj // -- // false // -- // -- // The same object is returned if there are no changes: // -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) // -- // { a: 1, d: { d1: 3, d2: 4 } } // -- obj3 === obj // -- // true // -- ``` function updateIn(obj, path, fnUpdate) { var prevVal = getIn(obj, path); var nextVal = fnUpdate(prevVal); return setIn(obj, path, nextVal); } // -- #### merge() // -- Returns a new object built as follows: the overlapping keys from the // -- second one overwrite the corresponding entries from the first one. // -- Similar to `Object.assign()`, but immutable. // -- // -- Usage: // -- // -- * `merge(obj1: Object, obj2: ?Object): Object` // -- * `merge(obj1: Object, ...objects: Array): Object` // -- // -- The unmodified `obj1` is returned if `obj2` does not *provide something // -- new to* `obj1`, i.e. if either of the following // -- conditions are true: // -- // -- * `obj2` is `null` or `undefined` // -- * `obj2` is an object, but it is empty // -- * All attributes of `obj2` are `undefined` // -- * All attributes of `obj2` are referentially equal to the // -- corresponding attributes of `obj1` // -- // -- Note that `undefined` attributes in `obj2` do not modify the // -- corresponding attributes in `obj1`. // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: 3 } // -- obj2 = { c: 4, d: 5 } // -- obj3 = merge(obj1, obj2) // -- // { a: 1, b: 2, c: 4, d: 5 } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- merge(obj1, { c: 3 }) === obj1 // -- // true // -- ``` function merge(a, b, c, d, e, f) { for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { rest[_key2 - 6] = arguments[_key2]; } return rest.length ? doMerge.call.apply(doMerge, [null, false, false, a, b, c, d, e, f].concat(rest)) : doMerge(false, false, a, b, c, d, e, f); } // -- #### mergeDeep() // -- Returns a new object built as follows: the overlapping keys from the // -- second one overwrite the corresponding entries from the first one. // -- If both the first and second entries are objects they are merged recursively. // -- Similar to `Object.assign()`, but immutable, and deeply merging. // -- // -- Usage: // -- // -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` // -- * `mergeDeep(obj1: Object, ...objects: Array): Object` // -- // -- The unmodified `obj1` is returned if `obj2` does not *provide something // -- new to* `obj1`, i.e. if either of the following // -- conditions are true: // -- // -- * `obj2` is `null` or `undefined` // -- * `obj2` is an object, but it is empty // -- * All attributes of `obj2` are `undefined` // -- * All attributes of `obj2` are referentially equal to the // -- corresponding attributes of `obj1` // -- // -- Note that `undefined` attributes in `obj2` do not modify the // -- corresponding attributes in `obj1`. // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: { a: 1 } } // -- obj2 = { b: 3, c: { b: 2 } } // -- obj3 = mergeDeep(obj1, obj2) // -- // { a: 1, b: 3, c: { a: 1, b: 2 } } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 // -- // true // -- ``` function mergeDeep(a, b, c, d, e, f) { for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { rest[_key3 - 6] = arguments[_key3]; } return rest.length ? doMerge.call.apply(doMerge, [null, false, true, a, b, c, d, e, f].concat(rest)) : doMerge(false, true, a, b, c, d, e, f); } // -- #### mergeIn() // -- Similar to `merge()`, but merging the value at a given nested path. // -- Note that the returned type is the same as that of the first argument. // -- // -- Usage: // -- // -- * `mergeIn(obj1: T, path: Array, obj2: ?Object): T` // -- * `mergeIn(obj1: T, path: Array, // -- ...objects: Array): T` // -- // -- ```js // -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } // -- obj2 = { d3: 5 } // -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) // -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 // -- // true // -- ``` function mergeIn(a, path, b, c, d, e, f) { var prevVal = getIn(a, path); if (prevVal == null) prevVal = {}; var nextVal = void 0; for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { rest[_key4 - 7] = arguments[_key4]; } if (rest.length) { nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); } else { nextVal = doMerge(false, false, prevVal, b, c, d, e, f); } return setIn(a, path, nextVal); } // -- #### omit() // -- Returns an object excluding one or several attributes. // -- // -- Usage: `omit(obj: Object, attrs: Array|string): Object` // // -- ```js // -- obj = { a: 1, b: 2, c: 3, d: 4 } // -- omit(obj, 'a') // -- // { b: 2, c: 3, d: 4 } // -- omit(obj, ['b', 'c']) // -- // { a: 1, d: 4 } // -- // -- // The same object is returned if there are no changes: // -- omit(obj, 'z') === obj1 // -- // true // -- ``` function omit(obj, attrs) { var omitList = Array.isArray(attrs) ? attrs : [attrs]; var fDoSomething = false; for (var i = 0; i < omitList.length; i++) { if (hasOwnProperty.call(obj, omitList[i])) { fDoSomething = true; break; } } if (!fDoSomething) return obj; var out = {}; var keys = getKeysAndSymbols(obj); for (var _i = 0; _i < keys.length; _i++) { var key = keys[_i]; if (omitList.indexOf(key) >= 0) continue; out[key] = obj[key]; } return out; } // -- #### addDefaults() // -- Returns a new object built as follows: `undefined` keys in the first one // -- are filled in with the corresponding values from the second one // -- (even if they are `null`). // -- // -- Usage: // -- // -- * `addDefaults(obj: Object, defaults: Object): Object` // -- * `addDefaults(obj: Object, ...defaultObjects: Array): Object` // -- // -- ```js // -- obj1 = { a: 1, b: 2, c: 3 } // -- obj2 = { c: 4, d: 5, e: null } // -- obj3 = addDefaults(obj1, obj2) // -- // { a: 1, b: 2, c: 3, d: 5, e: null } // -- obj3 === obj1 // -- // false // -- // -- // The same object is returned if there are no changes: // -- addDefaults(obj1, { c: 4 }) === obj1 // -- // true // -- ``` function addDefaults(a, b, c, d, e, f) { for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { rest[_key5 - 6] = arguments[_key5]; } return rest.length ? doMerge.call.apply(doMerge, [null, true, false, a, b, c, d, e, f].concat(rest)) : doMerge(true, false, a, b, c, d, e, f); } // =============================================== // ### Public API // =============================================== var timm = { clone: clone, addLast: addLast, addFirst: addFirst, removeLast: removeLast, removeFirst: removeFirst, insert: insert, removeAt: removeAt, replaceAt: replaceAt, getIn: getIn, // eslint-disable-next-line object-shorthand set: set, // so that flow doesn't complain setIn: setIn, update: update, updateIn: updateIn, merge: merge, mergeDeep: mergeDeep, mergeIn: mergeIn, omit: omit, addDefaults: addDefaults }; exports.default = timm; /***/ }), /* 19 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(4); /** Built-in value references. */ var Symbol = root.Symbol; module.exports = Symbol; /***/ }), /* 20 */ /***/ (function(module, exports, __webpack_require__) { var isSymbol = __webpack_require__(35); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; /** * Converts `value` to a string key if it's not a string or symbol. * * @private * @param {*} value The value to inspect. * @returns {string|symbol} Returns the key. */ function toKey(value) { if (typeof value == 'string' || isSymbol(value)) { return value; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } module.exports = toKey; /***/ }), /* 21 */ /***/ (function(module, exports) { function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } function _typeof(obj) { if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { module.exports = _typeof = function _typeof(obj) { return _typeof2(obj); }; } else { module.exports = _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); }; } return _typeof(obj); } module.exports = _typeof; /***/ }), /* 22 */ /***/ (function(module, exports) { var g; // This works in non-strict mode g = (function() { return this; })(); try { // This works if eval is allowed (see CSP) g = g || new Function("return this")(); } catch (e) { // This works if the window reference is available if (typeof window === "object") g = window; } // g can still be undefined, but nothing to do about it... // We return undefined, instead of nothing here, so it's // easier to handle this case. if(!global) { ...} module.exports = g; /***/ }), /* 23 */ /***/ (function(module, exports) { module.exports = function (it) { return typeof it === 'object' ? it !== null : typeof it === 'function'; }; /***/ }), /* 24 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(23); module.exports = function (it) { if (!isObject(it)) { throw TypeError(String(it) + ' is not an object'); } return it; }; /***/ }), /* 25 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var setGlobal = __webpack_require__(39); var IS_PURE = __webpack_require__(135); var SHARED = '__core-js_shared__'; var store = global[SHARED] || setGlobal(SHARED, {}); (module.exports = function (key, value) { return store[key] || (store[key] = value !== undefined ? value : {}); })('versions', []).push({ version: '3.1.3', mode: IS_PURE ? 'pure' : 'global', copyright: '© 2019 Denis Pushkarev (zloirock.ru)' }); /***/ }), /* 26 */ /***/ (function(module, exports) { function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } module.exports = _defineProperty; /***/ }), /* 27 */ /***/ (function(module, exports) { function _extends() { module.exports = _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } module.exports = _extends; /***/ }), /* 28 */ /***/ (function(module, exports, __webpack_require__) { var listCacheClear = __webpack_require__(178), listCacheDelete = __webpack_require__(179), listCacheGet = __webpack_require__(180), listCacheHas = __webpack_require__(181), listCacheSet = __webpack_require__(182); /** * Creates an list cache object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function ListCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `ListCache`. ListCache.prototype.clear = listCacheClear; ListCache.prototype['delete'] = listCacheDelete; ListCache.prototype.get = listCacheGet; ListCache.prototype.has = listCacheHas; ListCache.prototype.set = listCacheSet; module.exports = ListCache; /***/ }), /* 29 */ /***/ (function(module, exports, __webpack_require__) { var eq = __webpack_require__(45); /** * Gets the index at which the `key` is found in `array` of key-value pairs. * * @private * @param {Array} array The array to inspect. * @param {*} key The key to search for. * @returns {number} Returns the index of the matched value, else `-1`. */ function assocIndexOf(array, key) { var length = array.length; while (length--) { if (eq(array[length][0], key)) { return length; } } return -1; } module.exports = assocIndexOf; /***/ }), /* 30 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8); /* Built-in method references that are verified to be native. */ var nativeCreate = getNative(Object, 'create'); module.exports = nativeCreate; /***/ }), /* 31 */ /***/ (function(module, exports, __webpack_require__) { var isKeyable = __webpack_require__(202); /** * Gets the data for `map`. * * @private * @param {Object} map The map to query. * @param {string} key The reference key. * @returns {*} Returns the map data. */ function getMapData(map, key) { var data = map.__data__; return isKeyable(key) ? data[typeof key == 'string' ? 'string' : 'hash'] : data.map; } module.exports = getMapData; /***/ }), /* 32 */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeKeys = __webpack_require__(96), baseKeys = __webpack_require__(53), isArrayLike = __webpack_require__(12); /** * Creates an array of the own enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. See the * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * for more details. * * @static * @since 0.1.0 * @memberOf _ * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keys(new Foo); * // => ['a', 'b'] (iteration order is not guaranteed) * * _.keys('hi'); * // => ['0', '1'] */ function keys(object) { return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); } module.exports = keys; /***/ }), /* 33 */ /***/ (function(module, exports, __webpack_require__) { var baseIsArguments = __webpack_require__(220), isObjectLike = __webpack_require__(9); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Built-in value references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /** * Checks if `value` is likely an `arguments` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, * else `false`. * @example * * _.isArguments(function() { return arguments; }()); * // => true * * _.isArguments([1, 2, 3]); * // => false */ var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee'); }; module.exports = isArguments; /***/ }), /* 34 */ /***/ (function(module, exports, __webpack_require__) { var isArray = __webpack_require__(1), isKey = __webpack_require__(58), stringToPath = __webpack_require__(231), toString = __webpack_require__(234); /** * Casts `value` to a path array if it's not one. * * @private * @param {*} value The value to inspect. * @param {Object} [object] The object to query keys on. * @returns {Array} Returns the cast property path array. */ function castPath(value, object) { if (isArray(value)) { return value; } return isKey(value, object) ? [value] : stringToPath(toString(value)); } module.exports = castPath; /***/ }), /* 35 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(11), isObjectLike = __webpack_require__(9); /** `Object#toString` result references. */ var symbolTag = '[object Symbol]'; /** * Checks if `value` is classified as a `Symbol` primitive or object. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. * @example * * _.isSymbol(Symbol.iterator); * // => true * * _.isSymbol('abc'); * // => false */ function isSymbol(value) { return typeof value == 'symbol' || (isObjectLike(value) && baseGetTag(value) == symbolTag); } module.exports = isSymbol; /***/ }), /* 36 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ // eslint-disable-next-line strict var IXEvents = __webpack_require__(123); function dispatchCustomEvent(element, eventName) { var event = document.createEvent('CustomEvent'); event.initCustomEvent(eventName, true, true, null); element.dispatchEvent(event); } /** * Webflow: IX Event triggers for other modules */ var $ = window.jQuery; var api = {}; var namespace = '.w-ix'; var eventTriggers = { reset: function reset(i, el) { IXEvents.triggers.reset(i, el); }, intro: function intro(i, el) { IXEvents.triggers.intro(i, el); dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); }, outro: function outro(i, el) { IXEvents.triggers.outro(i, el); dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); } }; api.triggers = {}; api.types = { INTRO: 'w-ix-intro' + namespace, OUTRO: 'w-ix-outro' + namespace }; $.extend(api.triggers, eventTriggers); module.exports = api; /***/ }), /* 37 */ /***/ (function(module, exports, __webpack_require__) { // toObject with fallback for non-array-like ES3 strings var IndexedObject = __webpack_require__(131); var requireObjectCoercible = __webpack_require__(133); module.exports = function (it) { return IndexedObject(requireObjectCoercible(it)); }; /***/ }), /* 38 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(14); var IE8_DOM_DEFINE = __webpack_require__(69); var anObject = __webpack_require__(24); var toPrimitive = __webpack_require__(68); var nativeDefineProperty = Object.defineProperty; // `Object.defineProperty` method // https://tc39.github.io/ecma262/#sec-object.defineproperty exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { anObject(O); P = toPrimitive(P, true); anObject(Attributes); if (IE8_DOM_DEFINE) try { return nativeDefineProperty(O, P, Attributes); } catch (error) { /* empty */ } if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); if ('value' in Attributes) O[P] = Attributes.value; return O; }; /***/ }), /* 39 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var hide = __webpack_require__(17); module.exports = function (key, value) { try { hide(global, key, value); } catch (error) { global[key] = value; } return value; }; /***/ }), /* 40 */ /***/ (function(module, exports) { module.exports = {}; /***/ }), /* 41 */ /***/ (function(module, exports) { // IE8- don't enum bug keys module.exports = [ 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf' ]; /***/ }), /* 42 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); /* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79); /* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(164); /** * These are private action types reserved by Redux. * For any unknown actions, you must return the current state. * If the current state is undefined, you must return the initial state. * Do not reference these action types directly in your code. */ var ActionTypes = { INIT: '@@redux/INIT' }; /** * Creates a Redux store that holds the state tree. * The only way to change the data in the store is to call `dispatch()` on it. * * There should only be a single store in your app. To specify how different * parts of the state tree respond to actions, you may combine several reducers * into a single reducer function by using `combineReducers`. * * @param {Function} reducer A function that returns the next state tree, given * the current state tree and the action to handle. * * @param {any} [preloadedState] The initial state. You may optionally specify it * to hydrate the state from the server in universal apps, or to restore a * previously serialized user session. * If you use `combineReducers` to produce the root reducer function, this must be * an object with the same shape as `combineReducers` keys. * * @param {Function} enhancer The store enhancer. You may optionally specify it * to enhance the store with third-party capabilities such as middleware, * time travel, persistence, etc. The only store enhancer that ships with Redux * is `applyMiddleware()`. * * @returns {Store} A Redux store that lets you read the state, dispatch actions * and subscribe to changes. */ function createStore(reducer, preloadedState, enhancer) { var _ref2; if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { enhancer = preloadedState; preloadedState = undefined; } if (typeof enhancer !== 'undefined') { if (typeof enhancer !== 'function') { throw new Error('Expected the enhancer to be a function.'); } return enhancer(createStore)(reducer, preloadedState); } if (typeof reducer !== 'function') { throw new Error('Expected the reducer to be a function.'); } var currentReducer = reducer; var currentState = preloadedState; var currentListeners = []; var nextListeners = currentListeners; var isDispatching = false; function ensureCanMutateNextListeners() { if (nextListeners === currentListeners) { nextListeners = currentListeners.slice(); } } /** * Reads the state tree managed by the store. * * @returns {any} The current state tree of your application. */ function getState() { return currentState; } /** * Adds a change listener. It will be called any time an action is dispatched, * and some part of the state tree may potentially have changed. You may then * call `getState()` to read the current state tree inside the callback. * * You may call `dispatch()` from a change listener, with the following * caveats: * * 1. The subscriptions are snapshotted just before every `dispatch()` call. * If you subscribe or unsubscribe while the listeners are being invoked, this * will not have any effect on the `dispatch()` that is currently in progress. * However, the next `dispatch()` call, whether nested or not, will use a more * recent snapshot of the subscription list. * * 2. The listener should not expect to see all state changes, as the state * might have been updated multiple times during a nested `dispatch()` before * the listener is called. It is, however, guaranteed that all subscribers * registered before the `dispatch()` started will be called with the latest * state by the time it exits. * * @param {Function} listener A callback to be invoked on every dispatch. * @returns {Function} A function to remove this change listener. */ function subscribe(listener) { if (typeof listener !== 'function') { throw new Error('Expected listener to be a function.'); } var isSubscribed = true; ensureCanMutateNextListeners(); nextListeners.push(listener); return function unsubscribe() { if (!isSubscribed) { return; } isSubscribed = false; ensureCanMutateNextListeners(); var index = nextListeners.indexOf(listener); nextListeners.splice(index, 1); }; } /** * Dispatches an action. It is the only way to trigger a state change. * * The `reducer` function, used to create the store, will be called with the * current state tree and the given `action`. Its return value will * be considered the **next** state of the tree, and the change listeners * will be notified. * * The base implementation only supports plain object actions. If you want to * dispatch a Promise, an Observable, a thunk, or something else, you need to * wrap your store creating function into the corresponding middleware. For * example, see the documentation for the `redux-thunk` package. Even the * middleware will eventually dispatch plain object actions using this method. * * @param {Object} action A plain object representing “what changed”. It is * a good idea to keep actions serializable so you can record and replay user * sessions, or use the time travelling `redux-devtools`. An action must have * a `type` property which may not be `undefined`. It is a good idea to use * string constants for action types. * * @returns {Object} For convenience, the same action object you dispatched. * * Note that, if you use a custom middleware, it may wrap `dispatch()` to * return something else (for example, a Promise you can await). */ function dispatch(action) { if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); } if (typeof action.type === 'undefined') { throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); } if (isDispatching) { throw new Error('Reducers may not dispatch actions.'); } try { isDispatching = true; currentState = currentReducer(currentState, action); } finally { isDispatching = false; } var listeners = currentListeners = nextListeners; for (var i = 0; i < listeners.length; i++) { listeners[i](); } return action; } /** * Replaces the reducer currently used by the store to calculate the state. * * You might need this if your app implements code splitting and you want to * load some of the reducers dynamically. You might also need this if you * implement a hot reloading mechanism for Redux. * * @param {Function} nextReducer The reducer for the store to use instead. * @returns {void} */ function replaceReducer(nextReducer) { if (typeof nextReducer !== 'function') { throw new Error('Expected the nextReducer to be a function.'); } currentReducer = nextReducer; dispatch({ type: ActionTypes.INIT }); } /** * Interoperability point for observable/reactive libraries. * @returns {observable} A minimal observable of state changes. * For more information, see the observable proposal: * https://github.com/zenparsing/es-observable */ function observable() { var _ref; var outerSubscribe = subscribe; return _ref = { /** * The minimal observable subscription method. * @param {Object} observer Any object that can be used as an observer. * The observer object should have a `next` method. * @returns {subscription} An object with an `unsubscribe` method that can * be used to unsubscribe the observable from the store, and prevent further * emission of values from the observable. */ subscribe: function subscribe(observer) { if (typeof observer !== 'object') { throw new TypeError('Expected the observer to be an object.'); } function observeState() { if (observer.next) { observer.next(getState()); } } observeState(); var unsubscribe = outerSubscribe(observeState); return { unsubscribe: unsubscribe }; } }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { return this; }, _ref; } // When a store is created, an "INIT" action is dispatched so that every // reducer returns their initial state. This effectively populates // the initial state tree. dispatch({ type: ActionTypes.INIT }); return _ref2 = { dispatch: dispatch, subscribe: subscribe, getState: getState, replaceReducer: replaceReducer }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; } /***/ }), /* 43 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); /** * Composes single-argument functions from right to left. The rightmost * function can take multiple arguments as it provides the signature for * the resulting composite function. * * @param {...Function} funcs The functions to compose. * @returns {Function} A function obtained by composing the argument functions * from right to left. For example, compose(f, g, h) is identical to doing * (...args) => f(g(h(...args))). */ function compose() { for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { funcs[_key] = arguments[_key]; } if (funcs.length === 0) { return function (arg) { return arg; }; } if (funcs.length === 1) { return funcs[0]; } var last = funcs[funcs.length - 1]; var rest = funcs.slice(0, -1); return function () { return rest.reduceRight(function (composed, f) { return f(composed); }, last.apply(undefined, arguments)); }; } /***/ }), /* 44 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROWSER_ENV = void 0; var _find = _interopRequireDefault(__webpack_require__(85)); /* eslint-env browser */ var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe exports.IS_BROWSER_ENV = IS_BROWSER_ENV; var withBrowser = function withBrowser(fn, fallback) { if (IS_BROWSER_ENV) { return fn(); } return fallback; }; exports.withBrowser = withBrowser; var ELEMENT_MATCHES = withBrowser(function () { return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { return key in Element.prototype; }); }); exports.ELEMENT_MATCHES = ELEMENT_MATCHES; var FLEX_PREFIXED = withBrowser(function () { var el = document.createElement('i'); var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; var none = ''; try { var length = values.length; for (var i = 0; i < length; i++) { var value = values[i]; el.style.display = value; if (el.style.display === value) { return value; } } return none; } catch (err) { return none; } }, 'flex'); exports.FLEX_PREFIXED = FLEX_PREFIXED; var TRANSFORM_PREFIXED = withBrowser(function () { var el = document.createElement('i'); if (el.style.transform == null) { var prefixes = ['Webkit', 'Moz', 'ms']; var suffix = 'Transform'; var length = prefixes.length; for (var i = 0; i < length; i++) { var prop = prefixes[i] + suffix; // $FlowFixMe if (el.style[prop] !== undefined) { return prop; } } } return 'transform'; }, 'transform'); // $FlowFixMe exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; /***/ }), /* 45 */ /***/ (function(module, exports) { /** * Performs a * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * comparison between two values to determine if they are equivalent. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to compare. * @param {*} other The other value to compare. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. * @example * * var object = { 'a': 1 }; * var other = { 'a': 1 }; * * _.eq(object, object); * // => true * * _.eq(object, other); * // => false * * _.eq('a', 'a'); * // => true * * _.eq('a', Object('a')); * // => false * * _.eq(NaN, NaN); * // => true */ function eq(value, other) { return value === other || (value !== value && other !== other); } module.exports = eq; /***/ }), /* 46 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8), root = __webpack_require__(4); /* Built-in method references that are verified to be native. */ var Map = getNative(root, 'Map'); module.exports = Map; /***/ }), /* 47 */ /***/ (function(module, exports, __webpack_require__) { var mapCacheClear = __webpack_require__(194), mapCacheDelete = __webpack_require__(201), mapCacheGet = __webpack_require__(203), mapCacheHas = __webpack_require__(204), mapCacheSet = __webpack_require__(205); /** * Creates a map cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function MapCache(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `MapCache`. MapCache.prototype.clear = mapCacheClear; MapCache.prototype['delete'] = mapCacheDelete; MapCache.prototype.get = mapCacheGet; MapCache.prototype.has = mapCacheHas; MapCache.prototype.set = mapCacheSet; module.exports = MapCache; /***/ }), /* 48 */ /***/ (function(module, exports) { /** * Appends the elements of `values` to `array`. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to append. * @returns {Array} Returns `array`. */ function arrayPush(array, values) { var index = -1, length = values.length, offset = array.length; while (++index < length) { array[offset + index] = values[index]; } return array; } module.exports = arrayPush; /***/ }), /* 49 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(4), stubFalse = __webpack_require__(221); /** Detect free variable `exports`. */ var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Built-in value references. */ var Buffer = moduleExports ? root.Buffer : undefined; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; /** * Checks if `value` is a buffer. * * @static * @memberOf _ * @since 4.3.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. * @example * * _.isBuffer(new Buffer(2)); * // => true * * _.isBuffer(new Uint8Array(2)); * // => false */ var isBuffer = nativeIsBuffer || stubFalse; module.exports = isBuffer; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) /***/ }), /* 50 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; /** Used to detect unsigned integer values. */ var reIsUint = /^(?:0|[1-9]\d*)$/; /** * Checks if `value` is a valid array-like index. * * @private * @param {*} value The value to check. * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. */ function isIndex(value, length) { var type = typeof value; length = length == null ? MAX_SAFE_INTEGER : length; return !!length && (type == 'number' || (type != 'symbol' && reIsUint.test(value))) && (value > -1 && value % 1 == 0 && value < length); } module.exports = isIndex; /***/ }), /* 51 */ /***/ (function(module, exports, __webpack_require__) { var baseIsTypedArray = __webpack_require__(222), baseUnary = __webpack_require__(223), nodeUtil = __webpack_require__(224); /* Node.js helper references. */ var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; /** * Checks if `value` is classified as a typed array. * * @static * @memberOf _ * @since 3.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. * @example * * _.isTypedArray(new Uint8Array); * // => true * * _.isTypedArray([]); * // => false */ var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; module.exports = isTypedArray; /***/ }), /* 52 */ /***/ (function(module, exports) { /** Used as references for various `Number` constants. */ var MAX_SAFE_INTEGER = 9007199254740991; /** * Checks if `value` is a valid array-like length. * * **Note:** This method is loosely based on * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. * @example * * _.isLength(3); * // => true * * _.isLength(Number.MIN_VALUE); * // => false * * _.isLength(Infinity); * // => false * * _.isLength('3'); * // => false */ function isLength(value) { return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; } module.exports = isLength; /***/ }), /* 53 */ /***/ (function(module, exports, __webpack_require__) { var isPrototype = __webpack_require__(54), nativeKeys = __webpack_require__(225); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeys(object) { if (!isPrototype(object)) { return nativeKeys(object); } var result = []; for (var key in Object(object)) { if (hasOwnProperty.call(object, key) && key != 'constructor') { result.push(key); } } return result; } module.exports = baseKeys; /***/ }), /* 54 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Checks if `value` is likely a prototype object. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. */ function isPrototype(value) { var Ctor = value && value.constructor, proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; return value === proto; } module.exports = isPrototype; /***/ }), /* 55 */ /***/ (function(module, exports, __webpack_require__) { var DataView = __webpack_require__(226), Map = __webpack_require__(46), Promise = __webpack_require__(227), Set = __webpack_require__(228), WeakMap = __webpack_require__(99), baseGetTag = __webpack_require__(11), toSource = __webpack_require__(90); /** `Object#toString` result references. */ var mapTag = '[object Map]', objectTag = '[object Object]', promiseTag = '[object Promise]', setTag = '[object Set]', weakMapTag = '[object WeakMap]'; var dataViewTag = '[object DataView]'; /** Used to detect maps, sets, and weakmaps. */ var dataViewCtorString = toSource(DataView), mapCtorString = toSource(Map), promiseCtorString = toSource(Promise), setCtorString = toSource(Set), weakMapCtorString = toSource(WeakMap); /** * Gets the `toStringTag` of `value`. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ var getTag = baseGetTag; // Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || (Map && getTag(new Map) != mapTag) || (Promise && getTag(Promise.resolve()) != promiseTag) || (Set && getTag(new Set) != setTag) || (WeakMap && getTag(new WeakMap) != weakMapTag)) { getTag = function(value) { var result = baseGetTag(value), Ctor = result == objectTag ? value.constructor : undefined, ctorString = Ctor ? toSource(Ctor) : ''; if (ctorString) { switch (ctorString) { case dataViewCtorString: return dataViewTag; case mapCtorString: return mapTag; case promiseCtorString: return promiseTag; case setCtorString: return setTag; case weakMapCtorString: return weakMapTag; } } return result; }; } module.exports = getTag; /***/ }), /* 56 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(57); /** * Gets the value at `path` of `object`. If the resolved value is * `undefined`, the `defaultValue` is returned in its place. * * @static * @memberOf _ * @since 3.7.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @param {*} [defaultValue] The value returned for `undefined` resolved values. * @returns {*} Returns the resolved value. * @example * * var object = { 'a': [{ 'b': { 'c': 3 } }] }; * * _.get(object, 'a[0].b.c'); * // => 3 * * _.get(object, ['a', '0', 'b', 'c']); * // => 3 * * _.get(object, 'a.b.c', 'default'); * // => 'default' */ function get(object, path, defaultValue) { var result = object == null ? undefined : baseGet(object, path); return result === undefined ? defaultValue : result; } module.exports = get; /***/ }), /* 57 */ /***/ (function(module, exports, __webpack_require__) { var castPath = __webpack_require__(34), toKey = __webpack_require__(20); /** * The base implementation of `_.get` without support for default values. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path of the property to get. * @returns {*} Returns the resolved value. */ function baseGet(object, path) { path = castPath(path, object); var index = 0, length = path.length; while (object != null && index < length) { object = object[toKey(path[index++])]; } return (index && index == length) ? object : undefined; } module.exports = baseGet; /***/ }), /* 58 */ /***/ (function(module, exports, __webpack_require__) { var isArray = __webpack_require__(1), isSymbol = __webpack_require__(35); /** Used to match property names within property paths. */ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, reIsPlainProp = /^\w*$/; /** * Checks if `value` is a property name and not a property path. * * @private * @param {*} value The value to check. * @param {Object} [object] The object to query keys on. * @returns {boolean} Returns `true` if `value` is a property name, else `false`. */ function isKey(value, object) { if (isArray(value)) { return false; } var type = typeof value; if (type == 'number' || type == 'symbol' || type == 'boolean' || value == null || isSymbol(value)) { return true; } return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || (object != null && value in Object(object)); } module.exports = isKey; /***/ }), /* 59 */ /***/ (function(module, exports) { /** * This method returns the first argument it receives. * * @static * @since 0.1.0 * @memberOf _ * @category Util * @param {*} value Any value. * @returns {*} Returns `value`. * @example * * var object = { 'a': 1 }; * * console.log(_.identity(object) === object); * // => true */ function identity(value) { return value; } module.exports = identity; /***/ }), /* 60 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(5), isSymbol = __webpack_require__(35); /** Used as references for various `Number` constants. */ var NAN = 0 / 0; /** Used to match leading and trailing whitespace. */ var reTrim = /^\s+|\s+$/g; /** Used to detect bad signed hexadecimal string values. */ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; /** Used to detect binary string values. */ var reIsBinary = /^0b[01]+$/i; /** Used to detect octal string values. */ var reIsOctal = /^0o[0-7]+$/i; /** Built-in method references without a dependency on `root`. */ var freeParseInt = parseInt; /** * Converts `value` to a number. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to process. * @returns {number} Returns the number. * @example * * _.toNumber(3.2); * // => 3.2 * * _.toNumber(Number.MIN_VALUE); * // => 5e-324 * * _.toNumber(Infinity); * // => Infinity * * _.toNumber('3.2'); * // => 3.2 */ function toNumber(value) { if (typeof value == 'number') { return value; } if (isSymbol(value)) { return NAN; } if (isObject(value)) { var other = typeof value.valueOf == 'function' ? value.valueOf() : value; value = isObject(other) ? (other + '') : other; } if (typeof value != 'string') { return value === 0 ? value : +value; } value = value.replace(reTrim, ''); var isBinary = reIsBinary.test(value); return (isBinary || reIsOctal.test(value)) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : (reIsBadHex.test(value) ? NAN : +value); } module.exports = toNumber; /***/ }), /* 61 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.mediaQueriesDefined = exports.viewportWidthChanged = exports.actionListPlaybackChanged = exports.elementStateChanged = exports.instanceRemoved = exports.instanceStarted = exports.instanceAdded = exports.parameterChanged = exports.animationFrameChanged = exports.eventStateChanged = exports.testFrameRendered = exports.eventListenerAdded = exports.clearRequested = exports.stopRequested = exports.playbackRequested = exports.previewRequested = exports.sessionStopped = exports.sessionStarted = exports.sessionInitialized = exports.rawDataImported = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(27)); var _constants = __webpack_require__(2); var _shared = __webpack_require__(10); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it var rawDataImported = function rawDataImported(rawData) { return { type: IX2_RAW_DATA_IMPORTED, payload: (0, _extends2["default"])({}, reifyState(rawData)) }; }; exports.rawDataImported = rawDataImported; var sessionInitialized = function sessionInitialized(_ref) { var hasBoundaryNodes = _ref.hasBoundaryNodes; return { type: IX2_SESSION_INITIALIZED, payload: { hasBoundaryNodes: hasBoundaryNodes } }; }; exports.sessionInitialized = sessionInitialized; var sessionStarted = function sessionStarted() { return { type: IX2_SESSION_STARTED }; }; exports.sessionStarted = sessionStarted; var sessionStopped = function sessionStopped() { return { type: IX2_SESSION_STOPPED }; }; exports.sessionStopped = sessionStopped; var previewRequested = function previewRequested(_ref2) { var rawData = _ref2.rawData, defer = _ref2.defer; return { type: IX2_PREVIEW_REQUESTED, payload: { defer: defer, rawData: rawData } }; }; exports.previewRequested = previewRequested; var playbackRequested = function playbackRequested(_ref3) { var _ref3$actionTypeId = _ref3.actionTypeId, actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, actionListId = _ref3.actionListId, actionItemId = _ref3.actionItemId, eventId = _ref3.eventId, allowEvents = _ref3.allowEvents, immediate = _ref3.immediate, testManual = _ref3.testManual, verbose = _ref3.verbose, rawData = _ref3.rawData; return { type: IX2_PLAYBACK_REQUESTED, payload: { actionTypeId: actionTypeId, actionListId: actionListId, actionItemId: actionItemId, testManual: testManual, eventId: eventId, allowEvents: allowEvents, immediate: immediate, verbose: verbose, rawData: rawData } }; }; exports.playbackRequested = playbackRequested; var stopRequested = function stopRequested(actionListId) { return { type: IX2_STOP_REQUESTED, payload: { actionListId: actionListId } }; }; exports.stopRequested = stopRequested; var clearRequested = function clearRequested() { return { type: IX2_CLEAR_REQUESTED }; }; exports.clearRequested = clearRequested; var eventListenerAdded = function eventListenerAdded(target, listenerParams) { return { type: IX2_EVENT_LISTENER_ADDED, payload: { target: target, listenerParams: listenerParams } }; }; exports.eventListenerAdded = eventListenerAdded; var testFrameRendered = function testFrameRendered() { var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; return { type: IX2_TEST_FRAME_RENDERED, payload: { step: step } }; }; exports.testFrameRendered = testFrameRendered; var eventStateChanged = function eventStateChanged(stateKey, newState) { return { type: IX2_EVENT_STATE_CHANGED, payload: { stateKey: stateKey, newState: newState } }; }; exports.eventStateChanged = eventStateChanged; var animationFrameChanged = function animationFrameChanged(now, parameters) { return { type: IX2_ANIMATION_FRAME_CHANGED, payload: { now: now, parameters: parameters } }; }; exports.animationFrameChanged = animationFrameChanged; var parameterChanged = function parameterChanged(key, value) { return { type: IX2_PARAMETER_CHANGED, payload: { key: key, value: value } }; }; exports.parameterChanged = parameterChanged; var instanceAdded = function instanceAdded(options) { return { type: IX2_INSTANCE_ADDED, payload: (0, _extends2["default"])({}, options) }; }; exports.instanceAdded = instanceAdded; var instanceStarted = function instanceStarted(instanceId, time) { return { type: IX2_INSTANCE_STARTED, payload: { instanceId: instanceId, time: time } }; }; exports.instanceStarted = instanceStarted; var instanceRemoved = function instanceRemoved(instanceId) { return { type: IX2_INSTANCE_REMOVED, payload: { instanceId: instanceId } }; }; exports.instanceRemoved = instanceRemoved; var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { return { type: IX2_ELEMENT_STATE_CHANGED, payload: { elementId: elementId, actionTypeId: actionTypeId, current: current, actionItem: actionItem } }; }; exports.elementStateChanged = elementStateChanged; var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { var actionListId = _ref4.actionListId, isPlaying = _ref4.isPlaying; return { type: IX2_ACTION_LIST_PLAYBACK_CHANGED, payload: { actionListId: actionListId, isPlaying: isPlaying } }; }; exports.actionListPlaybackChanged = actionListPlaybackChanged; var viewportWidthChanged = function viewportWidthChanged(_ref5) { var width = _ref5.width, mediaQueries = _ref5.mediaQueries; return { type: IX2_VIEWPORT_WIDTH_CHANGED, payload: { width: width, mediaQueries: mediaQueries } }; }; exports.viewportWidthChanged = viewportWidthChanged; var mediaQueriesDefined = function mediaQueriesDefined() { return { type: IX2_MEDIA_QUERIES_DEFINED }; }; exports.mediaQueriesDefined = mediaQueriesDefined; /***/ }), /* 62 */ /***/ (function(module, exports, __webpack_require__) { var baseCreate = __webpack_require__(117), baseLodash = __webpack_require__(63); /** * The base constructor for creating `lodash` wrapper objects. * * @private * @param {*} value The value to wrap. * @param {boolean} [chainAll] Enable explicit method chain sequences. */ function LodashWrapper(value, chainAll) { this.__wrapped__ = value; this.__actions__ = []; this.__chain__ = !!chainAll; this.__index__ = 0; this.__values__ = undefined; } LodashWrapper.prototype = baseCreate(baseLodash.prototype); LodashWrapper.prototype.constructor = LodashWrapper; module.exports = LodashWrapper; /***/ }), /* 63 */ /***/ (function(module, exports) { /** * The function whose prototype chain sequence wrappers inherit from. * * @private */ function baseLodash() { // No operation performed. } module.exports = baseLodash; /***/ }), /* 64 */ /***/ (function(module, exports, __webpack_require__) { var baseCreate = __webpack_require__(117), baseLodash = __webpack_require__(63); /** Used as references for the maximum length and index of an array. */ var MAX_ARRAY_LENGTH = 4294967295; /** * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. * * @private * @constructor * @param {*} value The value to wrap. */ function LazyWrapper(value) { this.__wrapped__ = value; this.__actions__ = []; this.__dir__ = 1; this.__filtered__ = false; this.__iteratees__ = []; this.__takeCount__ = MAX_ARRAY_LENGTH; this.__views__ = []; } // Ensure `LazyWrapper` is an instance of `baseLodash`. LazyWrapper.prototype = baseCreate(baseLodash.prototype); LazyWrapper.prototype.constructor = LazyWrapper; module.exports = LazyWrapper; /***/ }), /* 65 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* eslint-disable eslint-comments/no-unlimited-disable */ /* eslint-disable */ /*! * tram.js v0.8.2-global * Cross-browser CSS3 transitions in JavaScript * https://github.com/bkwld/tram * MIT License */ /* prettier-ignore */ var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(21)); window.tram = function (a) { function b(a, b) { var c = new M.Bare(); return c.init(a, b); } function c(a) { return a.replace(/[A-Z]/g, function (a) { return "-" + a.toLowerCase(); }); } function d(a) { var b = parseInt(a.slice(1), 16), c = b >> 16 & 255, d = b >> 8 & 255, e = 255 & b; return [c, d, e]; } function e(a, b, c) { return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); } function f() {} function g(a, b) { j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); } function h(a, b, c) { j("Units do not match [" + a + "]: " + b + ", " + c); } function i(a, b, c) { if (void 0 !== b && (c = b), void 0 === a) return c; var d = c; return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; } function j(a) { U.debug && window && window.console.warn(a); } function k(a) { for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { var e = a[b]; e && d.push(e); } return d; } var l = function (a, b, c) { function d(a) { return "object" == (0, _typeof2["default"])(a); } function e(a) { return "function" == typeof a; } function f() {} function g(h, i) { function j() { var a = new k(); return e(a.init) && a.init.apply(a, arguments), a; } function k() {} i === c && (i = h, h = Object), j.Bare = k; var l, m = f[a] = h[a], n = k[a] = j[a] = new f(); return n.constructor = j, j.mixin = function (b) { return k[a] = j[a] = g(j, b)[a], j; }, j.open = function (a) { if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { b.call(l, c) && (n[c] = l[c]); } return e(n.init) || (n.init = h), j; }, j.open(i); } return g; }("prototype", {}.hasOwnProperty), m = { ease: ["ease", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); }], "ease-in": ["ease-in", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); }], "ease-out": ["ease-out", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); }], "ease-in-out": ["ease-in-out", function (a, b, c, d) { var e = (a /= d) * a, f = e * a; return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); }], linear: ["linear", function (a, b, c, d) { return c * a / d + b; }], "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { return c * (a /= d) * a + b; }], "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { return -c * (a /= d) * (a - 2) + b; }], "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; }], "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { return c * (a /= d) * a * a + b; }], "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { return c * ((a = a / d - 1) * a * a + 1) + b; }], "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; }], "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { return c * (a /= d) * a * a * a + b; }], "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { return -c * ((a = a / d - 1) * a * a * a - 1) + b; }], "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; }], "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { return c * (a /= d) * a * a * a * a + b; }], "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { return c * ((a = a / d - 1) * a * a * a * a + 1) + b; }], "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; }], "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; }], "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { return c * Math.sin(a / d * (Math.PI / 2)) + b; }], "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; }], "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; }], "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; }], "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { return 0 === a ? b : a === d ? b + c : (a /= d / 2) < 1 ? c / 2 * Math.pow(2, 10 * (a - 1)) + b : c / 2 * (-Math.pow(2, -10 * --a) + 2) + b; }], "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; }], "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; }], "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; }], "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; }], "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; }], "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { return void 0 === e && (e = 1.70158), (a /= d / 2) < 1 ? c / 2 * a * a * (((e *= 1.525) + 1) * a - e) + b : c / 2 * ((a -= 2) * a * (((e *= 1.525) + 1) * a + e) + 2) + b; }] }, n = { "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" }, o = document, p = window, q = "bkwld-tram", r = /[\-\.0-9]/g, s = /[A-Z]/, t = "number", u = /^(rgb|#)/, v = /(em|cm|mm|in|pt|pc|px)$/, w = /(em|cm|mm|in|pt|pc|px|%)$/, x = /(deg|rad|turn)$/, y = "unitless", z = /(all|none) 0s ease 0s/, A = /^(width|height)$/, B = " ", C = o.createElement("a"), D = ["Webkit", "Moz", "O", "ms"], E = ["-webkit-", "-moz-", "-o-", "-ms-"], F = function F(a) { if (a in C.style) return { dom: a, css: a }; var b, c, d = "", e = a.split("-"); for (b = 0; b < e.length; b++) { d += e[b].charAt(0).toUpperCase() + e[b].slice(1); } for (b = 0; b < D.length; b++) { if (c = D[b] + d, c in C.style) return { dom: c, css: E[b] + a }; } }, G = b.support = { bind: Function.prototype.bind, transform: F("transform"), transition: F("transition"), backface: F("backface-visibility"), timing: F("transition-timing-function") }; if (G.transition) { var H = G.timing.dom; if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { m[I][0] = n[I]; } } var J = b.frame = function () { var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; return a && G.bind ? a.bind(p) : function (a) { p.setTimeout(a, 16); }; }(), K = b.now = function () { var a = p.performance, b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); return b && G.bind ? b.bind(a) : Date.now || function () { return +new Date(); }; }(), L = l(function (b) { function d(a, b) { var c = k(("" + a).split(B)), d = c[0]; b = b || {}; var e = Y[d]; if (!e) return j("Unsupported property: " + d); if (!b.weak || !this.props[d]) { var f = e[0], g = this.props[d]; return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; } } function e(a, b, c) { if (a) { var e = (0, _typeof2["default"])(a); if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ duration: a, context: this, complete: h }), void (this.active = !0); if ("string" == e && b) { switch (a) { case "hide": o.call(this); break; case "stop": l.call(this); break; case "redraw": p.call(this); break; default: d.call(this, a, c && c[1]); } return h.call(this); } if ("function" == e) return void a.call(this, this); if ("object" == e) { var f = 0; u.call(this, a, function (a, b) { a.span > f && (f = a.span), a.stop(), a.animate(b); }, function (a) { "wait" in a && (f = i(a.wait, 0)); }), t.call(this), f > 0 && (this.timer = new S({ duration: f, context: this }), this.active = !0, b && (this.timer.complete = h)); var g = this, j = !1, k = {}; J(function () { u.call(g, a, function (a) { a.active && (j = !0, k[a.name] = a.nextStyle); }), j && g.$el.css(k); }); } } } function f(a) { a = i(a, 0), this.active ? this.queue.push({ options: a }) : (this.timer = new S({ duration: a, context: this, complete: h }), this.active = !0); } function g(a) { return this.active ? (this.queue.push({ options: a, args: arguments }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); } function h() { if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { var a = this.queue.shift(); e.call(this, a.options, !0, a.args); } } function l(a) { this.timer && this.timer.destroy(), this.queue = [], this.active = !1; var b; "string" == typeof a ? (b = {}, b[a] = 1) : b = "object" == (0, _typeof2["default"])(a) && null != a ? a : this.props, u.call(this, b, v), t.call(this); } function m(a) { l.call(this, a), u.call(this, a, w, x); } function n(a) { "string" != typeof a && (a = "block"), this.el.style.display = a; } function o() { l.call(this), this.el.style.display = "none"; } function p() { this.el.offsetHeight; } function r() { l.call(this), a.removeData(this.el, q), this.$el = this.el = null; } function t() { var a, b, c = []; this.upstream && c.push(this.upstream); for (a in this.props) { b = this.props[a], b.active && c.push(b.string); } c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); } function u(a, b, e) { var f, g, h, i, j = b !== v, k = {}; for (f in a) { h = a[f], f in Z ? (k.transform || (k.transform = {}), k.transform[f] = h) : (s.test(f) && (f = c(f)), f in Y ? k[f] = h : (i || (i = {}), i[f] = h)); } for (f in k) { if (h = k[f], g = this.props[f], !g) { if (!j) continue; g = d.call(this, f); } b.call(this, g, h); } e && i && e.call(this, i); } function v(a) { a.stop(); } function w(a, b) { a.set(b); } function x(a) { this.$el.css(a); } function y(a, c) { b[a] = function () { return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); }; } function A(a, b) { var c, d = this.children.length; for (c = 0; d > c; c++) { a.apply(this.children[c], b); } return this; } b.init = function (b) { if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { var c = W(this.el, "transition"); c && !z.test(c) && (this.upstream = c); } G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); }, y("add", d), y("start", e), y("wait", f), y("then", g), y("next", h), y("stop", l), y("set", m), y("show", n), y("hide", o), y("redraw", p), y("destroy", r); }), M = l(L, function (b) { function c(b, c) { var d = a.data(b, q) || a.data(b, q, new L.Bare()); return d.el || d.init(b), c ? d.start(c) : d; } b.init = function (b, d) { var e = a(b); if (!e.length) return this; if (1 === e.length) return c(e[0], d); var f = []; return e.each(function (a, b) { f.push(c(b, d)); }), this.children = f, this; }; }), N = l(function (a) { function b() { var a = this.get(); this.update("auto"); var b = this.get(); return this.update(a), b; } function c(a, b, c) { return void 0 !== b && (c = b), a in m ? a : c; } function d(a) { var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); } var f = { duration: 500, ease: "ease", delay: 0 }; a.init = function (a, b, d, e) { this.$el = a, this.el = a[0]; var g = b[0]; d[2] && (g = d[2]), X[g] && (g = X[g]), this.name = g, this.type = d[1], this.duration = i(b[1], this.duration, f.duration), this.ease = c(b[2], this.ease, f.ease), this.delay = i(b[3], this.delay, f.delay), this.span = this.duration + this.delay, this.active = !1, this.nextStyle = null, this.auto = A.test(this.name), this.unit = e.unit || this.unit || U.defaultUnit, this.angle = e.angle || this.angle || U.defaultAngle, U.fallback || e.fallback ? this.animate = this.fallback : (this.animate = this.transition, this.string = this.name + B + this.duration + "ms" + ("ease" != this.ease ? B + m[this.ease][0] : "") + (this.delay ? B + this.delay + "ms" : "")); }, a.set = function (a) { a = this.convert(a, this.type), this.update(a), this.redraw(); }, a.transition = function (a) { this.active = !0, a = this.convert(a, this.type), this.auto && ("auto" == this.el.style[this.name] && (this.update(this.get()), this.redraw()), "auto" == a && (a = b.call(this))), this.nextStyle = a; }, a.fallback = function (a) { var c = this.el.style[this.name] || this.convert(this.get(), this.type); a = this.convert(a, this.type), this.auto && ("auto" == c && (c = this.convert(this.get(), this.type)), "auto" == a && (a = b.call(this))), this.tween = new R({ from: c, to: a, duration: this.duration, delay: this.delay, ease: this.ease, update: this.update, context: this }); }, a.get = function () { return W(this.el, this.name); }, a.update = function (a) { V(this.el, this.name, a); }, a.stop = function () { (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); var a = this.tween; a && a.context && a.destroy(); }, a.convert = function (a, b) { if ("auto" == a && this.auto) return a; var c, e = "number" == typeof a, f = "string" == typeof a; switch (b) { case t: if (e) return a; if (f && "" === a.replace(r, "")) return +a; c = "number(unitless)"; break; case u: if (f) { if ("" === a && this.original) return this.original; if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); } c = "hex or rgb string"; break; case v: if (e) return a + this.unit; if (f && b.test(a)) return a; c = "number(px) or string(unit)"; break; case w: if (e) return a + this.unit; if (f && b.test(a)) return a; c = "number(px) or string(unit or %)"; break; case x: if (e) return a + this.angle; if (f && b.test(a)) return a; c = "number(deg) or string(angle)"; break; case y: if (e) return a; if (f && w.test(a)) return a; c = "number(unitless) or string(unit or %)"; } return g(c, a), a; }, a.redraw = function () { this.el.offsetHeight; }; }), O = l(N, function (a, b) { a.init = function () { b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); }; }), P = l(N, function (a, b) { a.init = function () { b.init.apply(this, arguments), this.animate = this.fallback; }, a.get = function () { return this.$el[this.name](); }, a.update = function (a) { this.$el[this.name](a); }; }), Q = l(N, function (a, b) { function c(a, b) { var c, d, e, f, g; for (c in a) { f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); } } a.init = function () { b.init.apply(this, arguments), this.current || (this.current = {}, Z.perspective && U.perspective && (this.current.perspective = U.perspective, V(this.el, this.name, this.style(this.current)), this.redraw())); }, a.set = function (a) { c.call(this, a, function (a, b) { this.current[a] = b; }), V(this.el, this.name, this.style(this.current)), this.redraw(); }, a.transition = function (a) { var b = this.values(a); this.tween = new T({ current: this.current, values: b, duration: this.duration, delay: this.delay, ease: this.ease }); var c, d = {}; for (c in this.current) { d[c] = c in b ? b[c] : this.current[c]; } this.active = !0, this.nextStyle = this.style(d); }, a.fallback = function (a) { var b = this.values(a); this.tween = new T({ current: this.current, values: b, duration: this.duration, delay: this.delay, ease: this.ease, update: this.update, context: this }); }, a.update = function () { V(this.el, this.name, this.style(this.current)); }, a.style = function (a) { var b, c = ""; for (b in a) { c += b + "(" + a[b] + ") "; } return c; }, a.values = function (a) { var b, d = {}; return c.call(this, a, function (a, c, e) { d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); }), d; }; }), R = l(function (b) { function c(a) { 1 === n.push(a) && J(g); } function g() { var a, b, c, d = n.length; if (d) for (J(g), b = K(), a = d; a--;) { c = n[a], c && c.render(b); } } function i(b) { var c, d = a.inArray(b, n); d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); } function j(a) { return Math.round(a * o) / o; } function k(a, b, c) { return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); } var l = { ease: m.ease[1], from: 0, to: 1 }; b.init = function (a) { this.duration = a.duration || 0, this.delay = a.delay || 0; var b = a.ease || l.ease; m[b] && (b = m[b][1]), "function" != typeof b && (b = l.ease), this.ease = b, this.update = a.update || f, this.complete = a.complete || f, this.context = a.context || this, this.name = a.name; var c = a.from, d = a.to; void 0 === c && (c = l.from), void 0 === d && (d = l.to), this.unit = a.unit || "", "number" == typeof c && "number" == typeof d ? (this.begin = c, this.change = d - c) : this.format(d, c), this.value = this.begin + this.unit, this.start = K(), a.autoplay !== !1 && this.play(); }, b.play = function () { this.active || (this.start || (this.start = K()), this.active = !0, c(this)); }, b.stop = function () { this.active && (this.active = !1, i(this)); }, b.render = function (a) { var b, c = a - this.start; if (this.delay) { if (c <= this.delay) return; c -= this.delay; } if (c < this.duration) { var d = this.ease(c, 0, 1, this.duration); return b = this.startRGB ? k(this.startRGB, this.endRGB, d) : j(this.begin + d * this.change), this.value = b + this.unit, void this.update.call(this.context, this.value); } b = this.endHex || this.begin + this.change, this.value = b + this.unit, this.update.call(this.context, this.value), this.complete.call(this.context), this.destroy(); }, b.format = function (a, b) { if (b += "", a += "", "#" == a.charAt(0)) return this.startRGB = d(b), this.endRGB = d(a), this.endHex = a, this.begin = 0, void (this.change = 1); if (!this.unit) { var c = b.replace(r, ""), e = a.replace(r, ""); c !== e && h("tween", b, a), this.unit = c; } b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; }, b.destroy = function () { this.stop(), this.context = null, this.ease = this.update = this.complete = f; }; var n = [], o = 1e3; }), S = l(R, function (a) { a.init = function (a) { this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); }, a.render = function (a) { var b = a - this.start; b < this.duration || (this.complete.call(this.context), this.destroy()); }; }), T = l(R, function (a, b) { a.init = function (a) { this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; var b, c; for (b in a.values) { c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ name: b, from: this.current[b], to: c, duration: a.duration, delay: a.delay, ease: a.ease, autoplay: !1 })); } this.play(); }, a.render = function (a) { var b, c, d = this.tweens.length, e = !1; for (b = d; b--;) { c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); } return e ? void (this.update && this.update.call(this.context)) : this.destroy(); }, a.destroy = function () { if (b.destroy.call(this), this.tweens) { var a, c = this.tweens.length; for (a = c; a--;) { this.tweens[a].destroy(); } this.tweens = null, this.current = null; } }; }), U = b.config = { debug: !1, defaultUnit: "px", defaultAngle: "deg", keepInherited: !1, hideBackface: !1, perspective: "", fallback: !G.transition, agentTests: [] }; b.fallback = function (a) { if (!G.transition) return U.fallback = !0; U.agentTests.push("(" + a + ")"); var b = new RegExp(U.agentTests.join("|"), "i"); U.fallback = b.test(navigator.userAgent); }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { return new R(a); }, b.delay = function (a, b, c) { return new S({ complete: b, duration: a, context: c }); }, a.fn.tram = function (a) { return b.call(null, this, a); }; var V = a.style, W = a.css, X = { transform: G.transform && G.transform.css }, Y = { color: [O, u], background: [O, u, "background-color"], "outline-color": [O, u], "border-color": [O, u], "border-top-color": [O, u], "border-right-color": [O, u], "border-bottom-color": [O, u], "border-left-color": [O, u], "border-width": [N, v], "border-top-width": [N, v], "border-right-width": [N, v], "border-bottom-width": [N, v], "border-left-width": [N, v], "border-spacing": [N, v], "letter-spacing": [N, v], margin: [N, v], "margin-top": [N, v], "margin-right": [N, v], "margin-bottom": [N, v], "margin-left": [N, v], padding: [N, v], "padding-top": [N, v], "padding-right": [N, v], "padding-bottom": [N, v], "padding-left": [N, v], "outline-width": [N, v], opacity: [N, t], top: [N, w], right: [N, w], bottom: [N, w], left: [N, w], "font-size": [N, w], "text-indent": [N, w], "word-spacing": [N, w], width: [N, w], "min-width": [N, w], "max-width": [N, w], height: [N, w], "min-height": [N, w], "max-height": [N, w], "line-height": [N, y], "scroll-top": [P, t, "scrollTop"], "scroll-left": [P, t, "scrollLeft"] }, Z = {}; G.transform && (Y.transform = [Q], Z = { x: [w, "translateX"], y: [w, "translateY"], rotate: [x], rotateX: [x], rotateY: [x], scale: [t], scaleX: [t], scaleY: [t], skew: [x], skewX: [x], skewY: [x] }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); var $ = /ms/, _ = /s|\./; return a.tram = b; }(window.jQuery); /***/ }), /* 66 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(14); var propertyIsEnumerableModule = __webpack_require__(130); var createPropertyDescriptor = __webpack_require__(67); var toIndexedObject = __webpack_require__(37); var toPrimitive = __webpack_require__(68); var has = __webpack_require__(16); var IE8_DOM_DEFINE = __webpack_require__(69); var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // `Object.getOwnPropertyDescriptor` method // https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { O = toIndexedObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return nativeGetOwnPropertyDescriptor(O, P); } catch (error) { /* empty */ } if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); }; /***/ }), /* 67 */ /***/ (function(module, exports) { module.exports = function (bitmap, value) { return { enumerable: !(bitmap & 1), configurable: !(bitmap & 2), writable: !(bitmap & 4), value: value }; }; /***/ }), /* 68 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(23); // `ToPrimitive` abstract operation // https://tc39.github.io/ecma262/#sec-toprimitive // instead of the ES6 spec version, we didn't implement @@toPrimitive case // and the second argument - flag - preferred type is a string module.exports = function (input, PREFERRED_STRING) { if (!isObject(input)) return input; var fn, val; if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; throw TypeError("Can't convert object to primitive value"); }; /***/ }), /* 69 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(14); var fails = __webpack_require__(15); var createElement = __webpack_require__(70); // Thank's IE8 for his funny defineProperty module.exports = !DESCRIPTORS && !fails(function () { return Object.defineProperty(createElement('div'), 'a', { get: function () { return 7; } }).a != 7; }); /***/ }), /* 70 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var isObject = __webpack_require__(23); var document = global.document; // typeof document.createElement is 'object' in old IE var EXISTS = isObject(document) && isObject(document.createElement); module.exports = function (it) { return EXISTS ? document.createElement(it) : {}; }; /***/ }), /* 71 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(25); module.exports = shared('native-function-to-string', Function.toString); /***/ }), /* 72 */ /***/ (function(module, exports, __webpack_require__) { var shared = __webpack_require__(25); var uid = __webpack_require__(73); var keys = shared('keys'); module.exports = function (key) { return keys[key] || (keys[key] = uid(key)); }; /***/ }), /* 73 */ /***/ (function(module, exports) { var id = 0; var postfix = Math.random(); module.exports = function (key) { return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); }; /***/ }), /* 74 */ /***/ (function(module, exports, __webpack_require__) { var path = __webpack_require__(140); var global = __webpack_require__(3); var aFunction = function (variable) { return typeof variable == 'function' ? variable : undefined; }; module.exports = function (namespace, method) { return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; }; /***/ }), /* 75 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(16); var toIndexedObject = __webpack_require__(37); var indexOf = __webpack_require__(76).indexOf; var hiddenKeys = __webpack_require__(40); module.exports = function (object, names) { var O = toIndexedObject(object); var i = 0; var result = []; var key; for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); // Don't enum bug & hidden keys while (names.length > i) if (has(O, key = names[i++])) { ~indexOf(result, key) || result.push(key); } return result; }; /***/ }), /* 76 */ /***/ (function(module, exports, __webpack_require__) { var toIndexedObject = __webpack_require__(37); var toLength = __webpack_require__(142); var toAbsoluteIndex = __webpack_require__(143); // `Array.prototype.{ indexOf, includes }` methods implementation var createMethod = function (IS_INCLUDES) { return function ($this, el, fromIndex) { var O = toIndexedObject($this); var length = toLength(O.length); var index = toAbsoluteIndex(fromIndex, length); var value; // Array#includes uses SameValueZero equality algorithm // eslint-disable-next-line no-self-compare if (IS_INCLUDES && el != el) while (length > index) { value = O[index++]; // eslint-disable-next-line no-self-compare if (value != value) return true; // Array#indexOf ignores holes, Array#includes - not } else for (;length > index; index++) { if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; } return !IS_INCLUDES && -1; }; }; module.exports = { // `Array.prototype.includes` method // https://tc39.github.io/ecma262/#sec-array.prototype.includes includes: createMethod(true), // `Array.prototype.indexOf` method // https://tc39.github.io/ecma262/#sec-array.prototype.indexof indexOf: createMethod(false) }; /***/ }), /* 77 */ /***/ (function(module, exports) { var ceil = Math.ceil; var floor = Math.floor; // `ToInteger` abstract operation // https://tc39.github.io/ecma262/#sec-tointeger module.exports = function (argument) { return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); }; /***/ }), /* 78 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); /* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); /* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); /* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); /* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(43); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); /* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82); /* * This is a dummy function to check if the function name has been altered by minification. * If the function has been minified and NODE_ENV !== 'production', warn the user. */ function isCrushed() {} if (false) {} /***/ }), /* 79 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(156); /* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(161); /* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(163); /** `Object#toString` result references. */ var objectTag = '[object Object]'; /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to infer the `Object` constructor. */ var objectCtorString = funcToString.call(Object); /** * Checks if `value` is a plain object, that is, an object created by the * `Object` constructor or one with a `[[Prototype]]` of `null`. * * @static * @memberOf _ * @since 0.8.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. * @example * * function Foo() { * this.a = 1; * } * * _.isPlainObject(new Foo); * // => false * * _.isPlainObject([1, 2, 3]); * // => false * * _.isPlainObject({ 'x': 0, 'y': 0 }); * // => true * * _.isPlainObject(Object.create(null)); * // => true */ function isPlainObject(value) { if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { return false; } var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); if (proto === null) { return true; } var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; return typeof Ctor == 'function' && Ctor instanceof Ctor && funcToString.call(Ctor) == objectCtorString; } /* harmony default export */ __webpack_exports__["default"] = (isPlainObject); /***/ }), /* 80 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(157); /** Built-in value references. */ var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; /* harmony default export */ __webpack_exports__["default"] = (Symbol); /***/ }), /* 81 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); /* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42); /* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); /* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82); function getUndefinedStateErrorMessage(key, action) { var actionType = action && action.type; var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; } function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) { var reducerKeys = Object.keys(reducers); var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; if (reducerKeys.length === 0) { return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; } if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); } var unexpectedKeys = Object.keys(inputState).filter(function (key) { return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; }); unexpectedKeys.forEach(function (key) { unexpectedKeyCache[key] = true; }); if (unexpectedKeys.length > 0) { return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); } } function assertReducerSanity(reducers) { Object.keys(reducers).forEach(function (key) { var reducer = reducers[key]; var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); if (typeof initialState === 'undefined') { throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.'); } var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); if (typeof reducer(undefined, { type: type }) === 'undefined') { throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); } }); } /** * Turns an object whose values are different reducer functions, into a single * reducer function. It will call every child reducer, and gather their results * into a single state object, whose keys correspond to the keys of the passed * reducer functions. * * @param {Object} reducers An object whose values correspond to different * reducer functions that need to be combined into one. One handy way to obtain * it is to use ES6 `import * as reducers` syntax. The reducers may never return * undefined for any action. Instead, they should return their initial state * if the state passed to them was undefined, and the current state for any * unrecognized action. * * @returns {Function} A reducer function that invokes every reducer inside the * passed object, and builds a state object with the same shape. */ function combineReducers(reducers) { var reducerKeys = Object.keys(reducers); var finalReducers = {}; for (var i = 0; i < reducerKeys.length; i++) { var key = reducerKeys[i]; if (false) {} if (typeof reducers[key] === 'function') { finalReducers[key] = reducers[key]; } } var finalReducerKeys = Object.keys(finalReducers); if (false) { var unexpectedKeyCache; } var sanityError; try { assertReducerSanity(finalReducers); } catch (e) { sanityError = e; } return function combination() { var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; var action = arguments[1]; if (sanityError) { throw sanityError; } if (false) { var warningMessage; } var hasChanged = false; var nextState = {}; for (var i = 0; i < finalReducerKeys.length; i++) { var key = finalReducerKeys[i]; var reducer = finalReducers[key]; var previousStateForKey = state[key]; var nextStateForKey = reducer(previousStateForKey, action); if (typeof nextStateForKey === 'undefined') { var errorMessage = getUndefinedStateErrorMessage(key, action); throw new Error(errorMessage); } nextState[key] = nextStateForKey; hasChanged = hasChanged || nextStateForKey !== previousStateForKey; } return hasChanged ? nextState : state; }; } /***/ }), /* 82 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); /** * Prints a warning in the console if it exists. * * @param {String} message The warning message. * @returns {void} */ function warning(message) { /* eslint-disable no-console */ if (typeof console !== 'undefined' && typeof console.error === 'function') { console.error(message); } /* eslint-enable no-console */ try { // This error was thrown as a convenience so that if you enable // "break on all exceptions" in your console, // it would pause the execution at this line. throw new Error(message); /* eslint-disable no-empty */ } catch (e) {} /* eslint-enable no-empty */ } /***/ }), /* 83 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); function bindActionCreator(actionCreator, dispatch) { return function () { return dispatch(actionCreator.apply(undefined, arguments)); }; } /** * Turns an object whose values are action creators, into an object with the * same keys, but with every function wrapped into a `dispatch` call so they * may be invoked directly. This is just a convenience method, as you can call * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. * * For convenience, you can also pass a single function as the first argument, * and get a function in return. * * @param {Function|Object} actionCreators An object whose values are action * creator functions. One handy way to obtain it is to use ES6 `import * as` * syntax. You may also pass a single function. * * @param {Function} dispatch The `dispatch` function available on your Redux * store. * * @returns {Function|Object} The object mimicking the original object, but with * every action creator wrapped into the `dispatch` call. If you passed a * function as `actionCreators`, the return value will also be a single * function. */ function bindActionCreators(actionCreators, dispatch) { if (typeof actionCreators === 'function') { return bindActionCreator(actionCreators, dispatch); } if (typeof actionCreators !== 'object' || actionCreators === null) { throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); } var keys = Object.keys(actionCreators); var boundActionCreators = {}; for (var i = 0; i < keys.length; i++) { var key = keys[i]; var actionCreator = actionCreators[key]; if (typeof actionCreator === 'function') { boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); } } return boundActionCreators; } /***/ }), /* 84 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); /* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43); var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /** * Creates a store enhancer that applies middleware to the dispatch method * of the Redux store. This is handy for a variety of tasks, such as expressing * asynchronous actions in a concise manner, or logging every action payload. * * See `redux-thunk` package as an example of the Redux middleware. * * Because middleware is potentially asynchronous, this should be the first * store enhancer in the composition chain. * * Note that each middleware will be given the `dispatch` and `getState` functions * as named arguments. * * @param {...Function} middlewares The middleware chain to be applied. * @returns {Function} A store enhancer applying the middleware. */ function applyMiddleware() { for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { middlewares[_key] = arguments[_key]; } return function (createStore) { return function (reducer, preloadedState, enhancer) { var store = createStore(reducer, preloadedState, enhancer); var _dispatch = store.dispatch; var chain = []; var middlewareAPI = { getState: store.getState, dispatch: function dispatch(action) { return _dispatch(action); } }; chain = middlewares.map(function (middleware) { return middleware(middlewareAPI); }); _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); return _extends({}, store, { dispatch: _dispatch }); }; }; } /***/ }), /* 85 */ /***/ (function(module, exports, __webpack_require__) { var createFind = __webpack_require__(86), findIndex = __webpack_require__(241); /** * Iterates over elements of `collection`, returning the first element * `predicate` returns truthy for. The predicate is invoked with three * arguments: (value, index|key, collection). * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * var users = [ * { 'user': 'barney', 'age': 36, 'active': true }, * { 'user': 'fred', 'age': 40, 'active': false }, * { 'user': 'pebbles', 'age': 1, 'active': true } * ]; * * _.find(users, function(o) { return o.age < 40; }); * // => object for 'barney' * * // The `_.matches` iteratee shorthand. * _.find(users, { 'age': 1, 'active': true }); * // => object for 'pebbles' * * // The `_.matchesProperty` iteratee shorthand. * _.find(users, ['active', false]); * // => object for 'fred' * * // The `_.property` iteratee shorthand. * _.find(users, 'active'); * // => object for 'barney' */ var find = createFind(findIndex); module.exports = find; /***/ }), /* 86 */ /***/ (function(module, exports, __webpack_require__) { var baseIteratee = __webpack_require__(7), isArrayLike = __webpack_require__(12), keys = __webpack_require__(32); /** * Creates a `_.find` or `_.findLast` function. * * @private * @param {Function} findIndexFunc The function to find the collection index. * @returns {Function} Returns the new find function. */ function createFind(findIndexFunc) { return function(collection, predicate, fromIndex) { var iterable = Object(collection); if (!isArrayLike(collection)) { var iteratee = baseIteratee(predicate, 3); collection = keys(collection); predicate = function(key) { return iteratee(iterable[key], key, iterable); }; } var index = findIndexFunc(collection, predicate, fromIndex); return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; }; } module.exports = createFind; /***/ }), /* 87 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(28), stackClear = __webpack_require__(183), stackDelete = __webpack_require__(184), stackGet = __webpack_require__(185), stackHas = __webpack_require__(186), stackSet = __webpack_require__(187); /** * Creates a stack cache object to store key-value pairs. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Stack(entries) { var data = this.__data__ = new ListCache(entries); this.size = data.size; } // Add methods to `Stack`. Stack.prototype.clear = stackClear; Stack.prototype['delete'] = stackDelete; Stack.prototype.get = stackGet; Stack.prototype.has = stackHas; Stack.prototype.set = stackSet; module.exports = Stack; /***/ }), /* 88 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(11), isObject = __webpack_require__(5); /** `Object#toString` result references. */ var asyncTag = '[object AsyncFunction]', funcTag = '[object Function]', genTag = '[object GeneratorFunction]', proxyTag = '[object Proxy]'; /** * Checks if `value` is classified as a `Function` object. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a function, else `false`. * @example * * _.isFunction(_); * // => true * * _.isFunction(/abc/); * // => false */ function isFunction(value) { if (!isObject(value)) { return false; } // The use of `Object#toString` avoids issues with the `typeof` operator // in Safari 9 which returns 'object' for typed arrays and other constructors. var tag = baseGetTag(value); return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; } module.exports = isFunction; /***/ }), /* 89 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; module.exports = freeGlobal; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) /***/ }), /* 90 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var funcProto = Function.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** * Converts `func` to its source code. * * @private * @param {Function} func The function to convert. * @returns {string} Returns the source code. */ function toSource(func) { if (func != null) { try { return funcToString.call(func); } catch (e) {} try { return (func + ''); } catch (e) {} } return ''; } module.exports = toSource; /***/ }), /* 91 */ /***/ (function(module, exports, __webpack_require__) { var baseIsEqualDeep = __webpack_require__(206), isObjectLike = __webpack_require__(9); /** * The base implementation of `_.isEqual` which supports partial comparisons * and tracks traversed objects. * * @private * @param {*} value The value to compare. * @param {*} other The other value to compare. * @param {boolean} bitmask The bitmask flags. * 1 - Unordered comparison * 2 - Partial comparison * @param {Function} [customizer] The function to customize comparisons. * @param {Object} [stack] Tracks traversed `value` and `other` objects. * @returns {boolean} Returns `true` if the values are equivalent, else `false`. */ function baseIsEqual(value, other, bitmask, customizer, stack) { if (value === other) { return true; } if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { return value !== value && other !== other; } return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); } module.exports = baseIsEqual; /***/ }), /* 92 */ /***/ (function(module, exports, __webpack_require__) { var SetCache = __webpack_require__(207), arraySome = __webpack_require__(210), cacheHas = __webpack_require__(211); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * A specialized version of `baseIsEqualDeep` for arrays with support for * partial deep comparisons. * * @private * @param {Array} array The array to compare. * @param {Array} other The other array to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `array` and `other` objects. * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. */ function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, arrLength = array.length, othLength = other.length; if (arrLength != othLength && !(isPartial && othLength > arrLength)) { return false; } // Check that cyclic values are equal. var arrStacked = stack.get(array); var othStacked = stack.get(other); if (arrStacked && othStacked) { return arrStacked == other && othStacked == array; } var index = -1, result = true, seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; stack.set(array, other); stack.set(other, array); // Ignore non-index properties. while (++index < arrLength) { var arrValue = array[index], othValue = other[index]; if (customizer) { var compared = isPartial ? customizer(othValue, arrValue, index, other, array, stack) : customizer(arrValue, othValue, index, array, other, stack); } if (compared !== undefined) { if (compared) { continue; } result = false; break; } // Recursively compare arrays (susceptible to call stack limits). if (seen) { if (!arraySome(other, function(othValue, othIndex) { if (!cacheHas(seen, othIndex) && (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { return seen.push(othIndex); } })) { result = false; break; } } else if (!( arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack) )) { result = false; break; } } stack['delete'](array); stack['delete'](other); return result; } module.exports = equalArrays; /***/ }), /* 93 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(48), isArray = __webpack_require__(1); /** * The base implementation of `getAllKeys` and `getAllKeysIn` which uses * `keysFunc` and `symbolsFunc` to get the enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @param {Function} keysFunc The function to get the keys of `object`. * @param {Function} symbolsFunc The function to get the symbols of `object`. * @returns {Array} Returns the array of property names and symbols. */ function baseGetAllKeys(object, keysFunc, symbolsFunc) { var result = keysFunc(object); return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); } module.exports = baseGetAllKeys; /***/ }), /* 94 */ /***/ (function(module, exports, __webpack_require__) { var arrayFilter = __webpack_require__(218), stubArray = __webpack_require__(95); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Built-in value references. */ var propertyIsEnumerable = objectProto.propertyIsEnumerable; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; /** * Creates an array of the own enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbols = !nativeGetSymbols ? stubArray : function(object) { if (object == null) { return []; } object = Object(object); return arrayFilter(nativeGetSymbols(object), function(symbol) { return propertyIsEnumerable.call(object, symbol); }); }; module.exports = getSymbols; /***/ }), /* 95 */ /***/ (function(module, exports) { /** * This method returns a new empty array. * * @static * @memberOf _ * @since 4.13.0 * @category Util * @returns {Array} Returns the new empty array. * @example * * var arrays = _.times(2, _.stubArray); * * console.log(arrays); * // => [[], []] * * console.log(arrays[0] === arrays[1]); * // => false */ function stubArray() { return []; } module.exports = stubArray; /***/ }), /* 96 */ /***/ (function(module, exports, __webpack_require__) { var baseTimes = __webpack_require__(219), isArguments = __webpack_require__(33), isArray = __webpack_require__(1), isBuffer = __webpack_require__(49), isIndex = __webpack_require__(50), isTypedArray = __webpack_require__(51); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Creates an array of the enumerable property names of the array-like `value`. * * @private * @param {*} value The value to query. * @param {boolean} inherited Specify returning inherited property names. * @returns {Array} Returns the array of property names. */ function arrayLikeKeys(value, inherited) { var isArr = isArray(value), isArg = !isArr && isArguments(value), isBuff = !isArr && !isArg && isBuffer(value), isType = !isArr && !isArg && !isBuff && isTypedArray(value), skipIndexes = isArr || isArg || isBuff || isType, result = skipIndexes ? baseTimes(value.length, String) : [], length = result.length; for (var key in value) { if ((inherited || hasOwnProperty.call(value, key)) && !(skipIndexes && ( // Safari 9 has enumerable `arguments.length` in strict mode. key == 'length' || // Node.js 0.10 has enumerable non-index properties on buffers. (isBuff && (key == 'offset' || key == 'parent')) || // PhantomJS 2 has enumerable non-index properties on typed arrays. (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || // Skip index properties. isIndex(key, length) ))) { result.push(key); } } return result; } module.exports = arrayLikeKeys; /***/ }), /* 97 */ /***/ (function(module, exports) { module.exports = function(module) { if (!module.webpackPolyfill) { module.deprecate = function() {}; module.paths = []; // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 98 */ /***/ (function(module, exports) { /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } module.exports = overArg; /***/ }), /* 99 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8), root = __webpack_require__(4); /* Built-in method references that are verified to be native. */ var WeakMap = getNative(root, 'WeakMap'); module.exports = WeakMap; /***/ }), /* 100 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(5); /** * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` if suitable for strict * equality comparisons, else `false`. */ function isStrictComparable(value) { return value === value && !isObject(value); } module.exports = isStrictComparable; /***/ }), /* 101 */ /***/ (function(module, exports) { /** * A specialized version of `matchesProperty` for source values suitable * for strict equality comparisons, i.e. `===`. * * @private * @param {string} key The key of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function matchesStrictComparable(key, srcValue) { return function(object) { if (object == null) { return false; } return object[key] === srcValue && (srcValue !== undefined || (key in Object(object))); }; } module.exports = matchesStrictComparable; /***/ }), /* 102 */ /***/ (function(module, exports) { /** * A specialized version of `_.map` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the new mapped array. */ function arrayMap(array, iteratee) { var index = -1, length = array == null ? 0 : array.length, result = Array(length); while (++index < length) { result[index] = iteratee(array[index], index, array); } return result; } module.exports = arrayMap; /***/ }), /* 103 */ /***/ (function(module, exports) { /** * The base implementation of `_.property` without support for deep paths. * * @private * @param {string} key The key of the property to get. * @returns {Function} Returns the new accessor function. */ function baseProperty(key) { return function(object) { return object == null ? undefined : object[key]; }; } module.exports = baseProperty; /***/ }), /* 104 */ /***/ (function(module, exports) { /** * The base implementation of `_.findIndex` and `_.findLastIndex` without * support for iteratee shorthands. * * @private * @param {Array} array The array to inspect. * @param {Function} predicate The function invoked per iteration. * @param {number} fromIndex The index to search from. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {number} Returns the index of the matched value, else `-1`. */ function baseFindIndex(array, predicate, fromIndex, fromRight) { var length = array.length, index = fromIndex + (fromRight ? 1 : -1); while ((fromRight ? index-- : ++index < length)) { if (predicate(array[index], index, array)) { return index; } } return -1; } module.exports = baseFindIndex; /***/ }), /* 105 */ /***/ (function(module, exports, __webpack_require__) { var toFinite = __webpack_require__(242); /** * Converts `value` to an integer. * * **Note:** This method is loosely based on * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted integer. * @example * * _.toInteger(3.2); * // => 3 * * _.toInteger(Number.MIN_VALUE); * // => 0 * * _.toInteger(Infinity); * // => 1.7976931348623157e+308 * * _.toInteger('3.2'); * // => 3 */ function toInteger(value) { var result = toFinite(value), remainder = result % 1; return result === result ? (remainder ? result - remainder : result) : 0; } module.exports = toInteger; /***/ }), /* 106 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.inQuad = inQuad; exports.outQuad = outQuad; exports.inOutQuad = inOutQuad; exports.inCubic = inCubic; exports.outCubic = outCubic; exports.inOutCubic = inOutCubic; exports.inQuart = inQuart; exports.outQuart = outQuart; exports.inOutQuart = inOutQuart; exports.inQuint = inQuint; exports.outQuint = outQuint; exports.inOutQuint = inOutQuint; exports.inSine = inSine; exports.outSine = outSine; exports.inOutSine = inOutSine; exports.inExpo = inExpo; exports.outExpo = outExpo; exports.inOutExpo = inOutExpo; exports.inCirc = inCirc; exports.outCirc = outCirc; exports.inOutCirc = inOutCirc; exports.outBounce = outBounce; exports.inBack = inBack; exports.outBack = outBack; exports.inOutBack = inOutBack; exports.inElastic = inElastic; exports.outElastic = outElastic; exports.inOutElastic = inOutElastic; exports.swingFromTo = swingFromTo; exports.swingFrom = swingFrom; exports.swingTo = swingTo; exports.bounce = bounce; exports.bouncePast = bouncePast; exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn // Easing Equations (c) 2003 Robert Penner, BSD license // https://raw.github.com/danro/easing-js/master/LICENSE var magicSwing = 1.70158; var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); exports.ease = ease; var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); exports.easeIn = easeIn; var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); exports.easeOut = easeOut; var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); exports.easeInOut = easeInOut; function inQuad(pos) { return Math.pow(pos, 2); } function outQuad(pos) { return -(Math.pow(pos - 1, 2) - 1); } function inOutQuad(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 2); } return -0.5 * ((pos -= 2) * pos - 2); } function inCubic(pos) { return Math.pow(pos, 3); } function outCubic(pos) { return Math.pow(pos - 1, 3) + 1; } function inOutCubic(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 3); } return 0.5 * (Math.pow(pos - 2, 3) + 2); } function inQuart(pos) { return Math.pow(pos, 4); } function outQuart(pos) { return -(Math.pow(pos - 1, 4) - 1); } function inOutQuart(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 4); } return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); } function inQuint(pos) { return Math.pow(pos, 5); } function outQuint(pos) { return Math.pow(pos - 1, 5) + 1; } function inOutQuint(pos) { if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(pos, 5); } return 0.5 * (Math.pow(pos - 2, 5) + 2); } function inSine(pos) { return -Math.cos(pos * (Math.PI / 2)) + 1; } function outSine(pos) { return Math.sin(pos * (Math.PI / 2)); } function inOutSine(pos) { return -0.5 * (Math.cos(Math.PI * pos) - 1); } function inExpo(pos) { return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); } function outExpo(pos) { return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; } function inOutExpo(pos) { if (pos === 0) { return 0; } if (pos === 1) { return 1; } if ((pos /= 0.5) < 1) { return 0.5 * Math.pow(2, 10 * (pos - 1)); } return 0.5 * (-Math.pow(2, -10 * --pos) + 2); } function inCirc(pos) { return -(Math.sqrt(1 - pos * pos) - 1); } function outCirc(pos) { return Math.sqrt(1 - Math.pow(pos - 1, 2)); } function inOutCirc(pos) { if ((pos /= 0.5) < 1) { return -0.5 * (Math.sqrt(1 - pos * pos) - 1); } return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); } function outBounce(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; } else if (pos < 2.5 / 2.75) { return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; } else { return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; } } function inBack(pos) { var s = magicSwing; return pos * pos * ((s + 1) * pos - s); } function outBack(pos) { var s = magicSwing; return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; } function inOutBack(pos) { var s = magicSwing; if ((pos /= 0.5) < 1) { return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); } return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); } function inElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if (pos === 1) { return 1; } if (!p) { p = 0.3; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); } function outElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if (pos === 1) { return 1; } if (!p) { p = 0.3; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; } function inOutElastic(pos) { var s = magicSwing; var p = 0; var a = 1; if (pos === 0) { return 0; } if ((pos /= 1 / 2) === 2) { return 1; } if (!p) { p = 0.3 * 1.5; } if (a < 1) { a = 1; s = p / 4; } else { s = p / (2 * Math.PI) * Math.asin(1 / a); } if (pos < 1) { return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); } return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; } function swingFromTo(pos) { var s = magicSwing; return (pos /= 0.5) < 1 ? 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)) : 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); } function swingFrom(pos) { var s = magicSwing; return pos * pos * ((s + 1) * pos - s); } function swingTo(pos) { var s = magicSwing; return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; } function bounce(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; } else if (pos < 2.5 / 2.75) { return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; } else { return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; } } function bouncePast(pos) { if (pos < 1 / 2.75) { return 7.5625 * pos * pos; } else if (pos < 2 / 2.75) { return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); } else if (pos < 2.5 / 2.75) { return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); } else { return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); } } /***/ }), /* 107 */ /***/ (function(module, exports) { /** * https://github.com/gre/bezier-easing * BezierEasing - use bezier curve for transition easing function * by Gaëtan Renaudeau 2014 - 2015 – MIT License */ // These values are established by empiricism with tests (tradeoff: performance VS precision) var NEWTON_ITERATIONS = 4; var NEWTON_MIN_SLOPE = 0.001; var SUBDIVISION_PRECISION = 0.0000001; var SUBDIVISION_MAX_ITERATIONS = 10; var kSplineTableSize = 11; var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); var float32ArraySupported = typeof Float32Array === 'function'; function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } function C (aA1) { return 3.0 * aA1; } // Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } // Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } function binarySubdivide (aX, aA, aB, mX1, mX2) { var currentX, currentT, i = 0; do { currentT = aA + (aB - aA) / 2.0; currentX = calcBezier(currentT, mX1, mX2) - aX; if (currentX > 0.0) { aB = currentT; } else { aA = currentT; } } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); return currentT; } function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { for (var i = 0; i < NEWTON_ITERATIONS; ++i) { var currentSlope = getSlope(aGuessT, mX1, mX2); if (currentSlope === 0.0) { return aGuessT; } var currentX = calcBezier(aGuessT, mX1, mX2) - aX; aGuessT -= currentX / currentSlope; } return aGuessT; } module.exports = function bezier (mX1, mY1, mX2, mY2) { if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { throw new Error('bezier x values must be in [0, 1] range'); } // Precompute samples table var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize); if (mX1 !== mY1 || mX2 !== mY2) { for (var i = 0; i < kSplineTableSize; ++i) { sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); } } function getTForX (aX) { var intervalStart = 0.0; var currentSample = 1; var lastSample = kSplineTableSize - 1; for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { intervalStart += kSampleStepSize; } --currentSample; // Interpolate to provide an initial guess for t var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); var guessForT = intervalStart + dist * kSampleStepSize; var initialSlope = getSlope(guessForT, mX1, mX2); if (initialSlope >= NEWTON_MIN_SLOPE) { return newtonRaphsonIterate(aX, guessForT, mX1, mX2); } else if (initialSlope === 0.0) { return guessForT; } else { return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); } } return function BezierEasing (x) { if (mX1 === mY1 && mX2 === mY2) { return x; // linear } // Because JavaScript number are imprecise, we should guarantee the extremes are right. if (x === 0) { return 0; } if (x === 1) { return 1; } return calcBezier(getTForX(x), mY1, mY2); }; }; /***/ }), /* 108 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); var _interopRequireDefault = __webpack_require__(0); var _interopRequireWildcard = __webpack_require__(13); Object.defineProperty(exports, "__esModule", { value: true }); exports.optimizeFloat = optimizeFloat; exports.createBezierEasing = createBezierEasing; exports.applyEasing = applyEasing; var easings = _interopRequireWildcard(__webpack_require__(106)); var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); function optimizeFloat(value) { var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; var pow = Math.pow(base, digits); var _float = Number(Math.round(value * pow) / pow); return Math.abs(_float) > 0.0001 ? _float : 0; } function createBezierEasing(easing) { return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); } function applyEasing(easing, position, customEasingFn) { if (position === 0) { return 0; } if (position === 1) { return 1; } if (customEasingFn) { return optimizeFloat(position > 0 ? customEasingFn(position) : position); } return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); } /***/ }), /* 109 */ /***/ (function(module, exports, __webpack_require__) { var arrayWithoutHoles = __webpack_require__(243); var iterableToArray = __webpack_require__(244); var nonIterableSpread = __webpack_require__(245); function _toConsumableArray(arr) { return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); } module.exports = _toConsumableArray; /***/ }), /* 110 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault(__webpack_require__(26)); Object.defineProperty(exports, "__esModule", { value: true }); exports.isPluginType = isPluginType; exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; var _IX2LottieUtils = __webpack_require__(247); var _constants = __webpack_require__(2); var _IX2BrowserSupport = __webpack_require__(44); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, { getConfig: _IX2LottieUtils.getPluginConfig, getOrigin: _IX2LottieUtils.getPluginOrigin, getDuration: _IX2LottieUtils.getPluginDuration, getDestination: _IX2LottieUtils.getPluginDestination, createInstance: _IX2LottieUtils.createPluginInstance, render: _IX2LottieUtils.renderPlugin, clear: _IX2LottieUtils.clearPlugin }); function isPluginType(actionTypeId) { return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; } var pluginMethod = function pluginMethod(methodName) { return function (actionTypeId) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { // IX2 plugins require browser libs for now return function () { return null; }; } var plugin = pluginMethodMap[actionTypeId]; if (!plugin) { throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); } var method = plugin[methodName]; if (!method) { throw new Error("IX2 invalid plugin method: ".concat(methodName)); } return method; }; }; var getPluginConfig = pluginMethod('getConfig'); exports.getPluginConfig = getPluginConfig; var getPluginOrigin = pluginMethod('getOrigin'); exports.getPluginOrigin = getPluginOrigin; var getPluginDuration = pluginMethod('getDuration'); exports.getPluginDuration = getPluginDuration; var getPluginDestination = pluginMethod('getDestination'); exports.getPluginDestination = getPluginDestination; var createPluginInstance = pluginMethod('createInstance'); exports.createPluginInstance = createPluginInstance; var renderPlugin = pluginMethod('render'); exports.renderPlugin = renderPlugin; var clearPlugin = pluginMethod('clear'); exports.clearPlugin = clearPlugin; /***/ }), /* 111 */ /***/ (function(module, exports, __webpack_require__) { var baseForOwn = __webpack_require__(112), createBaseEach = __webpack_require__(254); /** * The base implementation of `_.forEach` without support for iteratee shorthands. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array|Object} Returns `collection`. */ var baseEach = createBaseEach(baseForOwn); module.exports = baseEach; /***/ }), /* 112 */ /***/ (function(module, exports, __webpack_require__) { var baseFor = __webpack_require__(252), keys = __webpack_require__(32); /** * The base implementation of `_.forOwn` without support for iteratee shorthands. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Object} Returns `object`. */ function baseForOwn(object, iteratee) { return object && baseFor(object, iteratee, keys); } module.exports = baseForOwn; /***/ }), /* 113 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(258); exports.__esModule = true; exports.default = void 0; var _shallowEqual = _interopRequireDefault(__webpack_require__(259)); var _default = _shallowEqual.default; exports.default = _default; /***/ }), /* 114 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); var _interopRequireWildcard = __webpack_require__(13); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.observeRequests = observeRequests; exports.startEngine = startEngine; exports.stopEngine = stopEngine; exports.stopAllActionGroups = stopAllActionGroups; exports.stopActionGroup = stopActionGroup; exports.startActionGroup = startActionGroup; var _extends2 = _interopRequireDefault(__webpack_require__(27)); var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(262)); var _find = _interopRequireDefault(__webpack_require__(85)); var _get = _interopRequireDefault(__webpack_require__(56)); var _size = _interopRequireDefault(__webpack_require__(263)); var _omitBy = _interopRequireDefault(__webpack_require__(269)); var _isEmpty = _interopRequireDefault(__webpack_require__(281)); var _mapValues = _interopRequireDefault(__webpack_require__(282)); var _forEach = _interopRequireDefault(__webpack_require__(283)); var _throttle = _interopRequireDefault(__webpack_require__(286)); var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); var _constants = __webpack_require__(2); var _shared = __webpack_require__(10); var _IX2EngineActions = __webpack_require__(61); var elementApi = _interopRequireWildcard(__webpack_require__(289)); var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(290)); /* eslint-env browser */ var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); var isQuickEffect = function isQuickEffect(actionTypeId) { return QuickEffectsIdList.includes(actionTypeId); }; var _constants$IX2EngineC = _constants.IX2EngineConstants, COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, getElementId = _shared$IX2VanillaUti.getElementId, getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, observeStore = _shared$IX2VanillaUti.observeStore, getInstanceId = _shared$IX2VanillaUti.getInstanceId, renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual; var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, isPluginType = _shared$IX2VanillaPlu.isPluginType, createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; var ua = navigator.userAgent; var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe function observeRequests(store) { observeStore({ store: store, select: function select(_ref) { var ixRequest = _ref.ixRequest; return ixRequest.preview; }, onChange: handlePreviewRequest }); observeStore({ store: store, select: function select(_ref2) { var ixRequest = _ref2.ixRequest; return ixRequest.playback; }, onChange: handlePlaybackRequest }); observeStore({ store: store, select: function select(_ref3) { var ixRequest = _ref3.ixRequest; return ixRequest.stop; }, onChange: handleStopRequest }); observeStore({ store: store, select: function select(_ref4) { var ixRequest = _ref4.ixRequest; return ixRequest.clear; }, onChange: handleClearRequest }); } function observeMediaQueryChange(store) { observeStore({ store: store, select: function select(_ref5) { var ixSession = _ref5.ixSession; return ixSession.mediaQueryKey; }, onChange: function onChange() { stopEngine(store); clearAllStyles({ store: store, elementApi: elementApi }); startEngine({ store: store, allowEvents: true }); dispatchPageUpdateEvent(); } }); } function observeOneRenderTick(store, onTick) { var unsubscribe = observeStore({ store: store, select: function select(_ref6) { var ixSession = _ref6.ixSession; return ixSession.tick; }, onChange: function onChange(tick) { onTick(tick); unsubscribe(); } }); } function handlePreviewRequest(_ref7, store) { var rawData = _ref7.rawData, defer = _ref7.defer; var start = function start() { startEngine({ store: store, rawData: rawData, allowEvents: true }); dispatchPageUpdateEvent(); }; defer ? setTimeout(start, 0) : start(); } function dispatchPageUpdateEvent() { document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); } function handlePlaybackRequest(playback, store) { var actionTypeId = playback.actionTypeId, actionListId = playback.actionListId, actionItemId = playback.actionItemId, eventId = playback.eventId, allowEvents = playback.allowEvents, immediate = playback.immediate, testManual = playback.testManual, _playback$verbose = playback.verbose, verbose = _playback$verbose === void 0 ? true : _playback$verbose; var rawData = playback.rawData; if (actionListId && actionItemId && rawData && immediate) { var actionList = rawData.actionLists[actionListId]; if (actionList) { rawData = reduceListToGroup({ actionList: actionList, actionItemId: actionItemId, rawData: rawData }); } } startEngine({ store: store, rawData: rawData, allowEvents: allowEvents, testManual: testManual }); if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { stopActionGroup({ store: store, actionListId: actionListId }); renderInitialGroup({ store: store, actionListId: actionListId, eventId: eventId }); var started = startActionGroup({ store: store, eventId: eventId, actionListId: actionListId, immediate: immediate, verbose: verbose }); if (verbose && started) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: !immediate })); } } } function handleStopRequest(_ref8, store) { var actionListId = _ref8.actionListId; if (actionListId) { stopActionGroup({ store: store, actionListId: actionListId }); } else { stopAllActionGroups({ store: store }); } stopEngine(store); } function handleClearRequest(state, store) { stopEngine(store); clearAllStyles({ store: store, elementApi: elementApi }); } // $FlowFixMe function startEngine(_ref9) { var store = _ref9.store, rawData = _ref9.rawData, allowEvents = _ref9.allowEvents, testManual = _ref9.testManual; var _store$getState = store.getState(), ixSession = _store$getState.ixSession; if (rawData) { store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); } if (!ixSession.active) { store.dispatch((0, _IX2EngineActions.sessionInitialized)({ hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)) })); if (allowEvents) { bindEvents(store); addDocumentClass(); if (store.getState().ixSession.hasDefinedMediaQueries) { observeMediaQueryChange(store); } } store.dispatch((0, _IX2EngineActions.sessionStarted)()); startRenderLoop(store, testManual); } } function addDocumentClass() { var _document = document, documentElement = _document.documentElement; // $FlowFixMe if (documentElement.className.indexOf(W_MOD_IX) === -1) { // $FlowFixMe documentElement.className += " ".concat(W_MOD_IX); } } function startRenderLoop(store, testManual) { var handleFrame = function handleFrame(now) { var _store$getState2 = store.getState(), ixSession = _store$getState2.ixSession, ixParameters = _store$getState2.ixParameters; if (ixSession.active) { store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); if (testManual) { observeOneRenderTick(store, handleFrame); } else { requestAnimationFrame(handleFrame); } } }; handleFrame(window.performance.now()); } // $FlowFixMe function stopEngine(store) { var _store$getState3 = store.getState(), ixSession = _store$getState3.ixSession; if (ixSession.active) { var eventListeners = ixSession.eventListeners; eventListeners.forEach(clearEventListener); store.dispatch((0, _IX2EngineActions.sessionStopped)()); } } function clearEventListener(_ref10) { var target = _ref10.target, listenerParams = _ref10.listenerParams; target.removeEventListener.apply(target, listenerParams); } function createGroupInstances(_ref11) { var store = _ref11.store, eventStateKey = _ref11.eventStateKey, eventTarget = _ref11.eventTarget, eventId = _ref11.eventId, eventConfig = _ref11.eventConfig, actionListId = _ref11.actionListId, parameterGroup = _ref11.parameterGroup, smoothing = _ref11.smoothing, restingValue = _ref11.restingValue; var _store$getState4 = store.getState(), ixData = _store$getState4.ixData, ixSession = _store$getState4.ixSession; var events = ixData.events; var event = events[eventId]; var eventTypeId = event.eventTypeId; var targetCache = {}; var instanceActionGroups = {}; var instanceConfigs = []; var continuousActionGroups = parameterGroup.continuousActionGroups; var parameterId = parameterGroup.id; if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { parameterId = getNamespacedParameterId(eventStateKey, parameterId); } // Limit affected elements when event target is within a boundary node var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; continuousActionGroups.forEach(function (actionGroup) { var keyframe = actionGroup.keyframe, actionItems = actionGroup.actionItems; actionItems.forEach(function (actionItem) { var actionTypeId = actionItem.actionTypeId; var target = actionItem.config.target; if (!target) { return; } var elementRoot = target.boundaryMode ? eventElementRoot : null; var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); if (!targetCache[key]) { targetCache[key] = true; var config = actionItem.config; getAffectedElements({ config: config, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi }).forEach(function (element) { instanceConfigs.push({ element: element, key: key }); }); } }); }); instanceConfigs.forEach(function (_ref12) { var element = _ref12.element, key = _ref12.key; var actionGroups = instanceActionGroups[key]; var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); var actionTypeId = actionItem.actionTypeId; var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; var destination = getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance); createInstance({ store: store, element: element, eventId: eventId, actionListId: actionListId, actionItem: actionItem, destination: destination, continuous: true, parameterId: parameterId, actionGroups: actionGroups, smoothing: smoothing, restingValue: restingValue, pluginInstance: pluginInstance }); }); } function appendActionItem() { var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var keyframe = arguments.length > 1 ? arguments[1] : undefined; var actionItem = arguments.length > 2 ? arguments[2] : undefined; var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); var groupIndex; newActionGroups.some(function (group, index) { if (group.keyframe === keyframe) { groupIndex = index; return true; } return false; }); if (groupIndex == null) { groupIndex = newActionGroups.length; newActionGroups.push({ keyframe: keyframe, actionItems: [] }); } newActionGroups[groupIndex].actionItems.push(actionItem); return newActionGroups; } function bindEvents(store) { var _store$getState5 = store.getState(), ixData = _store$getState5.ixData; var eventTypeMap = ixData.eventTypeMap; updateViewportWidth(store); (0, _forEach["default"])(eventTypeMap, function (events, key) { var logic = _IX2VanillaEvents["default"][key]; if (!logic) { console.warn("IX2 event type not configured: ".concat(key)); return; } bindEventType({ logic: logic, store: store, events: events }); }); var _store$getState6 = store.getState(), ixSession = _store$getState6.ixSession; if (ixSession.eventListeners.length) { bindResizeEvents(store); } } var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; function bindResizeEvents(store) { var handleResize = function handleResize() { updateViewportWidth(store); }; WINDOW_RESIZE_EVENTS.forEach(function (type) { window.addEventListener(type, handleResize); store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); }); handleResize(); } function updateViewportWidth(store) { var _store$getState7 = store.getState(), ixSession = _store$getState7.ixSession, ixData = _store$getState7.ixData; var width = window.innerWidth; if (width !== ixSession.viewportWidth) { var mediaQueries = ixData.mediaQueries; store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ width: width, mediaQueries: mediaQueries })); } } var mapFoundValues = function mapFoundValues(object, iteratee) { return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); }; var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { (0, _forEach["default"])(eventTargets, function (elements, eventId) { elements.forEach(function (element, index) { var eventStateKey = eventId + COLON_DELIMITER + index; eventCallback(element, eventId, eventStateKey); }); }); }; var getAffectedForEvent = function getAffectedForEvent(event) { var config = { target: event.target, targets: event.targets }; return getAffectedElements({ config: config, elementApi: elementApi }); }; function bindEventType(_ref13) { var logic = _ref13.logic, store = _ref13.store, events = _ref13.events; injectBehaviorCSSFixes(events); var eventTypes = logic.types, eventHandler = logic.handler; var _store$getState8 = store.getState(), ixData = _store$getState8.ixData; var actionLists = ixData.actionLists; var eventTargets = mapFoundValues(events, getAffectedForEvent); if (!(0, _size["default"])(eventTargets)) { return; } (0, _forEach["default"])(eventTargets, function (elements, key) { var event = events[key]; var eventAction = event.action, eventId = event.id, _event$mediaQueries = event.mediaQueries, mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; var actionListId = eventAction.config.actionListId; if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); } if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { var configs = Array.isArray(event.config) ? event.config : [event.config]; configs.forEach(function (eventConfig) { var continuousParameterGroupId = eventConfig.continuousParameterGroupId; var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); var parameterGroup = (0, _find["default"])(paramGroups, function (_ref14) { var id = _ref14.id; return id === continuousParameterGroupId; }); var smoothing = (eventConfig.smoothing || 0) / 100; var restingValue = (eventConfig.restingState || 0) / 100; if (!parameterGroup) { return; } elements.forEach(function (eventTarget, index) { var eventStateKey = eventId + COLON_DELIMITER + index; createGroupInstances({ store: store, eventStateKey: eventStateKey, eventTarget: eventTarget, eventId: eventId, eventConfig: eventConfig, actionListId: actionListId, parameterGroup: parameterGroup, smoothing: smoothing, restingValue: restingValue }); }); }); } if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { renderInitialGroup({ store: store, actionListId: actionListId, eventId: eventId }); } }); var handleEvent = function handleEvent(nativeEvent) { var _store$getState9 = store.getState(), ixSession = _store$getState9.ixSession; forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { var event = events[eventId]; var oldState = ixSession.eventState[eventStateKey]; var eventAction = event.action, _event$mediaQueries2 = event.mediaQueries, mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } var handleEventWithConfig = function handleEventWithConfig() { var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; var newState = eventHandler({ store: store, element: element, event: event, eventConfig: eventConfig, nativeEvent: nativeEvent, eventStateKey: eventStateKey }, oldState); if (!(0, _shallowEqual["default"])(newState, oldState)) { store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); } }; if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { var configs = Array.isArray(event.config) ? event.config : [event.config]; configs.forEach(handleEventWithConfig); } else { handleEventWithConfig(); } }); }; var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); var addListeners = function addListeners(_ref15) { var _ref15$target = _ref15.target, target = _ref15$target === void 0 ? document : _ref15$target, types = _ref15.types, shouldThrottle = _ref15.throttle; types.split(' ').filter(Boolean).forEach(function (type) { var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe target.addEventListener(type, handlerFunc); store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); }); }; if (Array.isArray(eventTypes)) { eventTypes.forEach(addListeners); } else if (typeof eventTypes === 'string') { addListeners(logic); } } /** * Injects CSS into the document to fix behavior issues across * different devices. */ function injectBehaviorCSSFixes(events) { if (!IS_MOBILE_SAFARI) { return; } var injectedSelectors = {}; var cssText = ''; for (var eventId in events) { var _events$eventId = events[eventId], eventTypeId = _events$eventId.eventTypeId, target = _events$eventId.target; var selector = elementApi.getQuerySelector(target); // $FlowFixMe if (injectedSelectors[selector]) { continue; } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { // $FlowFixMe injectedSelectors[selector] = true; cssText += // $FlowFixMe selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; } } if (cssText) { var style = document.createElement('style'); style.textContent = cssText; // $FlowFixMe document.body.appendChild(style); } } function renderInitialGroup(_ref16) { var store = _ref16.store, actionListId = _ref16.actionListId, eventId = _ref16.eventId; var _store$getState10 = store.getState(), ixData = _store$getState10.ixData, ixSession = _store$getState10.ixSession; var actionLists = ixData.actionLists, events = ixData.events; var event = events[eventId]; var actionList = actionLists[actionListId]; if (actionList && actionList.useFirstGroupAsInitialState) { var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } initialStateItems.forEach(function (actionItem) { var _itemConfig$target; var itemConfig = actionItem.config, actionTypeId = actionItem.actionTypeId; var config = // When useEventTarget is explicitly true, use event target/targets to query elements (itemConfig === null || itemConfig === void 0 ? void 0 : (_itemConfig$target = itemConfig.target) === null || _itemConfig$target === void 0 ? void 0 : _itemConfig$target.useEventTarget) === true ? { target: event.target, targets: event.targets } : itemConfig; var itemElements = getAffectedElements({ config: config, event: event, elementApi: elementApi }); var shouldUsePlugin = isPluginType(actionTypeId); itemElements.forEach(function (element) { var pluginInstance = shouldUsePlugin ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; createInstance({ destination: getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance), immediate: true, store: store, element: element, eventId: eventId, actionItem: actionItem, actionListId: actionListId, pluginInstance: pluginInstance }); }); }); } } // $FlowFixMe function stopAllActionGroups(_ref17) { var store = _ref17.store; var _store$getState11 = store.getState(), ixInstances = _store$getState11.ixInstances; (0, _forEach["default"])(ixInstances, function (instance) { if (!instance.continuous) { var actionListId = instance.actionListId, verbose = instance.verbose; removeInstance(instance, store); if (verbose) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } }); } // $FlowFixMe function stopActionGroup(_ref18) { var store = _ref18.store, eventId = _ref18.eventId, eventTarget = _ref18.eventTarget, eventStateKey = _ref18.eventStateKey, actionListId = _ref18.actionListId; var _store$getState12 = store.getState(), ixInstances = _store$getState12.ixInstances, ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; (0, _forEach["default"])(ixInstances, function (instance) { var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { // Avoid removal when root boundary does not contain instance element if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { return; } removeInstance(instance, store); if (instance.verbose) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } }); } // $FlowFixMe function startActionGroup(_ref19) { var store = _ref19.store, eventId = _ref19.eventId, eventTarget = _ref19.eventTarget, eventStateKey = _ref19.eventStateKey, actionListId = _ref19.actionListId, _ref19$groupIndex = _ref19.groupIndex, groupIndex = _ref19$groupIndex === void 0 ? 0 : _ref19$groupIndex, immediate = _ref19.immediate, verbose = _ref19.verbose; var _event$action; var _store$getState13 = store.getState(), ixData = _store$getState13.ixData, ixSession = _store$getState13.ixSession; var events = ixData.events; var event = events[eventId] || {}; var _event$mediaQueries3 = event.mediaQueries, mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); var actionItemGroups = actionList.actionItemGroups, useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups if (!actionItemGroups || !actionItemGroups.length) { return false; } // Reset to first group when event loop is configured if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { groupIndex = 0; } // Skip initial state group during action list playback, as it should already be applied if (groupIndex === 0 && useFirstGroupAsInitialState) { groupIndex++; } // Identify first animated group and apply the initial QuickEffect delay var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; var instanceDelay = isFirstGroup && isQuickEffect((_event$action = event.action) === null || _event$action === void 0 ? void 0 : _event$action.actionTypeId) ? event.config.delay : undefined; // Abort playback if no action items exist at group index var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); if (!actionItems.length) { return false; } // Abort playback if current media query is not listed in event config if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return false; } // Limit affected elements when event target is within a boundary node var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; var carrierIndex = getMaxDurationItemIndex(actionItems); var groupStartResult = false; actionItems.forEach(function (actionItem, actionIndex) { var config = actionItem.config, actionTypeId = actionItem.actionTypeId; var shouldUsePlugin = isPluginType(actionTypeId); var target = config.target; if (!target) { return; } var elementRoot = target.boundaryMode ? eventElementRoot : null; var elements = getAffectedElements({ config: config, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi }); elements.forEach(function (element, elementIndex) { var pluginInstance = shouldUsePlugin ? // $FlowFixMe createPluginInstance(actionTypeId)(element, actionItem) : null; var pluginDuration = shouldUsePlugin ? // $FlowFixMe getPluginDuration(actionTypeId)(element, actionItem) : null; groupStartResult = true; var isCarrier = carrierIndex === actionIndex && elementIndex === 0; var computedStyle = getComputedStyle({ element: element, actionItem: actionItem }); var destination = getDestinationValues({ element: element, actionItem: actionItem, elementApi: elementApi }, // $FlowFixMe pluginInstance); createInstance({ store: store, element: element, actionItem: actionItem, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex, isCarrier: isCarrier, computedStyle: computedStyle, destination: destination, immediate: immediate, verbose: verbose, pluginInstance: pluginInstance, pluginDuration: pluginDuration, instanceDelay: instanceDelay }); }); }); return groupStartResult; } function createInstance(options) { // $FlowFixMe var store = options.store, computedStyle = options.computedStyle, rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); // $FlowFixMe var autoStart = !rest.continuous; // $FlowFixMe var element = rest.element, actionItem = rest.actionItem, immediate = rest.immediate, pluginInstance = rest.pluginInstance; var instanceId = getInstanceId(); var _store$getState14 = store.getState(), ixElements = _store$getState14.ixElements, ixSession = _store$getState14.ixSession; var elementId = getElementId(ixElements, element); var _ref20 = ixElements[elementId] || {}, refState = _ref20.refState; var refType = elementApi.getRefType(element); var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe pluginInstance); store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ instanceId: instanceId, elementId: elementId, origin: origin, refType: refType }, rest))); dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); if (immediate) { renderImmediateInstance(store, instanceId); return; } observeStore({ store: store, select: function select(_ref21) { var ixInstances = _ref21.ixInstances; return ixInstances[instanceId]; }, onChange: handleInstanceChange }); if (autoStart) { store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); } } function removeInstance(instance, store) { dispatchCustomEvent(document.body, 'ix2-animation-stopping', { instanceId: instance.id, state: store.getState() }); var elementId = instance.elementId, actionItem = instance.actionItem; var _store$getState15 = store.getState(), ixElements = _store$getState15.ixElements; var _ref22 = ixElements[elementId] || {}, ref = _ref22.ref, refType = _ref22.refType; if (refType === HTML_ELEMENT) { cleanupHTMLElement(ref, actionItem, elementApi); } store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); } function dispatchCustomEvent(element, eventName, detail) { var event = document.createEvent('CustomEvent'); event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe element.dispatchEvent(event); } function renderImmediateInstance(store, instanceId) { var _store$getState16 = store.getState(), ixParameters = _store$getState16.ixParameters; store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); var _store$getState17 = store.getState(), ixInstances = _store$getState17.ixInstances; handleInstanceChange(ixInstances[instanceId], store); } function handleInstanceChange(instance, store) { var active = instance.active, continuous = instance.continuous, complete = instance.complete, elementId = instance.elementId, actionItem = instance.actionItem, actionTypeId = instance.actionTypeId, renderType = instance.renderType, current = instance.current, groupIndex = instance.groupIndex, eventId = instance.eventId, eventTarget = instance.eventTarget, eventStateKey = instance.eventStateKey, actionListId = instance.actionListId, isCarrier = instance.isCarrier, styleProp = instance.styleProp, verbose = instance.verbose, pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config var _store$getState18 = store.getState(), ixData = _store$getState18.ixData, ixSession = _store$getState18.ixSession; var events = ixData.events; var event = events[eventId] || {}; var _event$mediaQueries4 = event.mediaQueries, mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { return; } if (continuous || active || complete) { if (current || renderType === RENDER_GENERAL && complete) { // Render current values to ref state and grab latest store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); var _store$getState19 = store.getState(), ixElements = _store$getState19.ixElements; var _ref23 = ixElements[elementId] || {}, ref = _ref23.ref, refType = _ref23.refType, refState = _ref23.refState; var actionState = refState && refState[actionTypeId]; // Choose render based on ref type switch (refType) { case HTML_ELEMENT: { renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); break; } } } if (complete) { if (isCarrier) { var started = startActionGroup({ store: store, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex + 1, verbose: verbose }); if (verbose && !started) { store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ actionListId: actionListId, isPlaying: false })); } } removeInstance(instance, store); } } } /***/ }), /* 115 */ /***/ (function(module, exports, __webpack_require__) { var defineProperty = __webpack_require__(116); /** * The base implementation of `assignValue` and `assignMergeValue` without * value checks. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function baseAssignValue(object, key, value) { if (key == '__proto__' && defineProperty) { defineProperty(object, key, { 'configurable': true, 'enumerable': true, 'value': value, 'writable': true }); } else { object[key] = value; } } module.exports = baseAssignValue; /***/ }), /* 116 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8); var defineProperty = (function() { try { var func = getNative(Object, 'defineProperty'); func({}, '', {}); return func; } catch (e) {} }()); module.exports = defineProperty; /***/ }), /* 117 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(5); /** Built-in value references. */ var objectCreate = Object.create; /** * The base implementation of `_.create` without support for assigning * properties to the created object. * * @private * @param {Object} proto The object to inherit from. * @returns {Object} Returns the new object. */ var baseCreate = (function() { function object() {} return function(proto) { if (!isObject(proto)) { return {}; } if (objectCreate) { return objectCreate(proto); } object.prototype = proto; var result = new object; object.prototype = undefined; return result; }; }()); module.exports = baseCreate; /***/ }), /* 118 */ /***/ (function(module, exports, __webpack_require__) { var metaMap = __webpack_require__(303), noop = __webpack_require__(304); /** * Gets metadata for `func`. * * @private * @param {Function} func The function to query. * @returns {*} Returns the metadata for `func`. */ var getData = !metaMap ? noop : function(func) { return metaMap.get(func); }; module.exports = getData; /***/ }), /* 119 */ /***/ (function(module, exports, __webpack_require__) { var realNames = __webpack_require__(305); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Gets the name of `func`. * * @private * @param {Function} func The function to query. * @returns {string} Returns the function name. */ function getFuncName(func) { var result = (func.name + ''), array = realNames[result], length = hasOwnProperty.call(realNames, result) ? array.length : 0; while (length--) { var data = array[length], otherFunc = data.func; if (otherFunc == null || otherFunc == func) { return data.name; } } return result; } module.exports = getFuncName; /***/ }), /* 120 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(121); __webpack_require__(36); __webpack_require__(124); __webpack_require__(312); __webpack_require__(313); __webpack_require__(314); __webpack_require__(315); __webpack_require__(320); module.exports = __webpack_require__(321); /***/ }), /* 121 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, window, navigator */ /* eslint-disable no-var */ /** * Webflow: Brand pages on the subdomain */ var Webflow = __webpack_require__(6); Webflow.define('brand', module.exports = function ($) { var api = {}; var doc = document; var $html = $('html'); var $body = $('body'); var namespace = '.w-webflow-badge'; var location = window.location; var isPhantom = /PhantomJS/i.test(navigator.userAgent); var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; var brandElement; // ----------------------------------- // Module methods api.ready = function () { var shouldBrand = $html.attr('data-wf-status'); var publishedDomain = $html.attr('data-wf-domain') || ''; if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { shouldBrand = true; } if (shouldBrand && !isPhantom) { brandElement = brandElement || createBadge(); ensureBrand(); setTimeout(ensureBrand, 500); $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); } }; function onFullScreenChange() { var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); } function createBadge() { var $brand = $('').attr('href', 'https://webflow.com?utm_campaign=brandjs'); var $logoArt = $('').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ marginRight: '8px', width: '16px' }); var $logoText = $('').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); $brand.append($logoArt, $logoText); return $brand[0]; } function ensureBrand() { var found = $body.children(namespace); var match = found.length && found.get(0) === brandElement; var inEditor = Webflow.env('editor'); if (match) { // Remove brand when Editor is active if (inEditor) { found.remove(); } // Exit early, brand is in place return; } // Remove any invalid brand elements if (found.length) { found.remove(); } // Append the brand (unless Editor is active) if (!inEditor) { $body.append(brandElement); } } // Export module return api; }); /***/ }), /* 122 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file // Include tram for frame-throttling /* globals window */ /* eslint-disable no-var */ var $ = window.$; var tram = __webpack_require__(65) && $.tram; /*! * Webflow._ (aka) Underscore.js 1.6.0 (custom build) * _.each * _.map * _.find * _.filter * _.any * _.contains * _.delay * _.defer * _.throttle (webflow) * _.debounce * _.keys * _.has * _.now * * http://underscorejs.org * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors * Underscore may be freely distributed under the MIT license. * @license MIT */ module.exports = function () { var _ = {}; // Current version. _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. var breaker = {}; // Save bytes in the minified (but not gzipped) version: /* eslint-disable one-var */ var ArrayProto = Array.prototype, ObjProto = Object.prototype, FuncProto = Function.prototype; /* eslint-enable one-var */ // Create quick reference variables for speed access to core prototypes. /* eslint-disable one-var, no-unused-vars */ var push = ArrayProto.push, slice = ArrayProto.slice, concat = ArrayProto.concat, toString = ObjProto.toString, hasOwnProperty = ObjProto.hasOwnProperty; /* eslint-enable one-var, no-unused-vars */ // All **ECMAScript 5** native function implementations that we hope to use // are declared here. /* eslint-disable one-var, no-unused-vars */ var nativeForEach = ArrayProto.forEach, nativeMap = ArrayProto.map, nativeReduce = ArrayProto.reduce, nativeReduceRight = ArrayProto.reduceRight, nativeFilter = ArrayProto.filter, nativeEvery = ArrayProto.every, nativeSome = ArrayProto.some, nativeIndexOf = ArrayProto.indexOf, nativeLastIndexOf = ArrayProto.lastIndexOf, nativeIsArray = Array.isArray, nativeKeys = Object.keys, nativeBind = FuncProto.bind; /* eslint-enable one-var, no-unused-vars */ // Collection Functions // -------------------- // The cornerstone, an `each` implementation, aka `forEach`. // Handles objects with the built-in `forEach`, arrays, and raw objects. // Delegates to **ECMAScript 5**'s native `forEach` if available. var each = _.each = _.forEach = function (obj, iterator, context) { /* jshint shadow:true */ if (obj == null) return obj; if (nativeForEach && obj.forEach === nativeForEach) { obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion } else if (obj.length === +obj.length) { for (var i = 0, length = obj.length; i < length; i++) { if (iterator.call(context, obj[i], i, obj) === breaker) return; } } else { var keys = _.keys(obj); // eslint-disable-next-line no-redeclare for (var i = 0, length = keys.length; i < length; i++) { if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; } } return obj; }; // Return the results of applying the iterator to each element. // Delegates to **ECMAScript 5**'s native `map` if available. _.map = _.collect = function (obj, iterator, context) { var results = []; if (obj == null) return results; if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); each(obj, function (value, index, list) { results.push(iterator.call(context, value, index, list)); }); return results; }; // Return the first value which passes a truth test. Aliased as `detect`. _.find = _.detect = function (obj, predicate, context) { var result; any(obj, function (value, index, list) { if (predicate.call(context, value, index, list)) { result = value; return true; } }); return result; }; // Return all the elements that pass a truth test. // Delegates to **ECMAScript 5**'s native `filter` if available. // Aliased as `select`. _.filter = _.select = function (obj, predicate, context) { var results = []; if (obj == null) return results; if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); each(obj, function (value, index, list) { if (predicate.call(context, value, index, list)) results.push(value); }); return results; }; // Determine if at least one element in the object matches a truth test. // Delegates to **ECMAScript 5**'s native `some` if available. // Aliased as `any`. var any = _.some = _.any = function (obj, predicate, context) { predicate || (predicate = _.identity); var result = false; if (obj == null) return result; if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); each(obj, function (value, index, list) { if (result || (result = predicate.call(context, value, index, list))) return breaker; }); return !!result; // eslint-disable-line no-implicit-coercion }; // Determine if the array or object contains a given value (using `===`). // Aliased as `include`. _.contains = _.include = function (obj, target) { if (obj == null) return false; if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq return obj.indexOf(target) != -1; return any(obj, function (value) { return value === target; }); }; // Function (ahem) Functions // -------------------- // Delays a function for the given number of milliseconds, and then calls // it with the arguments supplied. _.delay = function (func, wait) { var args = slice.call(arguments, 2); return setTimeout(function () { return func.apply(null, args); }, wait); }; // Defers a function, scheduling it to run after the current call stack has // cleared. _.defer = function (func) { return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); }; // Returns a function, that, when invoked, will only be triggered once every // browser animation frame - using tram's requestAnimationFrame polyfill. _.throttle = function (func) { // eslint-disable-next-line one-var var wait, args, context; return function () { if (wait) return; wait = true; args = arguments; context = this; tram.frame(function () { wait = false; func.apply(context, args); }); }; }; // Returns a function, that, as long as it continues to be invoked, will not // be triggered. The function will be called after it stops being called for // N milliseconds. If `immediate` is passed, trigger the function on the // leading edge, instead of the trailing. _.debounce = function (func, wait, immediate) { // eslint-disable-next-line one-var var timeout, args, context, timestamp, result; var later = function later() { var last = _.now() - timestamp; if (last < wait) { timeout = setTimeout(later, wait - last); } else { timeout = null; if (!immediate) { result = func.apply(context, args); context = args = null; } } }; return function () { context = this; args = arguments; timestamp = _.now(); var callNow = immediate && !timeout; if (!timeout) { timeout = setTimeout(later, wait); } if (callNow) { result = func.apply(context, args); context = args = null; } return result; }; }; // Object Functions // ---------------- // Fill in a given object with default properties. _.defaults = function (obj) { if (!_.isObject(obj)) return obj; for (var i = 1, length = arguments.length; i < length; i++) { var source = arguments[i]; for (var prop in source) { // eslint-disable-next-line no-void if (obj[prop] === void 0) obj[prop] = source[prop]; } } return obj; }; // Retrieve the names of an object's properties. // Delegates to **ECMAScript 5**'s native `Object.keys` _.keys = function (obj) { if (!_.isObject(obj)) return []; if (nativeKeys) return nativeKeys(obj); var keys = []; for (var key in obj) { if (_.has(obj, key)) keys.push(key); } return keys; }; // Shortcut function for checking if an object has a given property directly // on itself (in other words, not on a prototype). _.has = function (obj, key) { return hasOwnProperty.call(obj, key); }; // Is a given variable an object? _.isObject = function (obj) { return obj === Object(obj); }; // Utility Functions // ----------------- // A (possibly faster) way to get the current timestamp as an integer. _.now = Date.now || function () { return new Date().getTime(); }; // By default, Underscore uses ERB-style template delimiters, change the // following template settings to use alternative delimiters. _.templateSettings = { evaluate: /<%([\s\S]+?)%>/g, interpolate: /<%=([\s\S]+?)%>/g, escape: /<%-([\s\S]+?)%>/g }; // When customizing `templateSettings`, if you don't want to define an // interpolation, evaluation or escaping regex, we need one that is // guaranteed not to match. var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a // string literal. var escapes = { "'": "'", '\\': '\\', '\r': 'r', '\n': 'n', "\u2028": 'u2028', "\u2029": 'u2029' }; var escaper = /\\|'|\r|\n|\u2028|\u2029/g; var escapeChar = function escapeChar(match) { return '\\' + escapes[match]; }; // JavaScript micro-templating, similar to John Resig's implementation. // Underscore templating handles arbitrary delimiters, preserves whitespace, // and correctly escapes quotes within interpolated code. // NB: `oldSettings` only exists for backwards compatibility. _.template = function (text, settings, oldSettings) { if (!settings && oldSettings) settings = oldSettings; settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. var matcher = RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join('|') + '|$', 'g'); // Compile the template source, escaping string literals appropriately. var index = 0; var source = "__p+='"; text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { source += text.slice(index, offset).replace(escaper, escapeChar); index = offset + match.length; if (escape) { source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; } else if (interpolate) { source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'"; } else if (evaluate) { source += "';\n" + evaluate + "\n__p+='"; } // Adobe VMs need the match returned to produce the correct offest. return match; }); source += "';\n"; // If a variable is not specified, place data values in local scope. if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; try { // eslint-disable-next-line no-new-func var render = new Function(settings.variable || 'obj', '_', source); } catch (e) { e.source = source; throw e; } var template = function template(data) { return render.call(this, data, _); }; // Provide the compiled source as a convenience for precompilation. var argument = settings.variable || 'obj'; template.source = 'function(' + argument + '){\n' + source + '}'; return template; }; // Export underscore return _; }(); /* eslint-enable */ /***/ }), /* 123 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window */ /* eslint-disable no-var */ /** * Webflow: IX Event triggers for other modules */ // eslint-disable-next-line strict var $ = window.jQuery; var api = {}; var eventQueue = []; var namespace = '.w-ix'; var eventTriggers = { reset: function reset(i, el) { el.__wf_intro = null; }, intro: function intro(i, el) { if (el.__wf_intro) { return; } el.__wf_intro = true; $(el).triggerHandler(api.types.INTRO); }, outro: function outro(i, el) { if (!el.__wf_intro) { return; } el.__wf_intro = null; $(el).triggerHandler(api.types.OUTRO); } }; api.triggers = {}; api.types = { INTRO: 'w-ix-intro' + namespace, OUTRO: 'w-ix-outro' + namespace }; // Trigger any events in queue + restore trigger methods api.init = function () { var count = eventQueue.length; for (var i = 0; i < count; i++) { var memo = eventQueue[i]; memo[0](0, memo[1]); } eventQueue = []; $.extend(api.triggers, eventTriggers); }; // Replace all triggers with async wrapper to queue events until init api.async = function () { for (var key in eventTriggers) { var func = eventTriggers[key]; if (!eventTriggers.hasOwnProperty(key)) { continue; } // Replace trigger method with async wrapper api.triggers[key] = function (i, el) { eventQueue.push([func, el]); }; } }; // Default triggers to async queue api.async(); module.exports = api; /***/ }), /* 124 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* eslint-disable no-var */ /** * Webflow: Interactions 2 */ var Webflow = __webpack_require__(6); var ix2 = __webpack_require__(125); ix2.setEnv(Webflow.env); Webflow.define('ix2', module.exports = function () { return ix2; }); /***/ }), /* 125 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireWildcard = __webpack_require__(13); var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.setEnv = setEnv; exports.init = init; exports.destroy = destroy; exports.actions = exports.store = void 0; __webpack_require__(126); var _redux = __webpack_require__(78); var _IX2Reducer = _interopRequireDefault(__webpack_require__(167)); var _IX2VanillaEngine = __webpack_require__(114); var actions = _interopRequireWildcard(__webpack_require__(61)); exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects var store = (0, _redux.createStore)(_IX2Reducer["default"]); exports.store = store; function setEnv(env) { if (env()) { (0, _IX2VanillaEngine.observeRequests)(store); } } function init(rawData) { destroy(); (0, _IX2VanillaEngine.startEngine)({ store: store, rawData: rawData, allowEvents: true }); } function destroy() { (0, _IX2VanillaEngine.stopEngine)(store); } /***/ }), /* 126 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(127); /***/ }), /* 127 */ /***/ (function(module, exports, __webpack_require__) { __webpack_require__(128); var entryUnbind = __webpack_require__(153); module.exports = entryUnbind('Array', 'includes'); /***/ }), /* 128 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var $ = __webpack_require__(129); var $includes = __webpack_require__(76).includes; var addToUnscopables = __webpack_require__(146); // `Array.prototype.includes` method // https://tc39.github.io/ecma262/#sec-array.prototype.includes $({ target: 'Array', proto: true }, { includes: function includes(el /* , fromIndex = 0 */) { return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); } }); // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables addToUnscopables('includes'); /***/ }), /* 129 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var getOwnPropertyDescriptor = __webpack_require__(66).f; var hide = __webpack_require__(17); var redefine = __webpack_require__(134); var setGlobal = __webpack_require__(39); var copyConstructorProperties = __webpack_require__(138); var isForced = __webpack_require__(145); /* options.target - name of the target object options.global - target is the global object options.stat - export as static methods of target options.proto - export as prototype methods of target options.real - real prototype method for the `pure` version options.forced - export even if the native feature is available options.bind - bind methods to the target, required for the `pure` version options.wrap - wrap constructors to preventing global pollution, required for the `pure` version options.unsafe - use the simple assignment of property instead of delete + defineProperty options.sham - add a flag to not completely full polyfills options.enumerable - export as enumerable property options.noTargetGet - prevent calling a getter on target */ module.exports = function (options, source) { var TARGET = options.target; var GLOBAL = options.global; var STATIC = options.stat; var FORCED, target, key, targetProperty, sourceProperty, descriptor; if (GLOBAL) { target = global; } else if (STATIC) { target = global[TARGET] || setGlobal(TARGET, {}); } else { target = (global[TARGET] || {}).prototype; } if (target) for (key in source) { sourceProperty = source[key]; if (options.noTargetGet) { descriptor = getOwnPropertyDescriptor(target, key); targetProperty = descriptor && descriptor.value; } else targetProperty = target[key]; FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); // contained in target if (!FORCED && targetProperty !== undefined) { if (typeof sourceProperty === typeof targetProperty) continue; copyConstructorProperties(sourceProperty, targetProperty); } // add a flag to not completely full polyfills if (options.sham || (targetProperty && targetProperty.sham)) { hide(sourceProperty, 'sham', true); } // extend global redefine(target, key, sourceProperty, options); } }; /***/ }), /* 130 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var nativePropertyIsEnumerable = {}.propertyIsEnumerable; var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; // Nashorn ~ JDK8 bug var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); // `Object.prototype.propertyIsEnumerable` method implementation // https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { var descriptor = getOwnPropertyDescriptor(this, V); return !!descriptor && descriptor.enumerable; } : nativePropertyIsEnumerable; /***/ }), /* 131 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(15); var classof = __webpack_require__(132); var split = ''.split; // fallback for non-array-like ES3 and non-enumerable old V8 strings module.exports = fails(function () { // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 // eslint-disable-next-line no-prototype-builtins return !Object('z').propertyIsEnumerable(0); }) ? function (it) { return classof(it) == 'String' ? split.call(it, '') : Object(it); } : Object; /***/ }), /* 132 */ /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /* 133 */ /***/ (function(module, exports) { // `RequireObjectCoercible` abstract operation // https://tc39.github.io/ecma262/#sec-requireobjectcoercible module.exports = function (it) { if (it == undefined) throw TypeError("Can't call method on " + it); return it; }; /***/ }), /* 134 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var shared = __webpack_require__(25); var hide = __webpack_require__(17); var has = __webpack_require__(16); var setGlobal = __webpack_require__(39); var nativeFunctionToString = __webpack_require__(71); var InternalStateModule = __webpack_require__(136); var getInternalState = InternalStateModule.get; var enforceInternalState = InternalStateModule.enforce; var TEMPLATE = String(nativeFunctionToString).split('toString'); shared('inspectSource', function (it) { return nativeFunctionToString.call(it); }); (module.exports = function (O, key, value, options) { var unsafe = options ? !!options.unsafe : false; var simple = options ? !!options.enumerable : false; var noTargetGet = options ? !!options.noTargetGet : false; if (typeof value == 'function') { if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key); enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); } if (O === global) { if (simple) O[key] = value; else setGlobal(key, value); return; } else if (!unsafe) { delete O[key]; } else if (!noTargetGet && O[key]) { simple = true; } if (simple) O[key] = value; else hide(O, key, value); // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, 'toString', function toString() { return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this); }); /***/ }), /* 135 */ /***/ (function(module, exports) { module.exports = false; /***/ }), /* 136 */ /***/ (function(module, exports, __webpack_require__) { var NATIVE_WEAK_MAP = __webpack_require__(137); var global = __webpack_require__(3); var isObject = __webpack_require__(23); var hide = __webpack_require__(17); var objectHas = __webpack_require__(16); var sharedKey = __webpack_require__(72); var hiddenKeys = __webpack_require__(40); var WeakMap = global.WeakMap; var set, get, has; var enforce = function (it) { return has(it) ? get(it) : set(it, {}); }; var getterFor = function (TYPE) { return function (it) { var state; if (!isObject(it) || (state = get(it)).type !== TYPE) { throw TypeError('Incompatible receiver, ' + TYPE + ' required'); } return state; }; }; if (NATIVE_WEAK_MAP) { var store = new WeakMap(); var wmget = store.get; var wmhas = store.has; var wmset = store.set; set = function (it, metadata) { wmset.call(store, it, metadata); return metadata; }; get = function (it) { return wmget.call(store, it) || {}; }; has = function (it) { return wmhas.call(store, it); }; } else { var STATE = sharedKey('state'); hiddenKeys[STATE] = true; set = function (it, metadata) { hide(it, STATE, metadata); return metadata; }; get = function (it) { return objectHas(it, STATE) ? it[STATE] : {}; }; has = function (it) { return objectHas(it, STATE); }; } module.exports = { set: set, get: get, has: has, enforce: enforce, getterFor: getterFor }; /***/ }), /* 137 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var nativeFunctionToString = __webpack_require__(71); var WeakMap = global.WeakMap; module.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap)); /***/ }), /* 138 */ /***/ (function(module, exports, __webpack_require__) { var has = __webpack_require__(16); var ownKeys = __webpack_require__(139); var getOwnPropertyDescriptorModule = __webpack_require__(66); var definePropertyModule = __webpack_require__(38); module.exports = function (target, source) { var keys = ownKeys(source); var defineProperty = definePropertyModule.f; var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; for (var i = 0; i < keys.length; i++) { var key = keys[i]; if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); } }; /***/ }), /* 139 */ /***/ (function(module, exports, __webpack_require__) { var getBuiltIn = __webpack_require__(74); var getOwnPropertyNamesModule = __webpack_require__(141); var getOwnPropertySymbolsModule = __webpack_require__(144); var anObject = __webpack_require__(24); // all object keys, includes non-enumerable and symbols module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { var keys = getOwnPropertyNamesModule.f(anObject(it)); var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; }; /***/ }), /* 140 */ /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__(3); /***/ }), /* 141 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(75); var enumBugKeys = __webpack_require__(41); var hiddenKeys = enumBugKeys.concat('length', 'prototype'); // `Object.getOwnPropertyNames` method // https://tc39.github.io/ecma262/#sec-object.getownpropertynames exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { return internalObjectKeys(O, hiddenKeys); }; /***/ }), /* 142 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(77); var min = Math.min; // `ToLength` abstract operation // https://tc39.github.io/ecma262/#sec-tolength module.exports = function (argument) { return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 }; /***/ }), /* 143 */ /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__(77); var max = Math.max; var min = Math.min; // Helper for a popular repeating case of the spec: // Let integer be ? ToInteger(index). // If integer < 0, let result be max((length + integer), 0); else let result be min(length, length). module.exports = function (index, length) { var integer = toInteger(index); return integer < 0 ? max(integer + length, 0) : min(integer, length); }; /***/ }), /* 144 */ /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /* 145 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(15); var replacement = /#|\.prototype\./; var isForced = function (feature, detection) { var value = data[normalize(feature)]; return value == POLYFILL ? true : value == NATIVE ? false : typeof detection == 'function' ? fails(detection) : !!detection; }; var normalize = isForced.normalize = function (string) { return String(string).replace(replacement, '.').toLowerCase(); }; var data = isForced.data = {}; var NATIVE = isForced.NATIVE = 'N'; var POLYFILL = isForced.POLYFILL = 'P'; module.exports = isForced; /***/ }), /* 146 */ /***/ (function(module, exports, __webpack_require__) { var wellKnownSymbol = __webpack_require__(147); var create = __webpack_require__(149); var hide = __webpack_require__(17); var UNSCOPABLES = wellKnownSymbol('unscopables'); var ArrayPrototype = Array.prototype; // Array.prototype[@@unscopables] // https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables if (ArrayPrototype[UNSCOPABLES] == undefined) { hide(ArrayPrototype, UNSCOPABLES, create(null)); } // add a key to Array.prototype[@@unscopables] module.exports = function (key) { ArrayPrototype[UNSCOPABLES][key] = true; }; /***/ }), /* 147 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var shared = __webpack_require__(25); var uid = __webpack_require__(73); var NATIVE_SYMBOL = __webpack_require__(148); var Symbol = global.Symbol; var store = shared('wks'); module.exports = function (name) { return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name] || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; /***/ }), /* 148 */ /***/ (function(module, exports, __webpack_require__) { var fails = __webpack_require__(15); module.exports = !!Object.getOwnPropertySymbols && !fails(function () { // Chrome 38 Symbol has incorrect toString conversion // eslint-disable-next-line no-undef return !String(Symbol()); }); /***/ }), /* 149 */ /***/ (function(module, exports, __webpack_require__) { var anObject = __webpack_require__(24); var defineProperties = __webpack_require__(150); var enumBugKeys = __webpack_require__(41); var hiddenKeys = __webpack_require__(40); var html = __webpack_require__(152); var documentCreateElement = __webpack_require__(70); var sharedKey = __webpack_require__(72); var IE_PROTO = sharedKey('IE_PROTO'); var PROTOTYPE = 'prototype'; var Empty = function () { /* empty */ }; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = documentCreateElement('iframe'); var length = enumBugKeys.length; var lt = '<'; var script = 'script'; var gt = '>'; var js = 'java' + script + ':'; var iframeDocument; iframe.style.display = 'none'; html.appendChild(iframe); iframe.src = String(js); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt); iframeDocument.close(); createDict = iframeDocument.F; while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; return createDict(); }; // `Object.create` method // https://tc39.github.io/ecma262/#sec-object.create module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : defineProperties(result, Properties); }; hiddenKeys[IE_PROTO] = true; /***/ }), /* 150 */ /***/ (function(module, exports, __webpack_require__) { var DESCRIPTORS = __webpack_require__(14); var definePropertyModule = __webpack_require__(38); var anObject = __webpack_require__(24); var objectKeys = __webpack_require__(151); // `Object.defineProperties` method // https://tc39.github.io/ecma262/#sec-object.defineproperties module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = objectKeys(Properties); var length = keys.length; var index = 0; var key; while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); return O; }; /***/ }), /* 151 */ /***/ (function(module, exports, __webpack_require__) { var internalObjectKeys = __webpack_require__(75); var enumBugKeys = __webpack_require__(41); // `Object.keys` method // https://tc39.github.io/ecma262/#sec-object.keys module.exports = Object.keys || function keys(O) { return internalObjectKeys(O, enumBugKeys); }; /***/ }), /* 152 */ /***/ (function(module, exports, __webpack_require__) { var getBuiltIn = __webpack_require__(74); module.exports = getBuiltIn('document', 'documentElement'); /***/ }), /* 153 */ /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__(3); var bind = __webpack_require__(154); var call = Function.call; module.exports = function (CONSTRUCTOR, METHOD, length) { return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); }; /***/ }), /* 154 */ /***/ (function(module, exports, __webpack_require__) { var aFunction = __webpack_require__(155); // optional / simple context binding module.exports = function (fn, that, length) { aFunction(fn); if (that === undefined) return fn; switch (length) { case 0: return function () { return fn.call(that); }; case 1: return function (a) { return fn.call(that, a); }; case 2: return function (a, b) { return fn.call(that, a, b); }; case 3: return function (a, b, c) { return fn.call(that, a, b, c); }; } return function (/* ...args */) { return fn.apply(that, arguments); }; }; /***/ }), /* 155 */ /***/ (function(module, exports) { module.exports = function (it) { if (typeof it != 'function') { throw TypeError(String(it) + ' is not a function'); } return it; }; /***/ }), /* 156 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); /* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(159); /* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(160); /** `Object#toString` result references. */ var nullTag = '[object Null]', undefinedTag = '[object Undefined]'; /** Built-in value references. */ var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; /** * The base implementation of `getTag` without fallbacks for buggy environments. * * @private * @param {*} value The value to query. * @returns {string} Returns the `toStringTag`. */ function baseGetTag(value) { if (value == null) { return value === undefined ? undefinedTag : nullTag; } return (symToStringTag && symToStringTag in Object(value)) ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); } /* harmony default export */ __webpack_exports__["default"] = (baseGetTag); /***/ }), /* 157 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(158); /** Detect free variable `self`. */ var freeSelf = typeof self == 'object' && self && self.Object === Object && self; /** Used as a reference to the global object. */ var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); /* harmony default export */ __webpack_exports__["default"] = (root); /***/ }), /* 158 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; /* harmony default export */ __webpack_exports__["default"] = (freeGlobal); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) /***/ }), /* 159 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } /* harmony default export */ __webpack_exports__["default"] = (getRawTag); /***/ }), /* 160 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } /* harmony default export */ __webpack_exports__["default"] = (objectToString); /***/ }), /* 161 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(162); /** Built-in value references. */ var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); /* harmony default export */ __webpack_exports__["default"] = (getPrototype); /***/ }), /* 162 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** * Creates a unary function that invokes `func` with its argument transformed. * * @private * @param {Function} func The function to wrap. * @param {Function} transform The argument transform. * @returns {Function} Returns the new function. */ function overArg(func, transform) { return function(arg) { return func(transform(arg)); }; } /* harmony default export */ __webpack_exports__["default"] = (overArg); /***/ }), /* 163 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /** * Checks if `value` is object-like. A value is object-like if it's not `null` * and has a `typeof` result of "object". * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is object-like, else `false`. * @example * * _.isObjectLike({}); * // => true * * _.isObjectLike([1, 2, 3]); * // => true * * _.isObjectLike(_.noop); * // => false * * _.isObjectLike(null); * // => false */ function isObjectLike(value) { return value != null && typeof value == 'object'; } /* harmony default export */ __webpack_exports__["default"] = (isObjectLike); /***/ }), /* 164 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(166); /* global window */ var root; if (typeof self !== 'undefined') { root = self; } else if (typeof window !== 'undefined') { root = window; } else if (typeof global !== 'undefined') { root = global; } else if (true) { root = module; } else {} var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); /* harmony default export */ __webpack_exports__["default"] = (result); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22), __webpack_require__(165)(module))) /***/ }), /* 165 */ /***/ (function(module, exports) { module.exports = function(originalModule) { if (!originalModule.webpackPolyfill) { var module = Object.create(originalModule); // module.parent = undefined by default if (!module.children) module.children = []; Object.defineProperty(module, "loaded", { enumerable: true, get: function() { return module.l; } }); Object.defineProperty(module, "id", { enumerable: true, get: function() { return module.i; } }); Object.defineProperty(module, "exports", { enumerable: true }); module.webpackPolyfill = 1; } return module; }; /***/ }), /* 166 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); function symbolObservablePonyfill(root) { var result; var Symbol = root.Symbol; if (typeof Symbol === 'function') { if (Symbol.observable) { result = Symbol.observable; } else { result = Symbol('observable'); Symbol.observable = result; } } else { result = '@@observable'; } return result; }; /***/ }), /* 167 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _redux = __webpack_require__(78); var _IX2DataReducer = __webpack_require__(168); var _IX2RequestReducer = __webpack_require__(174); var _IX2SessionReducer = __webpack_require__(175); var _shared = __webpack_require__(10); var _IX2InstancesReducer = __webpack_require__(260); var _IX2ParametersReducer = __webpack_require__(261); var ixElements = _shared.IX2ElementsReducer.ixElements; var _default = (0, _redux.combineReducers)({ ixData: _IX2DataReducer.ixData, ixRequest: _IX2RequestReducer.ixRequest, ixSession: _IX2SessionReducer.ixSession, ixElements: ixElements, ixInstances: _IX2InstancesReducer.ixInstances, ixParameters: _IX2ParametersReducer.ixParameters }); exports["default"] = _default; /***/ }), /* 168 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixData = void 0; var _constants = __webpack_require__(2); var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; var ixData = function ixData() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixData || Object.freeze({}); } default: { return state; } } }; exports.ixData = ixData; /***/ }), /* 169 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; /** * Event Type IDs */ var EventTypeConsts = { NAVBAR_OPEN: 'NAVBAR_OPEN', NAVBAR_CLOSE: 'NAVBAR_CLOSE', TAB_ACTIVE: 'TAB_ACTIVE', TAB_INACTIVE: 'TAB_INACTIVE', SLIDER_ACTIVE: 'SLIDER_ACTIVE', SLIDER_INACTIVE: 'SLIDER_INACTIVE', DROPDOWN_OPEN: 'DROPDOWN_OPEN', DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', MOUSE_CLICK: 'MOUSE_CLICK', MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', MOUSE_DOWN: 'MOUSE_DOWN', MOUSE_UP: 'MOUSE_UP', MOUSE_OVER: 'MOUSE_OVER', MOUSE_OUT: 'MOUSE_OUT', MOUSE_MOVE: 'MOUSE_MOVE', MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', PAGE_START: 'PAGE_START', PAGE_FINISH: 'PAGE_FINISH', PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', PAGE_SCROLL: 'PAGE_SCROLL' }; /** * Event Config Enums */ exports.EventTypeConsts = EventTypeConsts; var EventAppliesTo = { ELEMENT: 'ELEMENT', CLASS: 'CLASS', PAGE: 'PAGE' }; exports.EventAppliesTo = EventAppliesTo; var EventBasedOn = { ELEMENT: 'ELEMENT', VIEWPORT: 'VIEWPORT' }; exports.EventBasedOn = EventBasedOn; var EventContinuousMouseAxes = { X_AXIS: 'X_AXIS', Y_AXIS: 'Y_AXIS' }; exports.EventContinuousMouseAxes = EventContinuousMouseAxes; var EventLimitAffectedElements = { CHILDREN: 'CHILDREN', SIBLINGS: 'SIBLINGS', IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' }; /** * Quick Effect Enums */ exports.EventLimitAffectedElements = EventLimitAffectedElements; var QuickEffectIds = { FADE_EFFECT: 'FADE_EFFECT', SLIDE_EFFECT: 'SLIDE_EFFECT', GROW_EFFECT: 'GROW_EFFECT', SHRINK_EFFECT: 'SHRINK_EFFECT', SPIN_EFFECT: 'SPIN_EFFECT', FLY_EFFECT: 'FLY_EFFECT', POP_EFFECT: 'POP_EFFECT', FLIP_EFFECT: 'FLIP_EFFECT', JIGGLE_EFFECT: 'JIGGLE_EFFECT', PULSE_EFFECT: 'PULSE_EFFECT', DROP_EFFECT: 'DROP_EFFECT', BLINK_EFFECT: 'BLINK_EFFECT', BOUNCE_EFFECT: 'BOUNCE_EFFECT', FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', JELLO_EFFECT: 'JELLO_EFFECT', GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' }; /** * Quick Effect Direction Enums */ exports.QuickEffectIds = QuickEffectIds; var QuickEffectDirectionConsts = { LEFT: 'LEFT', RIGHT: 'RIGHT', BOTTOM: 'BOTTOM', TOP: 'TOP', BOTTOM_LEFT: 'BOTTOM_LEFT', BOTTOM_RIGHT: 'BOTTOM_RIGHT', TOP_RIGHT: 'TOP_RIGHT', TOP_LEFT: 'TOP_LEFT', CLOCKWISE: 'CLOCKWISE', COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' }; exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; /***/ }), /* 170 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; var ActionTypeConsts = { TRANSFORM_MOVE: 'TRANSFORM_MOVE', TRANSFORM_SCALE: 'TRANSFORM_SCALE', TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', TRANSFORM_SKEW: 'TRANSFORM_SKEW', STYLE_OPACITY: 'STYLE_OPACITY', STYLE_SIZE: 'STYLE_SIZE', STYLE_FILTER: 'STYLE_FILTER', STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', STYLE_BORDER: 'STYLE_BORDER', STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', GENERAL_DISPLAY: 'GENERAL_DISPLAY', GENERAL_START_ACTION: 'GENERAL_START_ACTION', GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', // TODO: Clean these up below because they're not used at this time GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', GENERAL_LOOP: 'GENERAL_LOOP', STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' }; exports.ActionTypeConsts = ActionTypeConsts; var ActionAppliesTo = { ELEMENT: 'ELEMENT', ELEMENT_CLASS: 'ELEMENT_CLASS', TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' }; exports.ActionAppliesTo = ActionAppliesTo; /***/ }), /* 171 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InteractionTypeConsts = void 0; var InteractionTypeConsts = { MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', TAB_INTERACTION: 'TAB_INTERACTION', SLIDER_INTERACTION: 'SLIDER_INTERACTION' }; exports.InteractionTypeConsts = InteractionTypeConsts; /***/ }), /* 172 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.IX2_TEST_FRAME_RENDERED = exports.IX2_MEDIA_QUERIES_DEFINED = exports.IX2_VIEWPORT_WIDTH_CHANGED = exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = exports.IX2_ELEMENT_STATE_CHANGED = exports.IX2_INSTANCE_REMOVED = exports.IX2_INSTANCE_STARTED = exports.IX2_INSTANCE_ADDED = exports.IX2_PARAMETER_CHANGED = exports.IX2_ANIMATION_FRAME_CHANGED = exports.IX2_EVENT_STATE_CHANGED = exports.IX2_EVENT_LISTENER_ADDED = exports.IX2_CLEAR_REQUESTED = exports.IX2_STOP_REQUESTED = exports.IX2_PLAYBACK_REQUESTED = exports.IX2_PREVIEW_REQUESTED = exports.IX2_SESSION_STOPPED = exports.IX2_SESSION_STARTED = exports.IX2_SESSION_INITIALIZED = exports.IX2_RAW_DATA_IMPORTED = void 0; var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; /***/ }), /* 173 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exports.ABSTRACT_NODE = exports.PLAIN_OBJECT = exports.HTML_ELEMENT = exports.PRESERVE_3D = exports.PARENT = exports.SIBLINGS = exports.IMMEDIATE_CHILDREN = exports.CHILDREN = exports.BAR_DELIMITER = exports.COLON_DELIMITER = exports.COMMA_DELIMITER = exports.AUTO = exports.WILL_CHANGE = exports.FLEX = exports.DISPLAY = exports.COLOR = exports.BORDER_COLOR = exports.BACKGROUND = exports.BACKGROUND_COLOR = exports.HEIGHT = exports.WIDTH = exports.FILTER = exports.OPACITY = exports.SKEW_Y = exports.SKEW_X = exports.SKEW = exports.ROTATE_Z = exports.ROTATE_Y = exports.ROTATE_X = exports.SCALE_3D = exports.SCALE_Z = exports.SCALE_Y = exports.SCALE_X = exports.TRANSLATE_3D = exports.TRANSLATE_Z = exports.TRANSLATE_Y = exports.TRANSLATE_X = exports.TRANSFORM = exports.CONFIG_UNIT = exports.CONFIG_Z_UNIT = exports.CONFIG_Y_UNIT = exports.CONFIG_X_UNIT = exports.CONFIG_VALUE = exports.CONFIG_Z_VALUE = exports.CONFIG_Y_VALUE = exports.CONFIG_X_VALUE = exports.BOUNDARY_SELECTOR = exports.W_MOD_IX = exports.W_MOD_JS = exports.WF_PAGE = exports.IX2_ID_DELIMITER = void 0; var IX2_ID_DELIMITER = '|'; exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; var WF_PAGE = 'data-wf-page'; exports.WF_PAGE = WF_PAGE; var W_MOD_JS = 'w-mod-js'; exports.W_MOD_JS = W_MOD_JS; var W_MOD_IX = 'w-mod-ix'; exports.W_MOD_IX = W_MOD_IX; var BOUNDARY_SELECTOR = '.w-dyn-item'; exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; var CONFIG_X_VALUE = 'xValue'; exports.CONFIG_X_VALUE = CONFIG_X_VALUE; var CONFIG_Y_VALUE = 'yValue'; exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; var CONFIG_Z_VALUE = 'zValue'; exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; var CONFIG_VALUE = 'value'; exports.CONFIG_VALUE = CONFIG_VALUE; var CONFIG_X_UNIT = 'xUnit'; exports.CONFIG_X_UNIT = CONFIG_X_UNIT; var CONFIG_Y_UNIT = 'yUnit'; exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; var CONFIG_Z_UNIT = 'zUnit'; exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; var CONFIG_UNIT = 'unit'; exports.CONFIG_UNIT = CONFIG_UNIT; var TRANSFORM = 'transform'; exports.TRANSFORM = TRANSFORM; var TRANSLATE_X = 'translateX'; exports.TRANSLATE_X = TRANSLATE_X; var TRANSLATE_Y = 'translateY'; exports.TRANSLATE_Y = TRANSLATE_Y; var TRANSLATE_Z = 'translateZ'; exports.TRANSLATE_Z = TRANSLATE_Z; var TRANSLATE_3D = 'translate3d'; exports.TRANSLATE_3D = TRANSLATE_3D; var SCALE_X = 'scaleX'; exports.SCALE_X = SCALE_X; var SCALE_Y = 'scaleY'; exports.SCALE_Y = SCALE_Y; var SCALE_Z = 'scaleZ'; exports.SCALE_Z = SCALE_Z; var SCALE_3D = 'scale3d'; exports.SCALE_3D = SCALE_3D; var ROTATE_X = 'rotateX'; exports.ROTATE_X = ROTATE_X; var ROTATE_Y = 'rotateY'; exports.ROTATE_Y = ROTATE_Y; var ROTATE_Z = 'rotateZ'; exports.ROTATE_Z = ROTATE_Z; var SKEW = 'skew'; exports.SKEW = SKEW; var SKEW_X = 'skewX'; exports.SKEW_X = SKEW_X; var SKEW_Y = 'skewY'; exports.SKEW_Y = SKEW_Y; var OPACITY = 'opacity'; exports.OPACITY = OPACITY; var FILTER = 'filter'; exports.FILTER = FILTER; var WIDTH = 'width'; exports.WIDTH = WIDTH; var HEIGHT = 'height'; exports.HEIGHT = HEIGHT; var BACKGROUND_COLOR = 'backgroundColor'; exports.BACKGROUND_COLOR = BACKGROUND_COLOR; var BACKGROUND = 'background'; exports.BACKGROUND = BACKGROUND; var BORDER_COLOR = 'borderColor'; exports.BORDER_COLOR = BORDER_COLOR; var COLOR = 'color'; exports.COLOR = COLOR; var DISPLAY = 'display'; exports.DISPLAY = DISPLAY; var FLEX = 'flex'; exports.FLEX = FLEX; var WILL_CHANGE = 'willChange'; exports.WILL_CHANGE = WILL_CHANGE; var AUTO = 'AUTO'; exports.AUTO = AUTO; var COMMA_DELIMITER = ','; exports.COMMA_DELIMITER = COMMA_DELIMITER; var COLON_DELIMITER = ':'; exports.COLON_DELIMITER = COLON_DELIMITER; var BAR_DELIMITER = '|'; exports.BAR_DELIMITER = BAR_DELIMITER; var CHILDREN = 'CHILDREN'; exports.CHILDREN = CHILDREN; var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; var SIBLINGS = 'SIBLINGS'; exports.SIBLINGS = SIBLINGS; var PARENT = 'PARENT'; exports.PARENT = PARENT; var PRESERVE_3D = 'preserve-3d'; exports.PRESERVE_3D = PRESERVE_3D; var HTML_ELEMENT = 'HTML_ELEMENT'; exports.HTML_ELEMENT = HTML_ELEMENT; var PLAIN_OBJECT = 'PLAIN_OBJECT'; exports.PLAIN_OBJECT = PLAIN_OBJECT; var ABSTRACT_NODE = 'ABSTRACT_NODE'; exports.ABSTRACT_NODE = ABSTRACT_NODE; var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; exports.RENDER_TRANSFORM = RENDER_TRANSFORM; var RENDER_GENERAL = 'RENDER_GENERAL'; exports.RENDER_GENERAL = RENDER_GENERAL; var RENDER_STYLE = 'RENDER_STYLE'; exports.RENDER_STYLE = RENDER_STYLE; var RENDER_PLUGIN = 'RENDER_PLUGIN'; exports.RENDER_PLUGIN = RENDER_PLUGIN; /***/ }), /* 174 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); var _Object$create; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.ixRequest = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(27)); var _constants = __webpack_require__(2); var _timm = __webpack_require__(18); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; var initialState = { preview: {}, playback: {}, stop: {}, clear: {} }; var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { value: 'preview' }), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { value: 'playback' }), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { value: 'stop' }), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { value: 'clear' }), _Object$create)); var ixRequest = function ixRequest() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; if (action.type in stateKeys) { var key = [stateKeys[action.type]]; return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); } return state; }; exports.ixRequest = ixRequest; /***/ }), /* 175 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixSession = void 0; var _constants = __webpack_require__(2); var _timm = __webpack_require__(18); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; var initialState = { active: false, tick: 0, eventListeners: [], eventState: {}, playbackState: {}, viewportWidth: 0, mediaQueryKey: null, hasBoundaryNodes: false, hasDefinedMediaQueries: false }; var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe var ixSession = function ixSession() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_SESSION_INITIALIZED: { var hasBoundaryNodes = action.payload.hasBoundaryNodes; return (0, _timm.set)(state, 'hasBoundaryNodes', hasBoundaryNodes); } case IX2_SESSION_STARTED: { return (0, _timm.set)(state, 'active', true); } case IX2_TEST_FRAME_RENDERED: { var _action$payload$step = action.payload.step, step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; return (0, _timm.set)(state, 'tick', state.tick + step); } case IX2_SESSION_STOPPED: { return initialState; } case IX2_ANIMATION_FRAME_CHANGED: { var now = action.payload.now; return (0, _timm.set)(state, 'tick', now); } case IX2_EVENT_LISTENER_ADDED: { var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); return (0, _timm.set)(state, 'eventListeners', eventListeners); } case IX2_EVENT_STATE_CHANGED: { var _action$payload = action.payload, stateKey = _action$payload.stateKey, newState = _action$payload.newState; return (0, _timm.setIn)(state, ['eventState', stateKey], newState); } case IX2_ACTION_LIST_PLAYBACK_CHANGED: { var _action$payload2 = action.payload, actionListId = _action$payload2.actionListId, isPlaying = _action$payload2.isPlaying; return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); } case IX2_VIEWPORT_WIDTH_CHANGED: { var _action$payload3 = action.payload, width = _action$payload3.width, mediaQueries = _action$payload3.mediaQueries; var mediaQueryCount = mediaQueries.length; var mediaQueryKey = null; for (var i = 0; i < mediaQueryCount; i++) { var _mediaQueries$i = mediaQueries[i], key = _mediaQueries$i.key, min = _mediaQueries$i.min, max = _mediaQueries$i.max; if (width >= min && width <= max) { mediaQueryKey = key; break; } } return (0, _timm.merge)(state, { viewportWidth: width, mediaQueryKey: mediaQueryKey }); } case IX2_MEDIA_QUERIES_DEFINED: { return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); } default: { return state; } } }; exports.ixSession = ixSession; /***/ }), /* 176 */ /***/ (function(module, exports, __webpack_require__) { var baseIsMatch = __webpack_require__(177), getMatchData = __webpack_require__(229), matchesStrictComparable = __webpack_require__(101); /** * The base implementation of `_.matches` which doesn't clone `source`. * * @private * @param {Object} source The object of property values to match. * @returns {Function} Returns the new spec function. */ function baseMatches(source) { var matchData = getMatchData(source); if (matchData.length == 1 && matchData[0][2]) { return matchesStrictComparable(matchData[0][0], matchData[0][1]); } return function(object) { return object === source || baseIsMatch(object, source, matchData); }; } module.exports = baseMatches; /***/ }), /* 177 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(87), baseIsEqual = __webpack_require__(91); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * The base implementation of `_.isMatch` without support for iteratee shorthands. * * @private * @param {Object} object The object to inspect. * @param {Object} source The object of property values to match. * @param {Array} matchData The property names, values, and compare flags to match. * @param {Function} [customizer] The function to customize comparisons. * @returns {boolean} Returns `true` if `object` is a match, else `false`. */ function baseIsMatch(object, source, matchData, customizer) { var index = matchData.length, length = index, noCustomizer = !customizer; if (object == null) { return !length; } object = Object(object); while (index--) { var data = matchData[index]; if ((noCustomizer && data[2]) ? data[1] !== object[data[0]] : !(data[0] in object) ) { return false; } } while (++index < length) { data = matchData[index]; var key = data[0], objValue = object[key], srcValue = data[1]; if (noCustomizer && data[2]) { if (objValue === undefined && !(key in object)) { return false; } } else { var stack = new Stack; if (customizer) { var result = customizer(objValue, srcValue, key, object, source, stack); } if (!(result === undefined ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) : result )) { return false; } } } return true; } module.exports = baseIsMatch; /***/ }), /* 178 */ /***/ (function(module, exports) { /** * Removes all key-value entries from the list cache. * * @private * @name clear * @memberOf ListCache */ function listCacheClear() { this.__data__ = []; this.size = 0; } module.exports = listCacheClear; /***/ }), /* 179 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(29); /** Used for built-in method references. */ var arrayProto = Array.prototype; /** Built-in value references. */ var splice = arrayProto.splice; /** * Removes `key` and its value from the list cache. * * @private * @name delete * @memberOf ListCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function listCacheDelete(key) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { return false; } var lastIndex = data.length - 1; if (index == lastIndex) { data.pop(); } else { splice.call(data, index, 1); } --this.size; return true; } module.exports = listCacheDelete; /***/ }), /* 180 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(29); /** * Gets the list cache value for `key`. * * @private * @name get * @memberOf ListCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function listCacheGet(key) { var data = this.__data__, index = assocIndexOf(data, key); return index < 0 ? undefined : data[index][1]; } module.exports = listCacheGet; /***/ }), /* 181 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(29); /** * Checks if a list cache value for `key` exists. * * @private * @name has * @memberOf ListCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function listCacheHas(key) { return assocIndexOf(this.__data__, key) > -1; } module.exports = listCacheHas; /***/ }), /* 182 */ /***/ (function(module, exports, __webpack_require__) { var assocIndexOf = __webpack_require__(29); /** * Sets the list cache `key` to `value`. * * @private * @name set * @memberOf ListCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the list cache instance. */ function listCacheSet(key, value) { var data = this.__data__, index = assocIndexOf(data, key); if (index < 0) { ++this.size; data.push([key, value]); } else { data[index][1] = value; } return this; } module.exports = listCacheSet; /***/ }), /* 183 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(28); /** * Removes all key-value entries from the stack. * * @private * @name clear * @memberOf Stack */ function stackClear() { this.__data__ = new ListCache; this.size = 0; } module.exports = stackClear; /***/ }), /* 184 */ /***/ (function(module, exports) { /** * Removes `key` and its value from the stack. * * @private * @name delete * @memberOf Stack * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function stackDelete(key) { var data = this.__data__, result = data['delete'](key); this.size = data.size; return result; } module.exports = stackDelete; /***/ }), /* 185 */ /***/ (function(module, exports) { /** * Gets the stack value for `key`. * * @private * @name get * @memberOf Stack * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function stackGet(key) { return this.__data__.get(key); } module.exports = stackGet; /***/ }), /* 186 */ /***/ (function(module, exports) { /** * Checks if a stack value for `key` exists. * * @private * @name has * @memberOf Stack * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function stackHas(key) { return this.__data__.has(key); } module.exports = stackHas; /***/ }), /* 187 */ /***/ (function(module, exports, __webpack_require__) { var ListCache = __webpack_require__(28), Map = __webpack_require__(46), MapCache = __webpack_require__(47); /** Used as the size to enable large array optimizations. */ var LARGE_ARRAY_SIZE = 200; /** * Sets the stack `key` to `value`. * * @private * @name set * @memberOf Stack * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the stack cache instance. */ function stackSet(key, value) { var data = this.__data__; if (data instanceof ListCache) { var pairs = data.__data__; if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { pairs.push([key, value]); this.size = ++data.size; return this; } data = this.__data__ = new MapCache(pairs); } data.set(key, value); this.size = data.size; return this; } module.exports = stackSet; /***/ }), /* 188 */ /***/ (function(module, exports, __webpack_require__) { var isFunction = __webpack_require__(88), isMasked = __webpack_require__(191), isObject = __webpack_require__(5), toSource = __webpack_require__(90); /** * Used to match `RegExp` * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). */ var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; /** Used to detect host constructors (Safari). */ var reIsHostCtor = /^\[object .+?Constructor\]$/; /** Used for built-in method references. */ var funcProto = Function.prototype, objectProto = Object.prototype; /** Used to resolve the decompiled source of functions. */ var funcToString = funcProto.toString; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** Used to detect if a method is native. */ var reIsNative = RegExp('^' + funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' ); /** * The base implementation of `_.isNative` without bad shim checks. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a native function, * else `false`. */ function baseIsNative(value) { if (!isObject(value) || isMasked(value)) { return false; } var pattern = isFunction(value) ? reIsNative : reIsHostCtor; return pattern.test(toSource(value)); } module.exports = baseIsNative; /***/ }), /* 189 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(19); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** Built-in value references. */ var symToStringTag = Symbol ? Symbol.toStringTag : undefined; /** * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. * * @private * @param {*} value The value to query. * @returns {string} Returns the raw `toStringTag`. */ function getRawTag(value) { var isOwn = hasOwnProperty.call(value, symToStringTag), tag = value[symToStringTag]; try { value[symToStringTag] = undefined; var unmasked = true; } catch (e) {} var result = nativeObjectToString.call(value); if (unmasked) { if (isOwn) { value[symToStringTag] = tag; } else { delete value[symToStringTag]; } } return result; } module.exports = getRawTag; /***/ }), /* 190 */ /***/ (function(module, exports) { /** Used for built-in method references. */ var objectProto = Object.prototype; /** * Used to resolve the * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) * of values. */ var nativeObjectToString = objectProto.toString; /** * Converts `value` to a string using `Object.prototype.toString`. * * @private * @param {*} value The value to convert. * @returns {string} Returns the converted string. */ function objectToString(value) { return nativeObjectToString.call(value); } module.exports = objectToString; /***/ }), /* 191 */ /***/ (function(module, exports, __webpack_require__) { var coreJsData = __webpack_require__(192); /** Used to detect methods masquerading as native. */ var maskSrcKey = (function() { var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); return uid ? ('Symbol(src)_1.' + uid) : ''; }()); /** * Checks if `func` has its source masked. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` is masked, else `false`. */ function isMasked(func) { return !!maskSrcKey && (maskSrcKey in func); } module.exports = isMasked; /***/ }), /* 192 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(4); /** Used to detect overreaching core-js shims. */ var coreJsData = root['__core-js_shared__']; module.exports = coreJsData; /***/ }), /* 193 */ /***/ (function(module, exports) { /** * Gets the value at `key` of `object`. * * @private * @param {Object} [object] The object to query. * @param {string} key The key of the property to get. * @returns {*} Returns the property value. */ function getValue(object, key) { return object == null ? undefined : object[key]; } module.exports = getValue; /***/ }), /* 194 */ /***/ (function(module, exports, __webpack_require__) { var Hash = __webpack_require__(195), ListCache = __webpack_require__(28), Map = __webpack_require__(46); /** * Removes all key-value entries from the map. * * @private * @name clear * @memberOf MapCache */ function mapCacheClear() { this.size = 0; this.__data__ = { 'hash': new Hash, 'map': new (Map || ListCache), 'string': new Hash }; } module.exports = mapCacheClear; /***/ }), /* 195 */ /***/ (function(module, exports, __webpack_require__) { var hashClear = __webpack_require__(196), hashDelete = __webpack_require__(197), hashGet = __webpack_require__(198), hashHas = __webpack_require__(199), hashSet = __webpack_require__(200); /** * Creates a hash object. * * @private * @constructor * @param {Array} [entries] The key-value pairs to cache. */ function Hash(entries) { var index = -1, length = entries == null ? 0 : entries.length; this.clear(); while (++index < length) { var entry = entries[index]; this.set(entry[0], entry[1]); } } // Add methods to `Hash`. Hash.prototype.clear = hashClear; Hash.prototype['delete'] = hashDelete; Hash.prototype.get = hashGet; Hash.prototype.has = hashHas; Hash.prototype.set = hashSet; module.exports = Hash; /***/ }), /* 196 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(30); /** * Removes all key-value entries from the hash. * * @private * @name clear * @memberOf Hash */ function hashClear() { this.__data__ = nativeCreate ? nativeCreate(null) : {}; this.size = 0; } module.exports = hashClear; /***/ }), /* 197 */ /***/ (function(module, exports) { /** * Removes `key` and its value from the hash. * * @private * @name delete * @memberOf Hash * @param {Object} hash The hash to modify. * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function hashDelete(key) { var result = this.has(key) && delete this.__data__[key]; this.size -= result ? 1 : 0; return result; } module.exports = hashDelete; /***/ }), /* 198 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(30); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Gets the hash value for `key`. * * @private * @name get * @memberOf Hash * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function hashGet(key) { var data = this.__data__; if (nativeCreate) { var result = data[key]; return result === HASH_UNDEFINED ? undefined : result; } return hasOwnProperty.call(data, key) ? data[key] : undefined; } module.exports = hashGet; /***/ }), /* 199 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(30); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Checks if a hash value for `key` exists. * * @private * @name has * @memberOf Hash * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function hashHas(key) { var data = this.__data__; return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); } module.exports = hashHas; /***/ }), /* 200 */ /***/ (function(module, exports, __webpack_require__) { var nativeCreate = __webpack_require__(30); /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** * Sets the hash `key` to `value`. * * @private * @name set * @memberOf Hash * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the hash instance. */ function hashSet(key, value) { var data = this.__data__; this.size += this.has(key) ? 0 : 1; data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; return this; } module.exports = hashSet; /***/ }), /* 201 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(31); /** * Removes `key` and its value from the map. * * @private * @name delete * @memberOf MapCache * @param {string} key The key of the value to remove. * @returns {boolean} Returns `true` if the entry was removed, else `false`. */ function mapCacheDelete(key) { var result = getMapData(this, key)['delete'](key); this.size -= result ? 1 : 0; return result; } module.exports = mapCacheDelete; /***/ }), /* 202 */ /***/ (function(module, exports) { /** * Checks if `value` is suitable for use as unique object key. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is suitable, else `false`. */ function isKeyable(value) { var type = typeof value; return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') ? (value !== '__proto__') : (value === null); } module.exports = isKeyable; /***/ }), /* 203 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(31); /** * Gets the map value for `key`. * * @private * @name get * @memberOf MapCache * @param {string} key The key of the value to get. * @returns {*} Returns the entry value. */ function mapCacheGet(key) { return getMapData(this, key).get(key); } module.exports = mapCacheGet; /***/ }), /* 204 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(31); /** * Checks if a map value for `key` exists. * * @private * @name has * @memberOf MapCache * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function mapCacheHas(key) { return getMapData(this, key).has(key); } module.exports = mapCacheHas; /***/ }), /* 205 */ /***/ (function(module, exports, __webpack_require__) { var getMapData = __webpack_require__(31); /** * Sets the map `key` to `value`. * * @private * @name set * @memberOf MapCache * @param {string} key The key of the value to set. * @param {*} value The value to set. * @returns {Object} Returns the map cache instance. */ function mapCacheSet(key, value) { var data = getMapData(this, key), size = data.size; data.set(key, value); this.size += data.size == size ? 0 : 1; return this; } module.exports = mapCacheSet; /***/ }), /* 206 */ /***/ (function(module, exports, __webpack_require__) { var Stack = __webpack_require__(87), equalArrays = __webpack_require__(92), equalByTag = __webpack_require__(212), equalObjects = __webpack_require__(216), getTag = __webpack_require__(55), isArray = __webpack_require__(1), isBuffer = __webpack_require__(49), isTypedArray = __webpack_require__(51); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1; /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', objectTag = '[object Object]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * A specialized version of `baseIsEqual` for arrays and objects which performs * deep comparisons and tracks traversed objects enabling objects with circular * references to be compared. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} [stack] Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { var objIsArr = isArray(object), othIsArr = isArray(other), objTag = objIsArr ? arrayTag : getTag(object), othTag = othIsArr ? arrayTag : getTag(other); objTag = objTag == argsTag ? objectTag : objTag; othTag = othTag == argsTag ? objectTag : othTag; var objIsObj = objTag == objectTag, othIsObj = othTag == objectTag, isSameTag = objTag == othTag; if (isSameTag && isBuffer(object)) { if (!isBuffer(other)) { return false; } objIsArr = true; objIsObj = false; } if (isSameTag && !objIsObj) { stack || (stack = new Stack); return (objIsArr || isTypedArray(object)) ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); } if (!(bitmask & COMPARE_PARTIAL_FLAG)) { var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); if (objIsWrapped || othIsWrapped) { var objUnwrapped = objIsWrapped ? object.value() : object, othUnwrapped = othIsWrapped ? other.value() : other; stack || (stack = new Stack); return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); } } if (!isSameTag) { return false; } stack || (stack = new Stack); return equalObjects(object, other, bitmask, customizer, equalFunc, stack); } module.exports = baseIsEqualDeep; /***/ }), /* 207 */ /***/ (function(module, exports, __webpack_require__) { var MapCache = __webpack_require__(47), setCacheAdd = __webpack_require__(208), setCacheHas = __webpack_require__(209); /** * * Creates an array cache object to store unique values. * * @private * @constructor * @param {Array} [values] The values to cache. */ function SetCache(values) { var index = -1, length = values == null ? 0 : values.length; this.__data__ = new MapCache; while (++index < length) { this.add(values[index]); } } // Add methods to `SetCache`. SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; SetCache.prototype.has = setCacheHas; module.exports = SetCache; /***/ }), /* 208 */ /***/ (function(module, exports) { /** Used to stand-in for `undefined` hash values. */ var HASH_UNDEFINED = '__lodash_hash_undefined__'; /** * Adds `value` to the array cache. * * @private * @name add * @memberOf SetCache * @alias push * @param {*} value The value to cache. * @returns {Object} Returns the cache instance. */ function setCacheAdd(value) { this.__data__.set(value, HASH_UNDEFINED); return this; } module.exports = setCacheAdd; /***/ }), /* 209 */ /***/ (function(module, exports) { /** * Checks if `value` is in the array cache. * * @private * @name has * @memberOf SetCache * @param {*} value The value to search for. * @returns {number} Returns `true` if `value` is found, else `false`. */ function setCacheHas(value) { return this.__data__.has(value); } module.exports = setCacheHas; /***/ }), /* 210 */ /***/ (function(module, exports) { /** * A specialized version of `_.some` for arrays without support for iteratee * shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {boolean} Returns `true` if any element passes the predicate check, * else `false`. */ function arraySome(array, predicate) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (predicate(array[index], index, array)) { return true; } } return false; } module.exports = arraySome; /***/ }), /* 211 */ /***/ (function(module, exports) { /** * Checks if a `cache` value for `key` exists. * * @private * @param {Object} cache The cache to query. * @param {string} key The key of the entry to check. * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. */ function cacheHas(cache, key) { return cache.has(key); } module.exports = cacheHas; /***/ }), /* 212 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(19), Uint8Array = __webpack_require__(213), eq = __webpack_require__(45), equalArrays = __webpack_require__(92), mapToArray = __webpack_require__(214), setToArray = __webpack_require__(215); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** `Object#toString` result references. */ var boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', mapTag = '[object Map]', numberTag = '[object Number]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', symbolTag = '[object Symbol]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]'; /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; /** * A specialized version of `baseIsEqualDeep` for comparing objects of * the same `toStringTag`. * * **Note:** This function only supports comparing values with tags of * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {string} tag The `toStringTag` of the objects to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { switch (tag) { case dataViewTag: if ((object.byteLength != other.byteLength) || (object.byteOffset != other.byteOffset)) { return false; } object = object.buffer; other = other.buffer; case arrayBufferTag: if ((object.byteLength != other.byteLength) || !equalFunc(new Uint8Array(object), new Uint8Array(other))) { return false; } return true; case boolTag: case dateTag: case numberTag: // Coerce booleans to `1` or `0` and dates to milliseconds. // Invalid dates are coerced to `NaN`. return eq(+object, +other); case errorTag: return object.name == other.name && object.message == other.message; case regexpTag: case stringTag: // Coerce regexes to strings and treat strings, primitives and objects, // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring // for more details. return object == (other + ''); case mapTag: var convert = mapToArray; case setTag: var isPartial = bitmask & COMPARE_PARTIAL_FLAG; convert || (convert = setToArray); if (object.size != other.size && !isPartial) { return false; } // Assume cyclic values are equal. var stacked = stack.get(object); if (stacked) { return stacked == other; } bitmask |= COMPARE_UNORDERED_FLAG; // Recursively compare objects (susceptible to call stack limits). stack.set(object, other); var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); stack['delete'](object); return result; case symbolTag: if (symbolValueOf) { return symbolValueOf.call(object) == symbolValueOf.call(other); } } return false; } module.exports = equalByTag; /***/ }), /* 213 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(4); /** Built-in value references. */ var Uint8Array = root.Uint8Array; module.exports = Uint8Array; /***/ }), /* 214 */ /***/ (function(module, exports) { /** * Converts `map` to its key-value pairs. * * @private * @param {Object} map The map to convert. * @returns {Array} Returns the key-value pairs. */ function mapToArray(map) { var index = -1, result = Array(map.size); map.forEach(function(value, key) { result[++index] = [key, value]; }); return result; } module.exports = mapToArray; /***/ }), /* 215 */ /***/ (function(module, exports) { /** * Converts `set` to an array of its values. * * @private * @param {Object} set The set to convert. * @returns {Array} Returns the values. */ function setToArray(set) { var index = -1, result = Array(set.size); set.forEach(function(value) { result[++index] = value; }); return result; } module.exports = setToArray; /***/ }), /* 216 */ /***/ (function(module, exports, __webpack_require__) { var getAllKeys = __webpack_require__(217); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * A specialized version of `baseIsEqualDeep` for objects with support for * partial deep comparisons. * * @private * @param {Object} object The object to compare. * @param {Object} other The other object to compare. * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. * @param {Function} customizer The function to customize comparisons. * @param {Function} equalFunc The function to determine equivalents of values. * @param {Object} stack Tracks traversed `object` and `other` objects. * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. */ function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { var isPartial = bitmask & COMPARE_PARTIAL_FLAG, objProps = getAllKeys(object), objLength = objProps.length, othProps = getAllKeys(other), othLength = othProps.length; if (objLength != othLength && !isPartial) { return false; } var index = objLength; while (index--) { var key = objProps[index]; if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { return false; } } // Check that cyclic values are equal. var objStacked = stack.get(object); var othStacked = stack.get(other); if (objStacked && othStacked) { return objStacked == other && othStacked == object; } var result = true; stack.set(object, other); stack.set(other, object); var skipCtor = isPartial; while (++index < objLength) { key = objProps[index]; var objValue = object[key], othValue = other[key]; if (customizer) { var compared = isPartial ? customizer(othValue, objValue, key, other, object, stack) : customizer(objValue, othValue, key, object, other, stack); } // Recursively compare objects (susceptible to call stack limits). if (!(compared === undefined ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) : compared )) { result = false; break; } skipCtor || (skipCtor = key == 'constructor'); } if (result && !skipCtor) { var objCtor = object.constructor, othCtor = other.constructor; // Non `Object` object instances with different constructors are not equal. if (objCtor != othCtor && ('constructor' in object && 'constructor' in other) && !(typeof objCtor == 'function' && objCtor instanceof objCtor && typeof othCtor == 'function' && othCtor instanceof othCtor)) { result = false; } } stack['delete'](object); stack['delete'](other); return result; } module.exports = equalObjects; /***/ }), /* 217 */ /***/ (function(module, exports, __webpack_require__) { var baseGetAllKeys = __webpack_require__(93), getSymbols = __webpack_require__(94), keys = __webpack_require__(32); /** * Creates an array of own enumerable property names and symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeys(object) { return baseGetAllKeys(object, keys, getSymbols); } module.exports = getAllKeys; /***/ }), /* 218 */ /***/ (function(module, exports) { /** * A specialized version of `_.filter` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} predicate The function invoked per iteration. * @returns {Array} Returns the new filtered array. */ function arrayFilter(array, predicate) { var index = -1, length = array == null ? 0 : array.length, resIndex = 0, result = []; while (++index < length) { var value = array[index]; if (predicate(value, index, array)) { result[resIndex++] = value; } } return result; } module.exports = arrayFilter; /***/ }), /* 219 */ /***/ (function(module, exports) { /** * The base implementation of `_.times` without support for iteratee shorthands * or max array length checks. * * @private * @param {number} n The number of times to invoke `iteratee`. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns the array of results. */ function baseTimes(n, iteratee) { var index = -1, result = Array(n); while (++index < n) { result[index] = iteratee(index); } return result; } module.exports = baseTimes; /***/ }), /* 220 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(11), isObjectLike = __webpack_require__(9); /** `Object#toString` result references. */ var argsTag = '[object Arguments]'; /** * The base implementation of `_.isArguments`. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is an `arguments` object, */ function baseIsArguments(value) { return isObjectLike(value) && baseGetTag(value) == argsTag; } module.exports = baseIsArguments; /***/ }), /* 221 */ /***/ (function(module, exports) { /** * This method returns `false`. * * @static * @memberOf _ * @since 4.13.0 * @category Util * @returns {boolean} Returns `false`. * @example * * _.times(2, _.stubFalse); * // => [false, false] */ function stubFalse() { return false; } module.exports = stubFalse; /***/ }), /* 222 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(11), isLength = __webpack_require__(52), isObjectLike = __webpack_require__(9); /** `Object#toString` result references. */ var argsTag = '[object Arguments]', arrayTag = '[object Array]', boolTag = '[object Boolean]', dateTag = '[object Date]', errorTag = '[object Error]', funcTag = '[object Function]', mapTag = '[object Map]', numberTag = '[object Number]', objectTag = '[object Object]', regexpTag = '[object RegExp]', setTag = '[object Set]', stringTag = '[object String]', weakMapTag = '[object WeakMap]'; var arrayBufferTag = '[object ArrayBuffer]', dataViewTag = '[object DataView]', float32Tag = '[object Float32Array]', float64Tag = '[object Float64Array]', int8Tag = '[object Int8Array]', int16Tag = '[object Int16Array]', int32Tag = '[object Int32Array]', uint8Tag = '[object Uint8Array]', uint8ClampedTag = '[object Uint8ClampedArray]', uint16Tag = '[object Uint16Array]', uint32Tag = '[object Uint32Array]'; /** Used to identify `toStringTag` values of typed arrays. */ var typedArrayTags = {}; typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = typedArrayTags[uint32Tag] = true; typedArrayTags[argsTag] = typedArrayTags[arrayTag] = typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = typedArrayTags[errorTag] = typedArrayTags[funcTag] = typedArrayTags[mapTag] = typedArrayTags[numberTag] = typedArrayTags[objectTag] = typedArrayTags[regexpTag] = typedArrayTags[setTag] = typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false; /** * The base implementation of `_.isTypedArray` without Node.js optimizations. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. */ function baseIsTypedArray(value) { return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; } module.exports = baseIsTypedArray; /***/ }), /* 223 */ /***/ (function(module, exports) { /** * The base implementation of `_.unary` without support for storing metadata. * * @private * @param {Function} func The function to cap arguments for. * @returns {Function} Returns the new capped function. */ function baseUnary(func) { return function(value) { return func(value); }; } module.exports = baseUnary; /***/ }), /* 224 */ /***/ (function(module, exports, __webpack_require__) { /* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(89); /** Detect free variable `exports`. */ var freeExports = true && exports && !exports.nodeType && exports; /** Detect free variable `module`. */ var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; /** Detect the popular CommonJS extension `module.exports`. */ var moduleExports = freeModule && freeModule.exports === freeExports; /** Detect free variable `process` from Node.js. */ var freeProcess = moduleExports && freeGlobal.process; /** Used to access faster Node.js helpers. */ var nodeUtil = (function() { try { // Use `util.types` for Node.js 10+. var types = freeModule && freeModule.require && freeModule.require('util').types; if (types) { return types; } // Legacy `process.binding('util')` for Node.js < 10. return freeProcess && freeProcess.binding && freeProcess.binding('util'); } catch (e) {} }()); module.exports = nodeUtil; /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) /***/ }), /* 225 */ /***/ (function(module, exports, __webpack_require__) { var overArg = __webpack_require__(98); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeKeys = overArg(Object.keys, Object); module.exports = nativeKeys; /***/ }), /* 226 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8), root = __webpack_require__(4); /* Built-in method references that are verified to be native. */ var DataView = getNative(root, 'DataView'); module.exports = DataView; /***/ }), /* 227 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8), root = __webpack_require__(4); /* Built-in method references that are verified to be native. */ var Promise = getNative(root, 'Promise'); module.exports = Promise; /***/ }), /* 228 */ /***/ (function(module, exports, __webpack_require__) { var getNative = __webpack_require__(8), root = __webpack_require__(4); /* Built-in method references that are verified to be native. */ var Set = getNative(root, 'Set'); module.exports = Set; /***/ }), /* 229 */ /***/ (function(module, exports, __webpack_require__) { var isStrictComparable = __webpack_require__(100), keys = __webpack_require__(32); /** * Gets the property names, values, and compare flags of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the match data of `object`. */ function getMatchData(object) { var result = keys(object), length = result.length; while (length--) { var key = result[length], value = object[key]; result[length] = [key, value, isStrictComparable(value)]; } return result; } module.exports = getMatchData; /***/ }), /* 230 */ /***/ (function(module, exports, __webpack_require__) { var baseIsEqual = __webpack_require__(91), get = __webpack_require__(56), hasIn = __webpack_require__(236), isKey = __webpack_require__(58), isStrictComparable = __webpack_require__(100), matchesStrictComparable = __webpack_require__(101), toKey = __webpack_require__(20); /** Used to compose bitmasks for value comparisons. */ var COMPARE_PARTIAL_FLAG = 1, COMPARE_UNORDERED_FLAG = 2; /** * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. * * @private * @param {string} path The path of the property to get. * @param {*} srcValue The value to match. * @returns {Function} Returns the new spec function. */ function baseMatchesProperty(path, srcValue) { if (isKey(path) && isStrictComparable(srcValue)) { return matchesStrictComparable(toKey(path), srcValue); } return function(object) { var objValue = get(object, path); return (objValue === undefined && objValue === srcValue) ? hasIn(object, path) : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); }; } module.exports = baseMatchesProperty; /***/ }), /* 231 */ /***/ (function(module, exports, __webpack_require__) { var memoizeCapped = __webpack_require__(232); /** Used to match property names within property paths. */ var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; /** Used to match backslashes in property paths. */ var reEscapeChar = /\\(\\)?/g; /** * Converts `string` to a property path array. * * @private * @param {string} string The string to convert. * @returns {Array} Returns the property path array. */ var stringToPath = memoizeCapped(function(string) { var result = []; if (string.charCodeAt(0) === 46 /* . */) { result.push(''); } string.replace(rePropName, function(match, number, quote, subString) { result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); }); return result; }); module.exports = stringToPath; /***/ }), /* 232 */ /***/ (function(module, exports, __webpack_require__) { var memoize = __webpack_require__(233); /** Used as the maximum memoize cache size. */ var MAX_MEMOIZE_SIZE = 500; /** * A specialized version of `_.memoize` which clears the memoized function's * cache when it exceeds `MAX_MEMOIZE_SIZE`. * * @private * @param {Function} func The function to have its output memoized. * @returns {Function} Returns the new memoized function. */ function memoizeCapped(func) { var result = memoize(func, function(key) { if (cache.size === MAX_MEMOIZE_SIZE) { cache.clear(); } return key; }); var cache = result.cache; return result; } module.exports = memoizeCapped; /***/ }), /* 233 */ /***/ (function(module, exports, __webpack_require__) { var MapCache = __webpack_require__(47); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a function that memoizes the result of `func`. If `resolver` is * provided, it determines the cache key for storing the result based on the * arguments provided to the memoized function. By default, the first argument * provided to the memoized function is used as the map cache key. The `func` * is invoked with the `this` binding of the memoized function. * * **Note:** The cache is exposed as the `cache` property on the memoized * function. Its creation may be customized by replacing the `_.memoize.Cache` * constructor with one whose instances implement the * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) * method interface of `clear`, `delete`, `get`, `has`, and `set`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to have its output memoized. * @param {Function} [resolver] The function to resolve the cache key. * @returns {Function} Returns the new memoized function. * @example * * var object = { 'a': 1, 'b': 2 }; * var other = { 'c': 3, 'd': 4 }; * * var values = _.memoize(_.values); * values(object); * // => [1, 2] * * values(other); * // => [3, 4] * * object.a = 2; * values(object); * // => [1, 2] * * // Modify the result cache. * values.cache.set(object, ['a', 'b']); * values(object); * // => ['a', 'b'] * * // Replace `_.memoize.Cache`. * _.memoize.Cache = WeakMap; */ function memoize(func, resolver) { if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { throw new TypeError(FUNC_ERROR_TEXT); } var memoized = function() { var args = arguments, key = resolver ? resolver.apply(this, args) : args[0], cache = memoized.cache; if (cache.has(key)) { return cache.get(key); } var result = func.apply(this, args); memoized.cache = cache.set(key, result) || cache; return result; }; memoized.cache = new (memoize.Cache || MapCache); return memoized; } // Expose `MapCache`. memoize.Cache = MapCache; module.exports = memoize; /***/ }), /* 234 */ /***/ (function(module, exports, __webpack_require__) { var baseToString = __webpack_require__(235); /** * Converts `value` to a string. An empty string is returned for `null` * and `undefined` values. The sign of `-0` is preserved. * * @static * @memberOf _ * @since 4.0.0 * @category Lang * @param {*} value The value to convert. * @returns {string} Returns the converted string. * @example * * _.toString(null); * // => '' * * _.toString(-0); * // => '-0' * * _.toString([1, 2, 3]); * // => '1,2,3' */ function toString(value) { return value == null ? '' : baseToString(value); } module.exports = toString; /***/ }), /* 235 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(19), arrayMap = __webpack_require__(102), isArray = __webpack_require__(1), isSymbol = __webpack_require__(35); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0; /** Used to convert symbols to primitives and strings. */ var symbolProto = Symbol ? Symbol.prototype : undefined, symbolToString = symbolProto ? symbolProto.toString : undefined; /** * The base implementation of `_.toString` which doesn't convert nullish * values to empty strings. * * @private * @param {*} value The value to process. * @returns {string} Returns the string. */ function baseToString(value) { // Exit early for strings to avoid a performance hit in some environments. if (typeof value == 'string') { return value; } if (isArray(value)) { // Recursively convert values (susceptible to call stack limits). return arrayMap(value, baseToString) + ''; } if (isSymbol(value)) { return symbolToString ? symbolToString.call(value) : ''; } var result = (value + ''); return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; } module.exports = baseToString; /***/ }), /* 236 */ /***/ (function(module, exports, __webpack_require__) { var baseHasIn = __webpack_require__(237), hasPath = __webpack_require__(238); /** * Checks if `path` is a direct or inherited property of `object`. * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @returns {boolean} Returns `true` if `path` exists, else `false`. * @example * * var object = _.create({ 'a': _.create({ 'b': 2 }) }); * * _.hasIn(object, 'a'); * // => true * * _.hasIn(object, 'a.b'); * // => true * * _.hasIn(object, ['a', 'b']); * // => true * * _.hasIn(object, 'b'); * // => false */ function hasIn(object, path) { return object != null && hasPath(object, path, baseHasIn); } module.exports = hasIn; /***/ }), /* 237 */ /***/ (function(module, exports) { /** * The base implementation of `_.hasIn` without support for deep paths. * * @private * @param {Object} [object] The object to query. * @param {Array|string} key The key to check. * @returns {boolean} Returns `true` if `key` exists, else `false`. */ function baseHasIn(object, key) { return object != null && key in Object(object); } module.exports = baseHasIn; /***/ }), /* 238 */ /***/ (function(module, exports, __webpack_require__) { var castPath = __webpack_require__(34), isArguments = __webpack_require__(33), isArray = __webpack_require__(1), isIndex = __webpack_require__(50), isLength = __webpack_require__(52), toKey = __webpack_require__(20); /** * Checks if `path` exists on `object`. * * @private * @param {Object} object The object to query. * @param {Array|string} path The path to check. * @param {Function} hasFunc The function to check properties. * @returns {boolean} Returns `true` if `path` exists, else `false`. */ function hasPath(object, path, hasFunc) { path = castPath(path, object); var index = -1, length = path.length, result = false; while (++index < length) { var key = toKey(path[index]); if (!(result = object != null && hasFunc(object, key))) { break; } object = object[key]; } if (result || ++index != length) { return result; } length = object == null ? 0 : object.length; return !!length && isLength(length) && isIndex(key, length) && (isArray(object) || isArguments(object)); } module.exports = hasPath; /***/ }), /* 239 */ /***/ (function(module, exports, __webpack_require__) { var baseProperty = __webpack_require__(103), basePropertyDeep = __webpack_require__(240), isKey = __webpack_require__(58), toKey = __webpack_require__(20); /** * Creates a function that returns the value at `path` of a given object. * * @static * @memberOf _ * @since 2.4.0 * @category Util * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new accessor function. * @example * * var objects = [ * { 'a': { 'b': 2 } }, * { 'a': { 'b': 1 } } * ]; * * _.map(objects, _.property('a.b')); * // => [2, 1] * * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); * // => [1, 2] */ function property(path) { return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); } module.exports = property; /***/ }), /* 240 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(57); /** * A specialized version of `baseProperty` which supports deep paths. * * @private * @param {Array|string} path The path of the property to get. * @returns {Function} Returns the new accessor function. */ function basePropertyDeep(path) { return function(object) { return baseGet(object, path); }; } module.exports = basePropertyDeep; /***/ }), /* 241 */ /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__(104), baseIteratee = __webpack_require__(7), toInteger = __webpack_require__(105); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * This method is like `_.find` except that it returns the index of the first * element `predicate` returns truthy for instead of the element itself. * * @static * @memberOf _ * @since 1.1.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=0] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': false }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': true } * ]; * * _.findIndex(users, function(o) { return o.user == 'barney'; }); * // => 0 * * // The `_.matches` iteratee shorthand. * _.findIndex(users, { 'user': 'fred', 'active': false }); * // => 1 * * // The `_.matchesProperty` iteratee shorthand. * _.findIndex(users, ['active', false]); * // => 0 * * // The `_.property` iteratee shorthand. * _.findIndex(users, 'active'); * // => 2 */ function findIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = fromIndex == null ? 0 : toInteger(fromIndex); if (index < 0) { index = nativeMax(length + index, 0); } return baseFindIndex(array, baseIteratee(predicate, 3), index); } module.exports = findIndex; /***/ }), /* 242 */ /***/ (function(module, exports, __webpack_require__) { var toNumber = __webpack_require__(60); /** Used as references for various `Number` constants. */ var INFINITY = 1 / 0, MAX_INTEGER = 1.7976931348623157e+308; /** * Converts `value` to a finite number. * * @static * @memberOf _ * @since 4.12.0 * @category Lang * @param {*} value The value to convert. * @returns {number} Returns the converted number. * @example * * _.toFinite(3.2); * // => 3.2 * * _.toFinite(Number.MIN_VALUE); * // => 5e-324 * * _.toFinite(Infinity); * // => 1.7976931348623157e+308 * * _.toFinite('3.2'); * // => 3.2 */ function toFinite(value) { if (!value) { return value === 0 ? value : 0; } value = toNumber(value); if (value === INFINITY || value === -INFINITY) { var sign = (value < 0 ? -1 : 1); return sign * MAX_INTEGER; } return value === value ? value : 0; } module.exports = toFinite; /***/ }), /* 243 */ /***/ (function(module, exports) { function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } } module.exports = _arrayWithoutHoles; /***/ }), /* 244 */ /***/ (function(module, exports) { function _iterableToArray(iter) { if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); } module.exports = _iterableToArray; /***/ }), /* 245 */ /***/ (function(module, exports) { function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance"); } module.exports = _nonIterableSpread; /***/ }), /* 246 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createElementState = createElementState; exports.mergeActionState = mergeActionState; exports.ixElements = void 0; var _timm = __webpack_require__(18); var _constants = __webpack_require__(2); var _constants$IX2EngineC = _constants.IX2EngineConstants, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; var initialState = {}; var refState = 'refState'; var ixElements = function ixElements() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; switch (action.type) { case IX2_SESSION_STOPPED: { return initialState; } case IX2_INSTANCE_ADDED: { var _action$payload = action.payload, elementId = _action$payload.elementId, ref = _action$payload.element, origin = _action$payload.origin, actionItem = _action$payload.actionItem, refType = _action$payload.refType; var actionTypeId = actionItem.actionTypeId; var newState = state; // Create new ref entry if it doesn't exist if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { newState = createElementState(newState, ref, refType, elementId, actionItem); } // Merge origin values into ref state return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); } case IX2_ELEMENT_STATE_CHANGED: { var _action$payload2 = action.payload, _elementId = _action$payload2.elementId, _actionTypeId = _action$payload2.actionTypeId, current = _action$payload2.current, _actionItem = _action$payload2.actionItem; return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); } default: { return state; } } }; exports.ixElements = ixElements; function createElementState(state, ref, refType, elementId, actionItem) { var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; return (0, _timm.mergeIn)(state, [elementId], { id: elementId, ref: ref, refId: refId, refType: refType }); } function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used actionItem) { var units = pickUnits(actionItem); var mergePath = [elementId, refState, actionTypeId]; return (0, _timm.mergeIn)(state, mergePath, actionState, units); } var valueUnitPairs = [[CONFIG_X_VALUE, CONFIG_X_UNIT], [CONFIG_Y_VALUE, CONFIG_Y_UNIT], [CONFIG_Z_VALUE, CONFIG_Z_UNIT], [CONFIG_VALUE, CONFIG_UNIT]]; // FIXME: weak type is used // eslint-disable-next-line flowtype/no-weak-types function pickUnits(actionItem) { var config = actionItem.config; return valueUnitPairs.reduce(function (result, pair) { var valueKey = pair[0]; var unitKey = pair[1]; var configValue = config[valueKey]; var configUnit = config[unitKey]; if (configValue != null && configUnit != null) { result[unitKey] = configUnit; } return result; }, {}); } /***/ }), /* 247 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; /* eslint-env browser */ // $FlowFixMe var getPluginConfig = function getPluginConfig(actionItemConfig) { return actionItemConfig.value; }; // $FlowFixMe exports.getPluginConfig = getPluginConfig; var getPluginDuration = function getPluginDuration(element, actionItem) { if (actionItem.config.duration !== 'auto') { return null; } var duration = parseFloat(element.getAttribute('data-duration')); if (duration > 0) { return duration * 1000; } return parseFloat(element.getAttribute('data-default-duration')) * 1000; }; // $FlowFixMe exports.getPluginDuration = getPluginDuration; var getPluginOrigin = function getPluginOrigin(refState) { return refState || { value: 0 }; }; // $FlowFixMe exports.getPluginOrigin = getPluginOrigin; var getPluginDestination = function getPluginDestination(actionItemConfig) { return { value: actionItemConfig.value }; }; // $FlowFixMe exports.getPluginDestination = getPluginDestination; var createPluginInstance = function createPluginInstance(element) { var instance = window.Webflow.require('lottie').createInstance(element); instance.stop(); instance.setSubframe(true); return instance; }; // $FlowFixMe exports.createPluginInstance = createPluginInstance; var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { if (!pluginInstance) { return; } var percent = refState[actionItem.actionTypeId].value / 100; pluginInstance.goToFrame(pluginInstance.frames * percent); }; // $FlowFixMe exports.renderPlugin = renderPlugin; var clearPlugin = function clearPlugin(element) { var instance = window.Webflow.require('lottie').createInstance(element); instance.stop(); }; exports.clearPlugin = clearPlugin; /***/ }), /* 248 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); var _Object$freeze, _Object$freeze2, _transformDefaults; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports.getInstanceId = getInstanceId; exports.getElementId = getElementId; exports.reifyState = reifyState; exports.observeStore = observeStore; exports.getAffectedElements = getAffectedElements; exports.getComputedStyle = getComputedStyle; exports.getInstanceOrigin = getInstanceOrigin; exports.getDestinationValues = getDestinationValues; exports.getRenderType = getRenderType; exports.getStyleProp = getStyleProp; exports.renderHTMLElement = renderHTMLElement; exports.clearAllStyles = clearAllStyles; exports.cleanupHTMLElement = cleanupHTMLElement; exports.getMaxDurationItemIndex = getMaxDurationItemIndex; exports.getActionListProgress = getActionListProgress; exports.reduceListToGroup = reduceListToGroup; exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; exports.getNamespacedParameterId = getNamespacedParameterId; exports.shouldAllowMediaQuery = shouldAllowMediaQuery; exports.mediaQueriesEqual = mediaQueriesEqual; exports.stringifyTarget = stringifyTarget; exports.getItemConfigByKey = void 0; var _defaultTo = _interopRequireDefault(__webpack_require__(249)); var _reduce = _interopRequireDefault(__webpack_require__(250)); var _findLast = _interopRequireDefault(__webpack_require__(256)); var _timm = __webpack_require__(18); var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); var _constants = __webpack_require__(2); var _IX2EasingUtils = __webpack_require__(108); var _IX2VanillaPlugins = __webpack_require__(110); var _IX2BrowserSupport = __webpack_require__(44); /* eslint-env browser */ var _constants$IX2EngineC = _constants.IX2EngineConstants, BACKGROUND = _constants$IX2EngineC.BACKGROUND, TRANSFORM = _constants$IX2EngineC.TRANSFORM, TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, SCALE_3D = _constants$IX2EngineC.SCALE_3D, ROTATE_X = _constants$IX2EngineC.ROTATE_X, ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, SKEW = _constants$IX2EngineC.SKEW, PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, FLEX = _constants$IX2EngineC.FLEX, OPACITY = _constants$IX2EngineC.OPACITY, FILTER = _constants$IX2EngineC.FILTER, WIDTH = _constants$IX2EngineC.WIDTH, HEIGHT = _constants$IX2EngineC.HEIGHT, BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, COLOR = _constants$IX2EngineC.COLOR, CHILDREN = _constants$IX2EngineC.CHILDREN, IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, SIBLINGS = _constants$IX2EngineC.SIBLINGS, PARENT = _constants$IX2EngineC.PARENT, DISPLAY = _constants$IX2EngineC.DISPLAY, WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, AUTO = _constants$IX2EngineC.AUTO, COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; var _constants$ActionType = _constants.ActionTypeConsts, TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, STYLE_FILTER = _constants$ActionType.STYLE_FILTER, STYLE_SIZE = _constants$ActionType.STYLE_SIZE, STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, STYLE_BORDER = _constants$ActionType.STYLE_BORDER, STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; var OBJECT_VALUE = 'OBJECT_VALUE'; var trim = function trim(v) { return v.trim(); }; var colorStyleProps = Object.freeze((_Object$freeze = {}, (0, _defineProperty2["default"])(_Object$freeze, STYLE_BACKGROUND_COLOR, BACKGROUND_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_BORDER, BORDER_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_TEXT_COLOR, COLOR), _Object$freeze)); var willChangeProps = Object.freeze((_Object$freeze2 = {}, (0, _defineProperty2["default"])(_Object$freeze2, _IX2BrowserSupport.TRANSFORM_PREFIXED, TRANSFORM), (0, _defineProperty2["default"])(_Object$freeze2, BACKGROUND_COLOR, BACKGROUND), (0, _defineProperty2["default"])(_Object$freeze2, OPACITY, OPACITY), (0, _defineProperty2["default"])(_Object$freeze2, FILTER, FILTER), (0, _defineProperty2["default"])(_Object$freeze2, WIDTH, WIDTH), (0, _defineProperty2["default"])(_Object$freeze2, HEIGHT, HEIGHT), _Object$freeze2)); var objectCache = {}; var instanceCount = 1; function getInstanceId() { return 'i' + instanceCount++; } var elementCount = 1; // $FlowFixMe function getElementId(ixElements, ref) { // TODO: optimize element lookup for (var key in ixElements) { var ixEl = ixElements[key]; if (ixEl && ixEl.ref === ref) { return ixEl.id; } } return 'e' + elementCount++; } // $FlowFixMe function reifyState() { var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, events = _ref2.events, actionLists = _ref2.actionLists, site = _ref2.site; var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { var eventTypeId = event.eventTypeId; if (!result[eventTypeId]) { result[eventTypeId] = {}; } result[eventTypeId][event.id] = event; return result; }, {}); var mediaQueries = site && site.mediaQueries; var mediaQueryKeys = []; if (mediaQueries) { mediaQueryKeys = mediaQueries.map(function (mq) { return mq.key; }); } else { mediaQueries = []; console.warn("IX2 missing mediaQueries in site data"); } return { ixData: { events: events, actionLists: actionLists, eventTypeMap: eventTypeMap, mediaQueries: mediaQueries, mediaQueryKeys: mediaQueryKeys } }; } var strictEqual = function strictEqual(a, b) { return a === b; }; // $FlowFixMe function observeStore(_ref3) { var store = _ref3.store, select = _ref3.select, onChange = _ref3.onChange, _ref3$comparator = _ref3.comparator, comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; var getState = store.getState, subscribe = store.subscribe; var unsubscribe = subscribe(handleChange); var currentState = select(getState()); function handleChange() { var nextState = select(getState()); if (nextState == null) { unsubscribe(); return; } if (!comparator(nextState, currentState)) { currentState = nextState; onChange(currentState, store); } } return unsubscribe; } function normalizeTarget(target) { var type = (0, _typeof2["default"])(target); if (type === 'string') { return { id: target }; } else if (target != null && type === 'object') { var id = target.id, objectId = target.objectId, selector = target.selector, selectorGuids = target.selectorGuids, appliesTo = target.appliesTo, useEventTarget = target.useEventTarget; return { id: id, objectId: objectId, selector: selector, selectorGuids: selectorGuids, appliesTo: appliesTo, useEventTarget: useEventTarget }; } return {}; } function getAffectedElements(_ref4) { var config = _ref4.config, event = _ref4.event, eventTarget = _ref4.eventTarget, elementRoot = _ref4.elementRoot, elementApi = _ref4.elementApi; var _ref, _event$action, _event$action$config; if (!elementApi) { throw new Error('IX2 missing elementApi'); } var targets = config.targets; if (Array.isArray(targets) && targets.length > 0) { return targets.reduce(function (accumulator, target) { return accumulator.concat(getAffectedElements({ config: { target: target }, event: event, eventTarget: eventTarget, elementRoot: elementRoot, elementApi: elementApi })); }, []); } var getValidDocument = elementApi.getValidDocument, getQuerySelector = elementApi.getQuerySelector, queryDocument = elementApi.queryDocument, getChildElements = elementApi.getChildElements, getSiblingElements = elementApi.getSiblingElements, matchSelector = elementApi.matchSelector, elementContains = elementApi.elementContains, isSiblingNode = elementApi.isSiblingNode; var target = config.target; if (!target) { return []; } var _normalizeTarget = normalizeTarget(target), id = _normalizeTarget.id, objectId = _normalizeTarget.objectId, selector = _normalizeTarget.selector, selectorGuids = _normalizeTarget.selectorGuids, appliesTo = _normalizeTarget.appliesTo, useEventTarget = _normalizeTarget.useEventTarget; if (objectId) { var ref = objectCache[objectId] || (objectCache[objectId] = {}); return [ref]; } if (appliesTo === _constants.EventAppliesTo.PAGE) { var doc = getValidDocument(id); return doc ? [doc] : []; } var overrides = (_ref = event === null || event === void 0 ? void 0 : (_event$action = event.action) === null || _event$action === void 0 ? void 0 : (_event$action$config = _event$action.config) === null || _event$action$config === void 0 ? void 0 : _event$action$config.affectedElements) !== null && _ref !== void 0 ? _ref : {}; var override = overrides[id || selector] || {}; var validOverride = Boolean(override.id || override.selector); var limitAffectedElements; var baseSelector; var finalSelector; var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); if (validOverride) { limitAffectedElements = override.limitAffectedElements; baseSelector = eventTargetSelector; finalSelector = getQuerySelector(override); } else { // pass in selectorGuids as well for server-side rendering. baseSelector = finalSelector = getQuerySelector({ id: id, selector: selector, selectorGuids: selectorGuids }); } if (event && useEventTarget) { // eventTarget is not defined when this function is called in a clear request, so find // all target elements associated with the event data, and return affected elements. var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); if (finalSelector) { if (useEventTarget === PARENT) { return queryDocument(finalSelector).filter(function (parentElement) { return eventTargets.some(function (targetElement) { return elementContains(parentElement, targetElement); }); }); } if (useEventTarget === CHILDREN) { return queryDocument(finalSelector).filter(function (childElement) { return eventTargets.some(function (targetElement) { return elementContains(targetElement, childElement); }); }); } if (useEventTarget === SIBLINGS) { return queryDocument(finalSelector).filter(function (siblingElement) { return eventTargets.some(function (targetElement) { return isSiblingNode(targetElement, siblingElement); }); }); } } return eventTargets; } if (baseSelector == null || finalSelector == null) { return []; } if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { return queryDocument(finalSelector).filter(function (element) { return elementRoot.contains(element); }); } if (limitAffectedElements === CHILDREN) { return queryDocument(baseSelector, finalSelector); } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); } else if (limitAffectedElements === SIBLINGS) { return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); } else { return queryDocument(finalSelector); } } // $FlowFixMe function getComputedStyle(_ref5) { var element = _ref5.element, actionItem = _ref5.actionItem; if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return {}; } var actionTypeId = actionItem.actionTypeId; switch (actionTypeId) { case STYLE_SIZE: case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: case GENERAL_DISPLAY: return window.getComputedStyle(element); default: return {}; } } var pxValueRegex = /px/; var getFilterDefaults = function getFilterDefaults(actionState, filters) { return filters.reduce(function (result, filter) { if (result[filter.type] == null) { result[filter.type] = filterDefaults[filter.type]; } return result; }, actionState || {}); }; function getInstanceOrigin( // $FlowFixMe element) { var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; var // $FlowFixMe actionItem = arguments.length > 3 ? arguments[3] : undefined; var // $FlowFixMe elementApi = arguments.length > 4 ? arguments[4] : undefined; var getStyle = elementApi.getStyle; var actionTypeId = actionItem.actionTypeId, config = actionItem.config; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); } switch (actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: return refState[actionTypeId] || transformDefaults[actionTypeId]; case STYLE_FILTER: return getFilterDefaults(refState[actionTypeId], actionItem.config.filters); case STYLE_OPACITY: return { value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) }; case STYLE_SIZE: { var inlineWidth = getStyle(element, WIDTH); var inlineHeight = getStyle(element, HEIGHT); var widthValue; var heightValue; // When destination unit is 'AUTO', ensure origin values are in px if (config.widthUnit === AUTO) { widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); } else { widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); } if (config.heightUnit === AUTO) { heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); } else { heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); } return { widthValue: widthValue, heightValue: heightValue }; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: return parseColor({ element: element, actionTypeId: actionTypeId, computedStyle: computedStyle, getStyle: getStyle }); case GENERAL_DISPLAY: return { value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) }; case OBJECT_VALUE: return refState[actionTypeId] || { value: 0 }; default: return; } } var reduceFilters = function reduceFilters(result, filter) { if (filter) { result[filter.type] = filter.value || 0; } return result; }; // $FlowFixMe var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); } switch (actionTypeId) { case STYLE_FILTER: { var filter = (0, _findLast["default"])(config.filters, function (_ref6) { var type = _ref6.type; return type === key; }); return filter ? filter.value : 0; } default: return config[key]; } }; // $FlowFixMe exports.getItemConfigByKey = getItemConfigByKey; function getDestinationValues(_ref7) { var element = _ref7.element, actionItem = _ref7.actionItem, elementApi = _ref7.elementApi; var actionTypeId = actionItem.actionTypeId; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.getPluginDestination)(actionTypeId)(actionItem.config); } switch (actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: { var _actionItem$config = actionItem.config, xValue = _actionItem$config.xValue, yValue = _actionItem$config.yValue, zValue = _actionItem$config.zValue; return { xValue: xValue, yValue: yValue, zValue: zValue }; } case STYLE_SIZE: { var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle, getProperty = elementApi.getProperty; var _actionItem$config2 = actionItem.config, widthUnit = _actionItem$config2.widthUnit, heightUnit = _actionItem$config2.heightUnit; var _actionItem$config3 = actionItem.config, widthValue = _actionItem$config3.widthValue, heightValue = _actionItem$config3.heightValue; if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return { widthValue: widthValue, heightValue: heightValue }; } if (widthUnit === AUTO) { var temp = getStyle(element, WIDTH); setStyle(element, WIDTH, ''); widthValue = getProperty(element, 'offsetWidth'); setStyle(element, WIDTH, temp); } if (heightUnit === AUTO) { var _temp = getStyle(element, HEIGHT); setStyle(element, HEIGHT, ''); heightValue = getProperty(element, 'offsetHeight'); setStyle(element, HEIGHT, _temp); } return { widthValue: widthValue, heightValue: heightValue }; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: { var _actionItem$config4 = actionItem.config, rValue = _actionItem$config4.rValue, gValue = _actionItem$config4.gValue, bValue = _actionItem$config4.bValue, aValue = _actionItem$config4.aValue; return { rValue: rValue, gValue: gValue, bValue: bValue, aValue: aValue }; } case STYLE_FILTER: { return actionItem.config.filters.reduce(reduceFilters, {}); } default: { var value = actionItem.config.value; return { value: value }; } } } // $FlowFixMe function getRenderType(actionTypeId) { if (/^TRANSFORM_/.test(actionTypeId)) { return RENDER_TRANSFORM; } if (/^STYLE_/.test(actionTypeId)) { return RENDER_STYLE; } if (/^GENERAL_/.test(actionTypeId)) { return RENDER_GENERAL; } if (/^PLUGIN_/.test(actionTypeId)) { return RENDER_PLUGIN; } } // $FlowFixMe function getStyleProp(renderType, actionTypeId) { return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; } function renderHTMLElement( // $FlowFixMe element, // $FlowFixMe refState, // $FlowFixMe actionState, // $FlowFixMe eventId, // $FlowFixMe actionItem, // $FlowFixMe styleProp, // $FlowFixMe elementApi, // $FlowFixMe renderType, // $FlowFixMe pluginInstance) { switch (renderType) { case RENDER_TRANSFORM: { return renderTransform(element, refState, actionState, actionItem, elementApi); } case RENDER_STYLE: { return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); } case RENDER_GENERAL: { return renderGeneral(element, actionItem, elementApi); } case RENDER_PLUGIN: { var actionTypeId = actionItem.actionTypeId; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { // $FlowFixMe return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); } } } } var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ xValue: 0, yValue: 0, zValue: 0 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ xValue: 1, yValue: 1, zValue: 1 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ xValue: 0, yValue: 0, zValue: 0 })), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ xValue: 0, yValue: 0 })), _transformDefaults); var filterDefaults = Object.freeze({ blur: 0, 'hue-rotate': 0, invert: 0, grayscale: 0, saturate: 100, sepia: 0, contrast: 100, brightness: 100 }); var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref8) { var type = _ref8.type; return type === filterType; }); if (filter && filter.unit) { return filter.unit; } switch (filterType) { case 'blur': return 'px'; case 'hue-rotate': return 'deg'; default: return '%'; } }; var transformKeys = Object.keys(transformDefaults); function renderTransform(element, refState, actionState, actionItem, elementApi) { var newTransform = transformKeys.map(function (actionTypeId) { var defaults = transformDefaults[actionTypeId]; var _ref9 = refState[actionTypeId] || {}, _ref9$xValue = _ref9.xValue, xValue = _ref9$xValue === void 0 ? defaults.xValue : _ref9$xValue, _ref9$yValue = _ref9.yValue, yValue = _ref9$yValue === void 0 ? defaults.yValue : _ref9$yValue, _ref9$zValue = _ref9.zValue, zValue = _ref9$zValue === void 0 ? defaults.zValue : _ref9$zValue, _ref9$xUnit = _ref9.xUnit, xUnit = _ref9$xUnit === void 0 ? '' : _ref9$xUnit, _ref9$yUnit = _ref9.yUnit, yUnit = _ref9$yUnit === void 0 ? '' : _ref9$yUnit, _ref9$zUnit = _ref9.zUnit, zUnit = _ref9$zUnit === void 0 ? '' : _ref9$zUnit; switch (actionTypeId) { case TRANSFORM_MOVE: return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); case TRANSFORM_SCALE: return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); case TRANSFORM_ROTATE: return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); case TRANSFORM_SKEW: return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); default: return ''; } }).join(' '); var setStyle = elementApi.setStyle; addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d if (hasDefined3dTransform(actionItem, actionState)) { setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); } } function renderFilter(element, actionState, actionItemConfig, elementApi) { var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); }, ''); var setStyle = elementApi.setStyle; addWillChange(element, FILTER, elementApi); setStyle(element, FILTER, filterValue); } function hasDefined3dTransform(_ref10, _ref11) { var actionTypeId = _ref10.actionTypeId; var xValue = _ref11.xValue, yValue = _ref11.yValue, zValue = _ref11.zValue; // TRANSLATE_Z return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); } var paramCapture = '\\(([^)]+)\\)'; var rgbValidRegex = /^rgb/; var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); function getFirstMatch(regex, value) { var match = regex.exec(value); return match ? match[1] : ''; } function parseColor(_ref12) { var element = _ref12.element, actionTypeId = _ref12.actionTypeId, computedStyle = _ref12.computedStyle, getStyle = _ref12.getStyle; var prop = colorStyleProps[actionTypeId]; var inlineValue = getStyle(element, prop); var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); return { rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) }; } function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { var setStyle = elementApi.setStyle; var actionTypeId = actionItem.actionTypeId, config = actionItem.config; switch (actionTypeId) { case STYLE_SIZE: { var _actionItem$config5 = actionItem.config, _actionItem$config5$w = _actionItem$config5.widthUnit, widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, _actionItem$config5$h = _actionItem$config5.heightUnit, heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; var widthValue = actionState.widthValue, heightValue = actionState.heightValue; if (widthValue !== undefined) { if (widthUnit === AUTO) { widthUnit = 'px'; } addWillChange(element, WIDTH, elementApi); setStyle(element, WIDTH, widthValue + widthUnit); } if (heightValue !== undefined) { if (heightUnit === AUTO) { heightUnit = 'px'; } addWillChange(element, HEIGHT, elementApi); setStyle(element, HEIGHT, heightValue + heightUnit); } break; } case STYLE_FILTER: { renderFilter(element, actionState, config, elementApi); break; } case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: { var prop = colorStyleProps[actionTypeId]; var rValue = Math.round(actionState.rValue); var gValue = Math.round(actionState.gValue); var bValue = Math.round(actionState.bValue); var aValue = actionState.aValue; addWillChange(element, prop, elementApi); setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); break; } default: { var _config$unit = config.unit, unit = _config$unit === void 0 ? '' : _config$unit; addWillChange(element, styleProp, elementApi); setStyle(element, styleProp, actionState.value + unit); break; } } } function renderGeneral(element, actionItem, elementApi) { var setStyle = elementApi.setStyle; switch (actionItem.actionTypeId) { case GENERAL_DISPLAY: { var value = actionItem.config.value; if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); } else { setStyle(element, DISPLAY, value); } return; } } } function addWillChange(element, prop, elementApi) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return; } // $FlowFixMe var validProp = willChangeProps[prop]; if (!validProp) { return; } var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle; var value = getStyle(element, WILL_CHANGE); if (!value) { setStyle(element, WILL_CHANGE, validProp); return; } var values = value.split(COMMA_DELIMITER).map(trim); if (values.indexOf(validProp) === -1) { setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); } } function removeWillChange(element, prop, elementApi) { if (!_IX2BrowserSupport.IS_BROWSER_ENV) { return; } // $FlowFixMe var validProp = willChangeProps[prop]; if (!validProp) { return; } var getStyle = elementApi.getStyle, setStyle = elementApi.setStyle; var value = getStyle(element, WILL_CHANGE); if (!value || value.indexOf(validProp) === -1) { return; } setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { return v !== validProp; }).join(COMMA_DELIMITER)); } // $FlowFixMe function clearAllStyles(_ref13) { var store = _ref13.store, elementApi = _ref13.elementApi; var _store$getState = store.getState(), ixData = _store$getState.ixData; var _ixData$events = ixData.events, events = _ixData$events === void 0 ? {} : _ixData$events, _ixData$actionLists = ixData.actionLists, actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; Object.keys(events).forEach(function (eventId) { var event = events[eventId]; var config = event.action.config; var actionListId = config.actionListId; var actionList = actionLists[actionListId]; if (actionList) { clearActionListStyles({ actionList: actionList, event: event, elementApi: elementApi }); } }); Object.keys(actionLists).forEach(function (actionListId) { clearActionListStyles({ actionList: actionLists[actionListId], elementApi: elementApi }); }); } // $FlowFixMe function clearActionListStyles(_ref14) { var _ref14$actionList = _ref14.actionList, actionList = _ref14$actionList === void 0 ? {} : _ref14$actionList, event = _ref14.event, elementApi = _ref14.elementApi; var actionItemGroups = actionList.actionItemGroups, continuousParameterGroups = actionList.continuousParameterGroups; actionItemGroups && actionItemGroups.forEach(function (actionGroup) { clearActionGroupStyles({ actionGroup: actionGroup, event: event, elementApi: elementApi }); }); continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { var continuousActionGroups = paramGroup.continuousActionGroups; continuousActionGroups.forEach(function (actionGroup) { clearActionGroupStyles({ actionGroup: actionGroup, event: event, elementApi: elementApi }); }); }); } function clearActionGroupStyles(_ref15) { var actionGroup = _ref15.actionGroup, event = _ref15.event, elementApi = _ref15.elementApi; var actionItems = actionGroup.actionItems; actionItems.forEach(function (_ref16) { var actionTypeId = _ref16.actionTypeId, config = _ref16.config; var clearElement; if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); } else { clearElement = processElementByType({ effect: clearStyleProp, actionTypeId: actionTypeId, elementApi: elementApi }); } getAffectedElements({ config: config, event: event, elementApi: elementApi }).forEach(clearElement); }); } // $FlowFixMe function cleanupHTMLElement(element, actionItem, elementApi) { var setStyle = elementApi.setStyle, getStyle = elementApi.getStyle; var actionTypeId = actionItem.actionTypeId; if (actionTypeId === STYLE_SIZE) { var config = actionItem.config; if (config.widthUnit === AUTO) { setStyle(element, WIDTH, ''); } if (config.heightUnit === AUTO) { setStyle(element, HEIGHT, ''); } } if (getStyle(element, WILL_CHANGE)) { processElementByType({ effect: removeWillChange, actionTypeId: actionTypeId, elementApi: elementApi })(element); } } var processElementByType = function processElementByType(_ref17) { var effect = _ref17.effect, actionTypeId = _ref17.actionTypeId, elementApi = _ref17.elementApi; return function (element) { switch (actionTypeId) { case TRANSFORM_MOVE: case TRANSFORM_SCALE: case TRANSFORM_ROTATE: case TRANSFORM_SKEW: effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); break; case STYLE_FILTER: effect(element, FILTER, elementApi); break; case STYLE_OPACITY: effect(element, OPACITY, elementApi); break; case STYLE_SIZE: effect(element, WIDTH, elementApi); effect(element, HEIGHT, elementApi); break; case STYLE_BACKGROUND_COLOR: case STYLE_BORDER: case STYLE_TEXT_COLOR: effect(element, colorStyleProps[actionTypeId], elementApi); break; case GENERAL_DISPLAY: effect(element, DISPLAY, elementApi); break; } }; }; function clearStyleProp(element, prop, elementApi) { var setStyle = elementApi.setStyle; removeWillChange(element, prop, elementApi); setStyle(element, prop, ''); // Clear transform-style: preserve-3d if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); } } // $FlowFixMe function getMaxDurationItemIndex(actionItems) { var maxDuration = 0; var resultIndex = 0; actionItems.forEach(function (actionItem, index) { var config = actionItem.config; var total = config.delay + config.duration; if (total >= maxDuration) { maxDuration = total; resultIndex = index; } }); return resultIndex; } // $FlowFixMe function getActionListProgress(actionList, instance) { var actionItemGroups = actionList.actionItemGroups, useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; var instanceItem = instance.actionItem, _instance$verboseTime = instance.verboseTimeElapsed, verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; var totalDuration = 0; var elapsedDuration = 0; actionItemGroups.forEach(function (group, index) { if (useFirstGroupAsInitialState && index === 0) { return; } var actionItems = group.actionItems; var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; var config = carrierItem.config, actionTypeId = carrierItem.actionTypeId; if (instanceItem.id === carrierItem.id) { elapsedDuration = totalDuration + verboseTimeElapsed; } var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; totalDuration += config.delay + duration; }); return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; } // $FlowFixMe function reduceListToGroup(_ref18) { var actionList = _ref18.actionList, actionItemId = _ref18.actionItemId, rawData = _ref18.rawData; var actionItemGroups = actionList.actionItemGroups, continuousParameterGroups = actionList.continuousParameterGroups; var newActionItems = []; var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { delay: 0, duration: 0 })); return actionItem.id === actionItemId; }; actionItemGroups && actionItemGroups.some(function (_ref19) { var actionItems = _ref19.actionItems; return actionItems.some(takeItemUntilMatch); }); continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { var continuousActionGroups = paramGroup.continuousActionGroups; return continuousActionGroups.some(function (_ref20) { var actionItems = _ref20.actionItems; return actionItems.some(takeItemUntilMatch); }); }); return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { id: actionList.id, actionItemGroups: [{ actionItems: newActionItems }] })); } // $FlowFixMe function shouldNamespaceEventParameter(eventTypeId, _ref22) { var basedOn = _ref22.basedOn; return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; } function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; return namespacedParameterId; } // $FlowFixMe function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { // During design mode, current media query key does not exist if (mediaQueryKey == null) { return true; } return mediaQueries.indexOf(mediaQueryKey) !== -1; } // $FlowFixMe function mediaQueriesEqual(listA, listB) { return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); } // $FlowFixMe function stringifyTarget(target) { if (typeof target === 'string') { return target; } var _target$id = target.id, id = _target$id === void 0 ? '' : _target$id, _target$selector = target.selector, selector = _target$selector === void 0 ? '' : _target$selector, _target$useEventTarge = target.useEventTarget, useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; } /***/ }), /* 249 */ /***/ (function(module, exports) { /** * Checks `value` to determine whether a default value should be returned in * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, * or `undefined`. * * @static * @memberOf _ * @since 4.14.0 * @category Util * @param {*} value The value to check. * @param {*} defaultValue The default value. * @returns {*} Returns the resolved value. * @example * * _.defaultTo(1, 10); * // => 1 * * _.defaultTo(undefined, 10); * // => 10 */ function defaultTo(value, defaultValue) { return (value == null || value !== value) ? defaultValue : value; } module.exports = defaultTo; /***/ }), /* 250 */ /***/ (function(module, exports, __webpack_require__) { var arrayReduce = __webpack_require__(251), baseEach = __webpack_require__(111), baseIteratee = __webpack_require__(7), baseReduce = __webpack_require__(255), isArray = __webpack_require__(1); /** * Reduces `collection` to a value which is the accumulated result of running * each element in `collection` thru `iteratee`, where each successive * invocation is supplied the return value of the previous. If `accumulator` * is not given, the first element of `collection` is used as the initial * value. The iteratee is invoked with four arguments: * (accumulator, value, index|key, collection). * * Many lodash methods are guarded to work as iteratees for methods like * `_.reduce`, `_.reduceRight`, and `_.transform`. * * The guarded methods are: * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, * and `sortBy` * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @param {*} [accumulator] The initial value. * @returns {*} Returns the accumulated value. * @see _.reduceRight * @example * * _.reduce([1, 2], function(sum, n) { * return sum + n; * }, 0); * // => 3 * * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { * (result[value] || (result[value] = [])).push(key); * return result; * }, {}); * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) */ function reduce(collection, iteratee, accumulator) { var func = isArray(collection) ? arrayReduce : baseReduce, initAccum = arguments.length < 3; return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); } module.exports = reduce; /***/ }), /* 251 */ /***/ (function(module, exports) { /** * A specialized version of `_.reduce` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} [accumulator] The initial value. * @param {boolean} [initAccum] Specify using the first element of `array` as * the initial value. * @returns {*} Returns the accumulated value. */ function arrayReduce(array, iteratee, accumulator, initAccum) { var index = -1, length = array == null ? 0 : array.length; if (initAccum && length) { accumulator = array[++index]; } while (++index < length) { accumulator = iteratee(accumulator, array[index], index, array); } return accumulator; } module.exports = arrayReduce; /***/ }), /* 252 */ /***/ (function(module, exports, __webpack_require__) { var createBaseFor = __webpack_require__(253); /** * The base implementation of `baseForOwn` which iterates over `object` * properties returned by `keysFunc` and invokes `iteratee` for each property. * Iteratee functions may exit iteration early by explicitly returning `false`. * * @private * @param {Object} object The object to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {Function} keysFunc The function to get the keys of `object`. * @returns {Object} Returns `object`. */ var baseFor = createBaseFor(); module.exports = baseFor; /***/ }), /* 253 */ /***/ (function(module, exports) { /** * Creates a base function for methods like `_.forIn` and `_.forOwn`. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseFor(fromRight) { return function(object, iteratee, keysFunc) { var index = -1, iterable = Object(object), props = keysFunc(object), length = props.length; while (length--) { var key = props[fromRight ? length : ++index]; if (iteratee(iterable[key], key, iterable) === false) { break; } } return object; }; } module.exports = createBaseFor; /***/ }), /* 254 */ /***/ (function(module, exports, __webpack_require__) { var isArrayLike = __webpack_require__(12); /** * Creates a `baseEach` or `baseEachRight` function. * * @private * @param {Function} eachFunc The function to iterate over a collection. * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new base function. */ function createBaseEach(eachFunc, fromRight) { return function(collection, iteratee) { if (collection == null) { return collection; } if (!isArrayLike(collection)) { return eachFunc(collection, iteratee); } var length = collection.length, index = fromRight ? length : -1, iterable = Object(collection); while ((fromRight ? index-- : ++index < length)) { if (iteratee(iterable[index], index, iterable) === false) { break; } } return collection; }; } module.exports = createBaseEach; /***/ }), /* 255 */ /***/ (function(module, exports) { /** * The base implementation of `_.reduce` and `_.reduceRight`, without support * for iteratee shorthands, which iterates over `collection` using `eachFunc`. * * @private * @param {Array|Object} collection The collection to iterate over. * @param {Function} iteratee The function invoked per iteration. * @param {*} accumulator The initial value. * @param {boolean} initAccum Specify using the first or last element of * `collection` as the initial value. * @param {Function} eachFunc The function to iterate over `collection`. * @returns {*} Returns the accumulated value. */ function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { eachFunc(collection, function(value, index, collection) { accumulator = initAccum ? (initAccum = false, value) : iteratee(accumulator, value, index, collection); }); return accumulator; } module.exports = baseReduce; /***/ }), /* 256 */ /***/ (function(module, exports, __webpack_require__) { var createFind = __webpack_require__(86), findLastIndex = __webpack_require__(257); /** * This method is like `_.find` except that it iterates over elements of * `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Collection * @param {Array|Object} collection The collection to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=collection.length-1] The index to search from. * @returns {*} Returns the matched element, else `undefined`. * @example * * _.findLast([1, 2, 3, 4], function(n) { * return n % 2 == 1; * }); * // => 3 */ var findLast = createFind(findLastIndex); module.exports = findLast; /***/ }), /* 257 */ /***/ (function(module, exports, __webpack_require__) { var baseFindIndex = __webpack_require__(104), baseIteratee = __webpack_require__(7), toInteger = __webpack_require__(105); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min; /** * This method is like `_.findIndex` except that it iterates over elements * of `collection` from right to left. * * @static * @memberOf _ * @since 2.0.0 * @category Array * @param {Array} array The array to inspect. * @param {Function} [predicate=_.identity] The function invoked per iteration. * @param {number} [fromIndex=array.length-1] The index to search from. * @returns {number} Returns the index of the found element, else `-1`. * @example * * var users = [ * { 'user': 'barney', 'active': true }, * { 'user': 'fred', 'active': false }, * { 'user': 'pebbles', 'active': false } * ]; * * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); * // => 2 * * // The `_.matches` iteratee shorthand. * _.findLastIndex(users, { 'user': 'barney', 'active': true }); * // => 0 * * // The `_.matchesProperty` iteratee shorthand. * _.findLastIndex(users, ['active', false]); * // => 2 * * // The `_.property` iteratee shorthand. * _.findLastIndex(users, 'active'); * // => 0 */ function findLastIndex(array, predicate, fromIndex) { var length = array == null ? 0 : array.length; if (!length) { return -1; } var index = length - 1; if (fromIndex !== undefined) { index = toInteger(fromIndex); index = fromIndex < 0 ? nativeMax(length + index, 0) : nativeMin(index, length - 1); } return baseFindIndex(array, baseIteratee(predicate, 3), index, true); } module.exports = findLastIndex; /***/ }), /* 258 */ /***/ (function(module, exports) { function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } module.exports = _interopRequireDefault; /***/ }), /* 259 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Copyright (c) 2013-present, Facebook, Inc. * * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. * * @typechecks * */ /*eslint-disable no-self-compare */ var hasOwnProperty = Object.prototype.hasOwnProperty; /** * inlined Object.is polyfill to avoid requiring consumers ship their own * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is */ function is(x, y) { // SameValue algorithm if (x === y) { // Steps 1-5, 7-10 // Steps 6.b-6.e: +0 != -0 // Added the nonzero y check to make Flow happy, but it is redundant return x !== 0 || y !== 0 || 1 / x === 1 / y; } else { // Step 6.a: NaN == NaN return x !== x && y !== y; } } /** * Performs equality by iterating through keys on an object and returning false * when any key has values which are not strictly equal between the arguments. * Returns true when the values of all keys are strictly equal. */ function shallowEqual(objA, objB) { if (is(objA, objB)) { return true; } if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { return false; } var keysA = Object.keys(objA); var keysB = Object.keys(objB); if (keysA.length !== keysB.length) { return false; } // Test for A's keys different from B. for (var i = 0; i < keysA.length; i++) { if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { return false; } } return true; } module.exports = shallowEqual; /***/ }), /* 260 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixInstances = void 0; var _constants = __webpack_require__(2); var _shared = __webpack_require__(10); var _timm = __webpack_require__(18); /* eslint-env browser */ var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; var _shared$IX2EasingUtil = _shared.IX2EasingUtils, optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, applyEasing = _shared$IX2EasingUtil.applyEasing, createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, getRenderType = _shared$IX2VanillaUti.getRenderType, getStyleProp = _shared$IX2VanillaUti.getStyleProp; var continuousInstance = function continuousInstance(state, action) { var lastPosition = state.position, parameterId = state.parameterId, actionGroups = state.actionGroups, destinationKeys = state.destinationKeys, smoothing = state.smoothing, restingValue = state.restingValue, actionTypeId = state.actionTypeId, customEasingFn = state.customEasingFn; var parameters = action.payload.parameters; var velocity = Math.max(1 - smoothing, 0.01); var paramValue = parameters[parameterId]; if (paramValue == null) { velocity = 1; paramValue = restingValue; } var nextPosition = Math.max(paramValue, 0) || 0; var positionDiff = optimizeFloat(nextPosition - lastPosition); var position = optimizeFloat(lastPosition + positionDiff * velocity); var keyframePosition = position * 100; if (position === lastPosition && state.current) { return state; } var fromActionItem; var toActionItem; var positionOffset; var positionRange; for (var i = 0, length = actionGroups.length; i < length; i++) { var _actionGroups$i = actionGroups[i], keyframe = _actionGroups$i.keyframe, actionItems = _actionGroups$i.actionItems; if (i === 0) { fromActionItem = actionItems[0]; } if (keyframePosition >= keyframe) { fromActionItem = actionItems[0]; var nextGroup = actionGroups[i + 1]; var hasNextItem = nextGroup && keyframePosition !== keyframe; toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; if (hasNextItem) { positionOffset = keyframe / 100; positionRange = (nextGroup.keyframe - keyframe) / 100; } } } var current = {}; if (fromActionItem && !toActionItem) { for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { var key = destinationKeys[_i]; current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); } } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { var localPosition = (position - positionOffset) / positionRange; var easing = fromActionItem.config.easing; var eased = applyEasing(easing, localPosition, customEasingFn); for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { var _key = destinationKeys[_i2]; var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe — toVal and fromVal could potentially be null, need to update type higher to determine number var diff = toVal - fromVal; // $FlowFixMe var value = diff * eased + fromVal; current[_key] = value; } } return (0, _timm.merge)(state, { position: position, current: current }); }; var timedInstance = function timedInstance(state, action) { var _state = state, active = _state.active, origin = _state.origin, start = _state.start, immediate = _state.immediate, renderType = _state.renderType, verbose = _state.verbose, actionItem = _state.actionItem, destination = _state.destination, destinationKeys = _state.destinationKeys, pluginDuration = _state.pluginDuration, instanceDelay = _state.instanceDelay, customEasingFn = _state.customEasingFn; var easing = actionItem.config.easing; var _actionItem$config = actionItem.config, duration = _actionItem$config.duration, delay = _actionItem$config.delay; if (pluginDuration != null) { duration = pluginDuration; } delay = instanceDelay != null ? instanceDelay : delay; if (renderType === RENDER_GENERAL) { duration = 0; } else if (immediate) { duration = delay = 0; } var now = action.payload.now; if (active && origin) { var delta = now - (start + delay); if (verbose) { var verboseDelta = now - start; var verboseDuration = duration + delay; var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); } if (delta < 0) { return state; } var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); var eased = applyEasing(easing, position, customEasingFn); var newProps = {}; var current = null; if (destinationKeys.length) { current = destinationKeys.reduce(function (result, key) { var destValue = destination[key]; var originVal = parseFloat(origin[key]) || 0; var diff = parseFloat(destValue) - originVal; var value = diff * eased + originVal; result[key] = value; return result; }, {}); } newProps.current = current; newProps.position = position; if (position === 1) { newProps.active = false; newProps.complete = true; } return (0, _timm.merge)(state, newProps); } return state; }; var ixInstances = function ixInstances() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixInstances || Object.freeze({}); } case IX2_SESSION_STOPPED: { return Object.freeze({}); } case IX2_INSTANCE_ADDED: { var _action$payload = action.payload, instanceId = _action$payload.instanceId, elementId = _action$payload.elementId, actionItem = _action$payload.actionItem, eventId = _action$payload.eventId, eventTarget = _action$payload.eventTarget, eventStateKey = _action$payload.eventStateKey, actionListId = _action$payload.actionListId, groupIndex = _action$payload.groupIndex, isCarrier = _action$payload.isCarrier, origin = _action$payload.origin, destination = _action$payload.destination, immediate = _action$payload.immediate, verbose = _action$payload.verbose, continuous = _action$payload.continuous, parameterId = _action$payload.parameterId, actionGroups = _action$payload.actionGroups, smoothing = _action$payload.smoothing, restingValue = _action$payload.restingValue, pluginInstance = _action$payload.pluginInstance, pluginDuration = _action$payload.pluginDuration, instanceDelay = _action$payload.instanceDelay; var actionTypeId = actionItem.actionTypeId; var renderType = getRenderType(actionTypeId); var styleProp = getStyleProp(renderType, actionTypeId); var destinationKeys = Object.keys(destination).filter(function (key) { return destination[key] != null; }); var easing = actionItem.config.easing; return (0, _timm.set)(state, instanceId, { id: instanceId, elementId: elementId, active: false, position: 0, start: 0, origin: origin, destination: destination, destinationKeys: destinationKeys, immediate: immediate, verbose: verbose, current: null, actionItem: actionItem, actionTypeId: actionTypeId, eventId: eventId, eventTarget: eventTarget, eventStateKey: eventStateKey, actionListId: actionListId, groupIndex: groupIndex, renderType: renderType, isCarrier: isCarrier, styleProp: styleProp, continuous: continuous, parameterId: parameterId, actionGroups: actionGroups, smoothing: smoothing, restingValue: restingValue, pluginInstance: pluginInstance, pluginDuration: pluginDuration, instanceDelay: instanceDelay, customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined }); } case IX2_INSTANCE_STARTED: { var _action$payload2 = action.payload, _instanceId = _action$payload2.instanceId, time = _action$payload2.time; return (0, _timm.mergeIn)(state, [_instanceId], { active: true, complete: false, start: time }); } case IX2_INSTANCE_REMOVED: { var _instanceId2 = action.payload.instanceId; if (!state[_instanceId2]) { return state; } var newState = {}; var keys = Object.keys(state); var length = keys.length; for (var i = 0; i < length; i++) { var key = keys[i]; if (key !== _instanceId2) { newState[key] = state[key]; } } return newState; } case IX2_ANIMATION_FRAME_CHANGED: { var _newState = state; var _keys = Object.keys(state); var _length3 = _keys.length; for (var _i3 = 0; _i3 < _length3; _i3++) { var _key2 = _keys[_i3]; var instance = state[_key2]; var reducer = instance.continuous ? continuousInstance : timedInstance; _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); } return _newState; } default: { return state; } } }; exports.ixInstances = ixInstances; /***/ }), /* 261 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.ixParameters = void 0; var _constants = __webpack_require__(2); var _constants$IX2EngineA = _constants.IX2EngineActionTypes, IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore var ixParameters = function ixParameters() { var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { /*mutable flat state*/ }; var action = arguments.length > 1 ? arguments[1] : undefined; switch (action.type) { case IX2_RAW_DATA_IMPORTED: { return action.payload.ixParameters || { /*mutable flat state*/ }; } case IX2_SESSION_STOPPED: { return { /*mutable flat state*/ }; } case IX2_PARAMETER_CHANGED: { var _action$payload = action.payload, key = _action$payload.key, value = _action$payload.value; state[key] = value; return state; } default: { return state; } } }; exports.ixParameters = ixParameters; /***/ }), /* 262 */ /***/ (function(module, exports) { function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; } module.exports = _objectWithoutPropertiesLoose; /***/ }), /* 263 */ /***/ (function(module, exports, __webpack_require__) { var baseKeys = __webpack_require__(53), getTag = __webpack_require__(55), isArrayLike = __webpack_require__(12), isString = __webpack_require__(264), stringSize = __webpack_require__(265); /** `Object#toString` result references. */ var mapTag = '[object Map]', setTag = '[object Set]'; /** * Gets the size of `collection` by returning its length for array-like * values or the number of own enumerable string keyed properties for objects. * * @static * @memberOf _ * @since 0.1.0 * @category Collection * @param {Array|Object|string} collection The collection to inspect. * @returns {number} Returns the collection size. * @example * * _.size([1, 2, 3]); * // => 3 * * _.size({ 'a': 1, 'b': 2 }); * // => 2 * * _.size('pebbles'); * // => 7 */ function size(collection) { if (collection == null) { return 0; } if (isArrayLike(collection)) { return isString(collection) ? stringSize(collection) : collection.length; } var tag = getTag(collection); if (tag == mapTag || tag == setTag) { return collection.size; } return baseKeys(collection).length; } module.exports = size; /***/ }), /* 264 */ /***/ (function(module, exports, __webpack_require__) { var baseGetTag = __webpack_require__(11), isArray = __webpack_require__(1), isObjectLike = __webpack_require__(9); /** `Object#toString` result references. */ var stringTag = '[object String]'; /** * Checks if `value` is classified as a `String` primitive or object. * * @static * @since 0.1.0 * @memberOf _ * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is a string, else `false`. * @example * * _.isString('abc'); * // => true * * _.isString(1); * // => false */ function isString(value) { return typeof value == 'string' || (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); } module.exports = isString; /***/ }), /* 265 */ /***/ (function(module, exports, __webpack_require__) { var asciiSize = __webpack_require__(266), hasUnicode = __webpack_require__(267), unicodeSize = __webpack_require__(268); /** * Gets the number of symbols in `string`. * * @private * @param {string} string The string to inspect. * @returns {number} Returns the string size. */ function stringSize(string) { return hasUnicode(string) ? unicodeSize(string) : asciiSize(string); } module.exports = stringSize; /***/ }), /* 266 */ /***/ (function(module, exports, __webpack_require__) { var baseProperty = __webpack_require__(103); /** * Gets the size of an ASCII `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ var asciiSize = baseProperty('length'); module.exports = asciiSize; /***/ }), /* 267 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = '\\ufe0e\\ufe0f'; /** Used to compose unicode capture groups. */ var rsZWJ = '\\u200d'; /** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */ var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); /** * Checks if `string` contains Unicode symbols. * * @private * @param {string} string The string to inspect. * @returns {boolean} Returns `true` if a symbol is found, else `false`. */ function hasUnicode(string) { return reHasUnicode.test(string); } module.exports = hasUnicode; /***/ }), /* 268 */ /***/ (function(module, exports) { /** Used to compose unicode character classes. */ var rsAstralRange = '\\ud800-\\udfff', rsComboMarksRange = '\\u0300-\\u036f', reComboHalfMarksRange = '\\ufe20-\\ufe2f', rsComboSymbolsRange = '\\u20d0-\\u20ff', rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsVarRange = '\\ufe0e\\ufe0f'; /** Used to compose unicode capture groups. */ var rsAstral = '[' + rsAstralRange + ']', rsCombo = '[' + rsComboRange + ']', rsFitz = '\\ud83c[\\udffb-\\udfff]', rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', rsNonAstral = '[^' + rsAstralRange + ']', rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', rsZWJ = '\\u200d'; /** Used to compose unicode regexes. */ var reOptMod = rsModifier + '?', rsOptVar = '[' + rsVarRange + ']?', rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', rsSeq = rsOptVar + reOptMod + rsOptJoin, rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; /** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); /** * Gets the size of a Unicode `string`. * * @private * @param {string} string The string inspect. * @returns {number} Returns the string size. */ function unicodeSize(string) { var result = reUnicode.lastIndex = 0; while (reUnicode.test(string)) { ++result; } return result; } module.exports = unicodeSize; /***/ }), /* 269 */ /***/ (function(module, exports, __webpack_require__) { var baseIteratee = __webpack_require__(7), negate = __webpack_require__(270), pickBy = __webpack_require__(271); /** * The opposite of `_.pickBy`; this method creates an object composed of * the own and inherited enumerable string keyed properties of `object` that * `predicate` doesn't return truthy for. The predicate is invoked with two * arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.omitBy(object, _.isNumber); * // => { 'b': '2' } */ function omitBy(object, predicate) { return pickBy(object, negate(baseIteratee(predicate))); } module.exports = omitBy; /***/ }), /* 270 */ /***/ (function(module, exports) { /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a function that negates the result of the predicate `func`. The * `func` predicate is invoked with the `this` binding and arguments of the * created function. * * @static * @memberOf _ * @since 3.0.0 * @category Function * @param {Function} predicate The predicate to negate. * @returns {Function} Returns the new negated function. * @example * * function isEven(n) { * return n % 2 == 0; * } * * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); * // => [1, 3, 5] */ function negate(predicate) { if (typeof predicate != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } return function() { var args = arguments; switch (args.length) { case 0: return !predicate.call(this); case 1: return !predicate.call(this, args[0]); case 2: return !predicate.call(this, args[0], args[1]); case 3: return !predicate.call(this, args[0], args[1], args[2]); } return !predicate.apply(this, args); }; } module.exports = negate; /***/ }), /* 271 */ /***/ (function(module, exports, __webpack_require__) { var arrayMap = __webpack_require__(102), baseIteratee = __webpack_require__(7), basePickBy = __webpack_require__(272), getAllKeysIn = __webpack_require__(275); /** * Creates an object composed of the `object` properties `predicate` returns * truthy for. The predicate is invoked with two arguments: (value, key). * * @static * @memberOf _ * @since 4.0.0 * @category Object * @param {Object} object The source object. * @param {Function} [predicate=_.identity] The function invoked per property. * @returns {Object} Returns the new object. * @example * * var object = { 'a': 1, 'b': '2', 'c': 3 }; * * _.pickBy(object, _.isNumber); * // => { 'a': 1, 'c': 3 } */ function pickBy(object, predicate) { if (object == null) { return {}; } var props = arrayMap(getAllKeysIn(object), function(prop) { return [prop]; }); predicate = baseIteratee(predicate); return basePickBy(object, props, function(value, path) { return predicate(value, path[0]); }); } module.exports = pickBy; /***/ }), /* 272 */ /***/ (function(module, exports, __webpack_require__) { var baseGet = __webpack_require__(57), baseSet = __webpack_require__(273), castPath = __webpack_require__(34); /** * The base implementation of `_.pickBy` without support for iteratee shorthands. * * @private * @param {Object} object The source object. * @param {string[]} paths The property paths to pick. * @param {Function} predicate The function invoked per property. * @returns {Object} Returns the new object. */ function basePickBy(object, paths, predicate) { var index = -1, length = paths.length, result = {}; while (++index < length) { var path = paths[index], value = baseGet(object, path); if (predicate(value, path)) { baseSet(result, castPath(path, object), value); } } return result; } module.exports = basePickBy; /***/ }), /* 273 */ /***/ (function(module, exports, __webpack_require__) { var assignValue = __webpack_require__(274), castPath = __webpack_require__(34), isIndex = __webpack_require__(50), isObject = __webpack_require__(5), toKey = __webpack_require__(20); /** * The base implementation of `_.set`. * * @private * @param {Object} object The object to modify. * @param {Array|string} path The path of the property to set. * @param {*} value The value to set. * @param {Function} [customizer] The function to customize path creation. * @returns {Object} Returns `object`. */ function baseSet(object, path, value, customizer) { if (!isObject(object)) { return object; } path = castPath(path, object); var index = -1, length = path.length, lastIndex = length - 1, nested = object; while (nested != null && ++index < length) { var key = toKey(path[index]), newValue = value; if (key === '__proto__' || key === 'constructor' || key === 'prototype') { return object; } if (index != lastIndex) { var objValue = nested[key]; newValue = customizer ? customizer(objValue, key, nested) : undefined; if (newValue === undefined) { newValue = isObject(objValue) ? objValue : (isIndex(path[index + 1]) ? [] : {}); } } assignValue(nested, key, newValue); nested = nested[key]; } return object; } module.exports = baseSet; /***/ }), /* 274 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(115), eq = __webpack_require__(45); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Assigns `value` to `key` of `object` if the existing value is not equivalent * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) * for equality comparisons. * * @private * @param {Object} object The object to modify. * @param {string} key The key of the property to assign. * @param {*} value The value to assign. */ function assignValue(object, key, value) { var objValue = object[key]; if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || (value === undefined && !(key in object))) { baseAssignValue(object, key, value); } } module.exports = assignValue; /***/ }), /* 275 */ /***/ (function(module, exports, __webpack_require__) { var baseGetAllKeys = __webpack_require__(93), getSymbolsIn = __webpack_require__(276), keysIn = __webpack_require__(278); /** * Creates an array of own and inherited enumerable property names and * symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names and symbols. */ function getAllKeysIn(object) { return baseGetAllKeys(object, keysIn, getSymbolsIn); } module.exports = getAllKeysIn; /***/ }), /* 276 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(48), getPrototype = __webpack_require__(277), getSymbols = __webpack_require__(94), stubArray = __webpack_require__(95); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeGetSymbols = Object.getOwnPropertySymbols; /** * Creates an array of the own and inherited enumerable symbols of `object`. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of symbols. */ var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { var result = []; while (object) { arrayPush(result, getSymbols(object)); object = getPrototype(object); } return result; }; module.exports = getSymbolsIn; /***/ }), /* 277 */ /***/ (function(module, exports, __webpack_require__) { var overArg = __webpack_require__(98); /** Built-in value references. */ var getPrototype = overArg(Object.getPrototypeOf, Object); module.exports = getPrototype; /***/ }), /* 278 */ /***/ (function(module, exports, __webpack_require__) { var arrayLikeKeys = __webpack_require__(96), baseKeysIn = __webpack_require__(279), isArrayLike = __webpack_require__(12); /** * Creates an array of the own and inherited enumerable property names of `object`. * * **Note:** Non-object values are coerced to objects. * * @static * @memberOf _ * @since 3.0.0 * @category Object * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. * @example * * function Foo() { * this.a = 1; * this.b = 2; * } * * Foo.prototype.c = 3; * * _.keysIn(new Foo); * // => ['a', 'b', 'c'] (iteration order is not guaranteed) */ function keysIn(object) { return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); } module.exports = keysIn; /***/ }), /* 279 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(5), isPrototype = __webpack_require__(54), nativeKeysIn = __webpack_require__(280); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function baseKeysIn(object) { if (!isObject(object)) { return nativeKeysIn(object); } var isProto = isPrototype(object), result = []; for (var key in object) { if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { result.push(key); } } return result; } module.exports = baseKeysIn; /***/ }), /* 280 */ /***/ (function(module, exports) { /** * This function is like * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) * except that it includes inherited enumerable properties. * * @private * @param {Object} object The object to query. * @returns {Array} Returns the array of property names. */ function nativeKeysIn(object) { var result = []; if (object != null) { for (var key in Object(object)) { result.push(key); } } return result; } module.exports = nativeKeysIn; /***/ }), /* 281 */ /***/ (function(module, exports, __webpack_require__) { var baseKeys = __webpack_require__(53), getTag = __webpack_require__(55), isArguments = __webpack_require__(33), isArray = __webpack_require__(1), isArrayLike = __webpack_require__(12), isBuffer = __webpack_require__(49), isPrototype = __webpack_require__(54), isTypedArray = __webpack_require__(51); /** `Object#toString` result references. */ var mapTag = '[object Map]', setTag = '[object Set]'; /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Checks if `value` is an empty object, collection, map, or set. * * Objects are considered empty if they have no own enumerable string keyed * properties. * * Array-like values such as `arguments` objects, arrays, buffers, strings, or * jQuery-like collections are considered empty if they have a `length` of `0`. * Similarly, maps and sets are considered empty if they have a `size` of `0`. * * @static * @memberOf _ * @since 0.1.0 * @category Lang * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is empty, else `false`. * @example * * _.isEmpty(null); * // => true * * _.isEmpty(true); * // => true * * _.isEmpty(1); * // => true * * _.isEmpty([1, 2, 3]); * // => false * * _.isEmpty({ 'a': 1 }); * // => false */ function isEmpty(value) { if (value == null) { return true; } if (isArrayLike(value) && (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || isBuffer(value) || isTypedArray(value) || isArguments(value))) { return !value.length; } var tag = getTag(value); if (tag == mapTag || tag == setTag) { return !value.size; } if (isPrototype(value)) { return !baseKeys(value).length; } for (var key in value) { if (hasOwnProperty.call(value, key)) { return false; } } return true; } module.exports = isEmpty; /***/ }), /* 282 */ /***/ (function(module, exports, __webpack_require__) { var baseAssignValue = __webpack_require__(115), baseForOwn = __webpack_require__(112), baseIteratee = __webpack_require__(7); /** * Creates an object with the same keys as `object` and values generated * by running each own enumerable string keyed property of `object` thru * `iteratee`. The iteratee is invoked with three arguments: * (value, key, object). * * @static * @memberOf _ * @since 2.4.0 * @category Object * @param {Object} object The object to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Object} Returns the new mapped object. * @see _.mapKeys * @example * * var users = { * 'fred': { 'user': 'fred', 'age': 40 }, * 'pebbles': { 'user': 'pebbles', 'age': 1 } * }; * * _.mapValues(users, function(o) { return o.age; }); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) * * // The `_.property` iteratee shorthand. * _.mapValues(users, 'age'); * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) */ function mapValues(object, iteratee) { var result = {}; iteratee = baseIteratee(iteratee, 3); baseForOwn(object, function(value, key, object) { baseAssignValue(result, key, iteratee(value, key, object)); }); return result; } module.exports = mapValues; /***/ }), /* 283 */ /***/ (function(module, exports, __webpack_require__) { var arrayEach = __webpack_require__(284), baseEach = __webpack_require__(111), castFunction = __webpack_require__(285), isArray = __webpack_require__(1); /** * Iterates over elements of `collection` and invokes `iteratee` for each element. * The iteratee is invoked with three arguments: (value, index|key, collection). * Iteratee functions may exit iteration early by explicitly returning `false`. * * **Note:** As with other "Collections" methods, objects with a "length" * property are iterated like arrays. To avoid this behavior use `_.forIn` * or `_.forOwn` for object iteration. * * @static * @memberOf _ * @since 0.1.0 * @alias each * @category Collection * @param {Array|Object} collection The collection to iterate over. * @param {Function} [iteratee=_.identity] The function invoked per iteration. * @returns {Array|Object} Returns `collection`. * @see _.forEachRight * @example * * _.forEach([1, 2], function(value) { * console.log(value); * }); * // => Logs `1` then `2`. * * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { * console.log(key); * }); * // => Logs 'a' then 'b' (iteration order is not guaranteed). */ function forEach(collection, iteratee) { var func = isArray(collection) ? arrayEach : baseEach; return func(collection, castFunction(iteratee)); } module.exports = forEach; /***/ }), /* 284 */ /***/ (function(module, exports) { /** * A specialized version of `_.forEach` for arrays without support for * iteratee shorthands. * * @private * @param {Array} [array] The array to iterate over. * @param {Function} iteratee The function invoked per iteration. * @returns {Array} Returns `array`. */ function arrayEach(array, iteratee) { var index = -1, length = array == null ? 0 : array.length; while (++index < length) { if (iteratee(array[index], index, array) === false) { break; } } return array; } module.exports = arrayEach; /***/ }), /* 285 */ /***/ (function(module, exports, __webpack_require__) { var identity = __webpack_require__(59); /** * Casts `value` to `identity` if it's not a function. * * @private * @param {*} value The value to inspect. * @returns {Function} Returns cast function. */ function castFunction(value) { return typeof value == 'function' ? value : identity; } module.exports = castFunction; /***/ }), /* 286 */ /***/ (function(module, exports, __webpack_require__) { var debounce = __webpack_require__(287), isObject = __webpack_require__(5); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** * Creates a throttled function that only invokes `func` at most once per * every `wait` milliseconds. The throttled function comes with a `cancel` * method to cancel delayed `func` invocations and a `flush` method to * immediately invoke them. Provide `options` to indicate whether `func` * should be invoked on the leading and/or trailing edge of the `wait` * timeout. The `func` is invoked with the last arguments provided to the * throttled function. Subsequent calls to the throttled function return the * result of the last `func` invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the throttled function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.throttle` and `_.debounce`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to throttle. * @param {number} [wait=0] The number of milliseconds to throttle invocations to. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=true] * Specify invoking on the leading edge of the timeout. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new throttled function. * @example * * // Avoid excessively updating the position while scrolling. * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); * * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); * jQuery(element).on('click', throttled); * * // Cancel the trailing throttled invocation. * jQuery(window).on('popstate', throttled.cancel); */ function throttle(func, wait, options) { var leading = true, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (isObject(options)) { leading = 'leading' in options ? !!options.leading : leading; trailing = 'trailing' in options ? !!options.trailing : trailing; } return debounce(func, wait, { 'leading': leading, 'maxWait': wait, 'trailing': trailing }); } module.exports = throttle; /***/ }), /* 287 */ /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__(5), now = __webpack_require__(288), toNumber = __webpack_require__(60); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max, nativeMin = Math.min; /** * Creates a debounced function that delays invoking `func` until after `wait` * milliseconds have elapsed since the last time the debounced function was * invoked. The debounced function comes with a `cancel` method to cancel * delayed `func` invocations and a `flush` method to immediately invoke them. * Provide `options` to indicate whether `func` should be invoked on the * leading and/or trailing edge of the `wait` timeout. The `func` is invoked * with the last arguments provided to the debounced function. Subsequent * calls to the debounced function return the result of the last `func` * invocation. * * **Note:** If `leading` and `trailing` options are `true`, `func` is * invoked on the trailing edge of the timeout only if the debounced function * is invoked more than once during the `wait` timeout. * * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred * until to the next tick, similar to `setTimeout` with a timeout of `0`. * * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) * for details over the differences between `_.debounce` and `_.throttle`. * * @static * @memberOf _ * @since 0.1.0 * @category Function * @param {Function} func The function to debounce. * @param {number} [wait=0] The number of milliseconds to delay. * @param {Object} [options={}] The options object. * @param {boolean} [options.leading=false] * Specify invoking on the leading edge of the timeout. * @param {number} [options.maxWait] * The maximum time `func` is allowed to be delayed before it's invoked. * @param {boolean} [options.trailing=true] * Specify invoking on the trailing edge of the timeout. * @returns {Function} Returns the new debounced function. * @example * * // Avoid costly calculations while the window size is in flux. * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); * * // Invoke `sendMail` when clicked, debouncing subsequent calls. * jQuery(element).on('click', _.debounce(sendMail, 300, { * 'leading': true, * 'trailing': false * })); * * // Ensure `batchLog` is invoked once after 1 second of debounced calls. * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); * var source = new EventSource('/stream'); * jQuery(source).on('message', debounced); * * // Cancel the trailing debounced invocation. * jQuery(window).on('popstate', debounced.cancel); */ function debounce(func, wait, options) { var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } wait = toNumber(wait) || 0; if (isObject(options)) { leading = !!options.leading; maxing = 'maxWait' in options; maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; trailing = 'trailing' in options ? !!options.trailing : trailing; } function invokeFunc(time) { var args = lastArgs, thisArg = lastThis; lastArgs = lastThis = undefined; lastInvokeTime = time; result = func.apply(thisArg, args); return result; } function leadingEdge(time) { // Reset any `maxWait` timer. lastInvokeTime = time; // Start the timer for the trailing edge. timerId = setTimeout(timerExpired, wait); // Invoke the leading edge. return leading ? invokeFunc(time) : result; } function remainingWait(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall; return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting; } function shouldInvoke(time) { var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the // trailing edge, the system time has gone backwards and we're treating // it as the trailing edge, or we've hit the `maxWait` limit. return (lastCallTime === undefined || (timeSinceLastCall >= wait) || (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); } function timerExpired() { var time = now(); if (shouldInvoke(time)) { return trailingEdge(time); } // Restart the timer. timerId = setTimeout(timerExpired, remainingWait(time)); } function trailingEdge(time) { timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been // debounced at least once. if (trailing && lastArgs) { return invokeFunc(time); } lastArgs = lastThis = undefined; return result; } function cancel() { if (timerId !== undefined) { clearTimeout(timerId); } lastInvokeTime = 0; lastArgs = lastCallTime = lastThis = timerId = undefined; } function flush() { return timerId === undefined ? result : trailingEdge(now()); } function debounced() { var time = now(), isInvoking = shouldInvoke(time); lastArgs = arguments; lastThis = this; lastCallTime = time; if (isInvoking) { if (timerId === undefined) { return leadingEdge(lastCallTime); } if (maxing) { // Handle invocations in a tight loop. clearTimeout(timerId); timerId = setTimeout(timerExpired, wait); return invokeFunc(lastCallTime); } } if (timerId === undefined) { timerId = setTimeout(timerExpired, wait); } return result; } debounced.cancel = cancel; debounced.flush = flush; return debounced; } module.exports = debounce; /***/ }), /* 288 */ /***/ (function(module, exports, __webpack_require__) { var root = __webpack_require__(4); /** * Gets the timestamp of the number of milliseconds that have elapsed since * the Unix epoch (1 January 1970 00:00:00 UTC). * * @static * @memberOf _ * @since 2.4.0 * @category Date * @returns {number} Returns the timestamp. * @example * * _.defer(function(stamp) { * console.log(_.now() - stamp); * }, _.now()); * // => Logs the number of milliseconds it took for the deferred invocation. */ var now = function() { return root.Date.now(); }; module.exports = now; /***/ }), /* 289 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault = __webpack_require__(0); var _typeof2 = _interopRequireDefault(__webpack_require__(21)); Object.defineProperty(exports, "__esModule", { value: true }); exports.setStyle = setStyle; exports.getStyle = getStyle; exports.getProperty = getProperty; exports.matchSelector = matchSelector; exports.getQuerySelector = getQuerySelector; exports.getValidDocument = getValidDocument; exports.queryDocument = queryDocument; exports.elementContains = elementContains; exports.isSiblingNode = isSiblingNode; exports.getChildElements = getChildElements; exports.getSiblingElements = getSiblingElements; exports.getRefType = getRefType; exports.getClosestElement = void 0; var _shared = __webpack_require__(10); var _constants = __webpack_require__(2); /* eslint-env browser */ var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; var _constants$IX2EngineC = _constants.IX2EngineConstants, IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, WF_PAGE = _constants$IX2EngineC.WF_PAGE; function setStyle(element, prop, value) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream element.style[prop] = value; } function getStyle(element, prop) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream return element.style[prop]; } function getProperty(element, prop) { // $FlowIgnore — flow complains that prop should be a number. Will need to update upstream return element[prop]; } function matchSelector(selector) { // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser return function (element) { return element[ELEMENT_MATCHES](selector); }; } function getQuerySelector(_ref) { var id = _ref.id, selector = _ref.selector; if (id) { var nodeId = id; if (id.indexOf(IX2_ID_DELIMITER) !== -1) { var pair = id.split(IX2_ID_DELIMITER); var pageId = pair[0]; nodeId = pair[1]; // Short circuit query if we're on the wrong page // $FlowIgnore — if documentElement is null crash if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { return null; } } return "[data-w-id^=\"".concat(nodeId, "\"]"); } return selector; } function getValidDocument(pageId) { if (pageId == null || // $FlowIgnore — if documentElement is null crash pageId === document.documentElement.getAttribute(WF_PAGE)) { return document; } return null; } function queryDocument(baseSelector, descendantSelector) { return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); } function elementContains(parent, child) { return parent.contains(child); } function isSiblingNode(a, b) { return a !== b && a.parentNode === b.parentNode; } function getChildElements(sourceElements) { var childElements = []; for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { var children = sourceElements[i].children; var childCount = children.length; if (!childCount) { continue; } for (var j = 0; j < childCount; j++) { childElements.push(children[j]); } } return childElements; } // $FlowFixMe function getSiblingElements() { var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; var elements = []; var parentCache = []; for (var i = 0, length = sourceElements.length; i < length; i++) { var parentNode = sourceElements[i].parentNode; if (!parentNode || !parentNode.children || !parentNode.children.length) { continue; } if (parentCache.indexOf(parentNode) !== -1) { continue; } parentCache.push(parentNode); var el = parentNode.firstElementChild; while (el != null) { if (sourceElements.indexOf(el) === -1) { elements.push(el); } el = el.nextElementSibling; } } return elements; } var getClosestElement = Element.prototype.closest ? function (element, selector) { // $FlowIgnore — ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser if (!document.documentElement.contains(element)) { return null; } return element.closest(selector); } : function (element, selector) { // $FlowIgnore — if documentElement is null crash if (!document.documentElement.contains(element)) { return null; } var el = element; do { // $FlowIgnore — if documentElement is null crash if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { return el; } el = el.parentNode; } while (el != null); return null; }; exports.getClosestElement = getClosestElement; function getRefType(ref) { if (ref != null && (0, _typeof2["default"])(ref) == 'object') { return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; } return null; } /***/ }), /* 290 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; var _interopRequireDefault2 = __webpack_require__(0); var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); var _default2; var _interopRequireDefault = __webpack_require__(0); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(__webpack_require__(27)); var _flow = _interopRequireDefault(__webpack_require__(291)); var _get = _interopRequireDefault(__webpack_require__(56)); var _clamp = _interopRequireDefault(__webpack_require__(310)); var _constants = __webpack_require__(2); var _IX2VanillaEngine = __webpack_require__(114); var _IX2EngineActions = __webpack_require__(61); var _shared = __webpack_require__(10); /* eslint-env browser */ var _constants$EventTypeC = _constants.EventTypeConsts, MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, MOUSE_UP = _constants$EventTypeC.MOUSE_UP, MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW, SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, PAGE_START = _constants$EventTypeC.PAGE_START, PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; var composableFilter = function composableFilter(predicate) { return function (options) { if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { return true; } return options; }; }; var isElement = composableFilter(function (_ref) { var element = _ref.element, nativeEvent = _ref.nativeEvent; return element === nativeEvent.target; }); var containsElement = composableFilter(function (_ref2) { var element = _ref2.element, nativeEvent = _ref2.nativeEvent; return element.contains(nativeEvent.target); }); var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { if (autoStopEventId) { var _store$getState = store.getState(), ixData = _store$getState.ixData; var events = ixData.events; var eventToStop = events[autoStopEventId]; if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { return eventToStop; } } return null; }; var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { var store = _ref3.store, event = _ref3.event; var eventAction = event.action; var autoStopEventId = eventAction.config.autoStopEventId; return Boolean(getAutoStopEvent(store, autoStopEventId)); }; var actionGroupCreator = function actionGroupCreator(_ref4, state) { var store = _ref4.store, event = _ref4.event, element = _ref4.element, eventStateKey = _ref4.eventStateKey; var eventAction = event.action, eventId = event.id; var _eventAction$config = eventAction.config, actionListId = _eventAction$config.actionListId, autoStopEventId = _eventAction$config.autoStopEventId; var eventToStop = getAutoStopEvent(store, autoStopEventId); if (eventToStop) { (0, _IX2VanillaEngine.stopActionGroup)({ store: store, eventId: autoStopEventId, eventTarget: element, eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') }); } (0, _IX2VanillaEngine.stopActionGroup)({ store: store, eventId: eventId, eventTarget: element, eventStateKey: eventStateKey, actionListId: actionListId }); (0, _IX2VanillaEngine.startActionGroup)({ store: store, eventId: eventId, eventTarget: element, eventStateKey: eventStateKey, actionListId: actionListId }); return state; }; // $FlowFixMe var withFilter = function withFilter(filter, handler) { return function (options, state) { return (// $FlowFixMe filter(options, state) === true ? handler(options, state) : state ); }; }; var baseActionGroupOptions = { handler: withFilter(isOrContainsElement, actionGroupCreator) }; var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') }); var SCROLL_EVENT_TYPES = [{ target: window, types: 'resize orientationchange', throttle: true }, { target: document, types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', throttle: true }]; var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; var baseScrollActionGroupOptions = { types: SCROLL_EVENT_TYPES }; var AUTO_STOP_DISABLED_EVENTS = { PAGE_START: PAGE_START, PAGE_FINISH: PAGE_FINISH }; var getDocumentState = function () { var supportOffset = window.pageXOffset !== undefined; var isCSS1Compat = document.compatMode === 'CSS1Compat'; var rootElement = isCSS1Compat ? document.documentElement : document.body; return function () { return { // $FlowFixMe scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, // $FlowFixMe scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, // required to remove elasticity in Safari scrolling. stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe rootElement.scrollHeight - window.innerHeight), // $FlowFixMe scrollWidth: rootElement.scrollWidth, // $FlowFixMe scrollHeight: rootElement.scrollHeight, // $FlowFixMe clientWidth: rootElement.clientWidth, // $FlowFixMe clientHeight: rootElement.clientHeight, innerWidth: window.innerWidth, innerHeight: window.innerHeight }; }; }(); var areBoxesIntersecting = function areBoxesIntersecting(a, b) { return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); }; var isElementHovered = function isElementHovered(_ref5) { var element = _ref5.element, nativeEvent = _ref5.nativeEvent; var type = nativeEvent.type, target = nativeEvent.target, relatedTarget = nativeEvent.relatedTarget; var containsTarget = element.contains(target); if (type === 'mouseover' && containsTarget) { return true; } var containsRelated = element.contains(relatedTarget); if (type === 'mouseout' && containsTarget && containsRelated) { return true; } return false; }; var isElementVisible = function isElementVisible(options) { var element = options.element, config = options.event.config; var _getDocumentState = getDocumentState(), clientWidth = _getDocumentState.clientWidth, clientHeight = _getDocumentState.clientHeight; var scrollOffsetValue = config.scrollOffsetValue; var scrollOffsetUnit = config.scrollOffsetUnit; var isPX = scrollOffsetUnit === 'PX'; var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; return areBoxesIntersecting(element.getBoundingClientRect(), { left: 0, top: offsetPadding, right: clientWidth, bottom: clientHeight - offsetPadding }); }; var whenComponentActiveChange = function whenComponentActiveChange(handler) { return function (options, oldState) { var type = options.nativeEvent.type; // prettier-ignore var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; var newState = (0, _extends2["default"])({}, oldState, { isActive: isActive }); if (!oldState || newState.isActive !== oldState.isActive) { return handler(options, newState) || newState; } return newState; }; }; var whenElementHoverChange = function whenElementHoverChange(handler) { return function (options, oldState) { var newState = { elementHovered: isElementHovered(options) }; if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { return handler(options, newState) || newState; } return newState; }; }; // $FlowFixMe var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { return function (options, oldState) { var newState = (0, _extends2["default"])({}, oldState, { elementVisible: isElementVisible(options) }); if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { return handler(options, newState) || newState; } return newState; }; }; // $FlowFixMe var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { return function (options) { var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; var _getDocumentState2 = getDocumentState(), scrollTop = _getDocumentState2.stiffScrollTop, scrollHeight = _getDocumentState2.scrollHeight, innerHeight = _getDocumentState2.innerHeight; var _options$event = options.event, config = _options$event.config, eventTypeId = _options$event.eventTypeId; var scrollOffsetValue = config.scrollOffsetValue, scrollOffsetUnit = config.scrollOffsetUnit; var isPX = scrollOffsetUnit === 'PX'; var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change if (oldState && oldState.percentTop === percentTop) { return oldState; } var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; var scrollingDown; var scrollDirectionChanged; var anchorTop = 0; if (oldState) { scrollingDown = percentTop > oldState.percentTop; scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; } var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; var newState = (0, _extends2["default"])({}, oldState, { percentTop: percentTop, inBounds: inBounds, anchorTop: anchorTop, scrollingDown: scrollingDown }); if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { return handler(options, newState) || newState; } return newState; }; }; var pointIntersects = function pointIntersects(point, rect) { return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; }; var whenPageLoadFinish = function whenPageLoadFinish(handler) { return function (options, oldState) { var newState = { finished: document.readyState === 'complete' }; if (newState.finished && !(oldState && oldState.finshed)) { handler(options); } return newState; }; }; var whenPageLoadStart = function whenPageLoadStart(handler) { return function (options, oldState) { var newState = { started: true }; if (!oldState) { handler(options); } return newState; }; }; var whenClickCountChange = function whenClickCountChange(handler) { return function (options) { var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { clickCount: 0 }; var newState = { clickCount: oldState.clickCount % 2 + 1 }; if (newState.clickCount !== oldState.clickCount) { return handler(options, newState) || newState; } return newState; }; }; var getComponentActiveOptions = function getComponentActiveOptions() { var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { return state.isActive ? baseActionGroupOptions.handler(options, state) : state; })) }); }; var getComponentInactiveOptions = function getComponentInactiveOptions() { var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; })) }); }; var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenElementVisibiltyChange(function (options, state) { var elementVisible = state.elementVisible; var event = options.event, store = options.store; var _store$getState2 = store.getState(), ixData = _store$getState2.ixData; var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types // are registered. if (!events[event.action.config.autoStopEventId] && state.triggered) { return state; } if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { actionGroupCreator(options); return (0, _extends2["default"])({}, state, { triggered: true }); } else { return state; } }) }); var MOUSE_OUT_ROUND_THRESHOLD = 0.05; var _default = (_default2 = {}, (0, _defineProperty2["default"])(_default2, SLIDER_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, SLIDER_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_OPEN, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_CLOSE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, NAVBAR_OPEN, getComponentActiveOptions(false)), (0, _defineProperty2["default"])(_default2, NAVBAR_CLOSE, getComponentInactiveOptions(false)), (0, _defineProperty2["default"])(_default2, TAB_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, TAB_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_OPEN, { types: 'ecommerce-cart-open', handler: withFilter(isOrContainsElement, actionGroupCreator) }), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { types: 'ecommerce-cart-close', handler: withFilter(isOrContainsElement, actionGroupCreator) }), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { types: 'click', handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { var clickCount = _ref6.clickCount; if (hasAutoStopEvent(options)) { clickCount === 1 && actionGroupCreator(options); } else { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { types: 'click', handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { var clickCount = _ref7.clickCount; if (clickCount === 2) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { types: 'mousedown' })), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { types: 'mouseup' })), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { types: MOUSE_OVER_OUT_TYPES, handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { if (state.elementHovered) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { types: MOUSE_OVER_OUT_TYPES, handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { if (!state.elementHovered) { actionGroupCreator(options); } })) }), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { types: 'mousemove mouseout scroll', handler: function handler( // $FlowFixMe _ref8) { var store = _ref8.store, element = _ref8.element, eventConfig = _ref8.eventConfig, nativeEvent = _ref8.nativeEvent, eventStateKey = _ref8.eventStateKey; var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { clientX: 0, clientY: 0, pageX: 0, pageY: 0 }; var basedOn = eventConfig.basedOn, selectedAxis = eventConfig.selectedAxis, continuousParameterGroupId = eventConfig.continuousParameterGroupId, reverse = eventConfig.reverse, _eventConfig$restingS = eventConfig.restingState, restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; var _nativeEvent$clientX = nativeEvent.clientX, clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, _nativeEvent$clientY = nativeEvent.clientY, clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY, _nativeEvent$pageX = nativeEvent.pageX, pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, _nativeEvent$pageY = nativeEvent.pageY, pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; var isXAxis = selectedAxis === 'X_AXIS'; var isMouseOut = nativeEvent.type === 'mouseout'; var value = restingState / 100; var namespacedParameterId = continuousParameterGroupId; var elementHovered = false; switch (basedOn) { case _constants.EventBasedOn.VIEWPORT: { value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; break; } case _constants.EventBasedOn.PAGE: { var _getDocumentState3 = getDocumentState(), scrollLeft = _getDocumentState3.scrollLeft, scrollTop = _getDocumentState3.scrollTop, scrollWidth = _getDocumentState3.scrollWidth, scrollHeight = _getDocumentState3.scrollHeight; value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; break; } case _constants.EventBasedOn.ELEMENT: default: { namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target if (isMouseEvent && isOrContainsElement({ element: element, nativeEvent: nativeEvent }) !== true) { break; } var rect = element.getBoundingClientRect(); var left = rect.left, top = rect.top, width = rect.width, height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state // against the target element's rect if (!isMouseEvent && !pointIntersects({ left: clientX, top: clientY }, rect)) { break; } elementHovered = true; value = isXAxis ? (clientX - left) / width : (clientY - top) / height; break; } } // cover case where the event is a mouse out, but the value is not quite at 100% if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { value = Math.round(value); } // Only update based on element if the mouse is moving over or has just left the element if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe elementHovered !== state.elementHovered) { value = reverse ? 1 - value : value; store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); } return { elementHovered: elementHovered, clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY }; } }), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { types: SCROLL_EVENT_TYPES, // $FlowFixMe handler: function handler(_ref9) { var store = _ref9.store, eventConfig = _ref9.eventConfig; var continuousParameterGroupId = eventConfig.continuousParameterGroupId, reverse = eventConfig.reverse; var _getDocumentState4 = getDocumentState(), scrollTop = _getDocumentState4.scrollTop, scrollHeight = _getDocumentState4.scrollHeight, clientHeight = _getDocumentState4.clientHeight; var value = scrollTop / (scrollHeight - clientHeight); value = reverse ? 1 - value : value; store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); } }), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { types: SCROLL_EVENT_TYPES, handler: function handler( // $FlowFixMe _ref10) { var element = _ref10.element, store = _ref10.store, eventConfig = _ref10.eventConfig, eventStateKey = _ref10.eventStateKey; var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { scrollPercent: 0 }; var _getDocumentState5 = getDocumentState(), scrollLeft = _getDocumentState5.scrollLeft, scrollTop = _getDocumentState5.scrollTop, scrollWidth = _getDocumentState5.scrollWidth, scrollHeight = _getDocumentState5.scrollHeight, visibleHeight = _getDocumentState5.clientHeight; var basedOn = eventConfig.basedOn, selectedAxis = eventConfig.selectedAxis, continuousParameterGroupId = eventConfig.continuousParameterGroupId, startsEntering = eventConfig.startsEntering, startsExiting = eventConfig.startsExiting, addEndOffset = eventConfig.addEndOffset, addStartOffset = eventConfig.addStartOffset, _eventConfig$addOffse = eventConfig.addOffsetValue, addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, _eventConfig$endOffse = eventConfig.endOffsetValue, endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; var isXAxis = selectedAxis === 'X_AXIS'; if (basedOn === _constants.EventBasedOn.VIEWPORT) { var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; if (value !== state.scrollPercent) { store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); } return { scrollPercent: value }; } else { var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); var elementRect = element.getBoundingClientRect(); var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; var offsetHeight = offsetElementBottom - offsetElementTop; var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; if (fixedScrollPerc !== state.scrollPercent) { store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); } return { scrollPercent: fixedScrollPerc }; } } }), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenScrollDirectionChange(function (options, state) { if (state.scrollingDown) { actionGroupCreator(options); } }) })), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { handler: whenScrollDirectionChange(function (options, state) { if (!state.scrollingDown) { actionGroupCreator(options); } }) })), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { types: 'readystatechange IX2_PAGE_UPDATE', handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) }), (0, _defineProperty2["default"])(_default2, PAGE_START, { types: 'readystatechange IX2_PAGE_UPDATE', handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) }), _default2); exports["default"] = _default; /***/ }), /* 291 */ /***/ (function(module, exports, __webpack_require__) { var createFlow = __webpack_require__(292); /** * Creates a function that returns the result of invoking the given functions * with the `this` binding of the created function, where each successive * invocation is supplied the return value of the previous. * * @static * @memberOf _ * @since 3.0.0 * @category Util * @param {...(Function|Function[])} [funcs] The functions to invoke. * @returns {Function} Returns the new composite function. * @see _.flowRight * @example * * function square(n) { * return n * n; * } * * var addSquare = _.flow([_.add, square]); * addSquare(1, 2); * // => 9 */ var flow = createFlow(); module.exports = flow; /***/ }), /* 292 */ /***/ (function(module, exports, __webpack_require__) { var LodashWrapper = __webpack_require__(62), flatRest = __webpack_require__(293), getData = __webpack_require__(118), getFuncName = __webpack_require__(119), isArray = __webpack_require__(1), isLaziable = __webpack_require__(306); /** Error message constants. */ var FUNC_ERROR_TEXT = 'Expected a function'; /** Used to compose bitmasks for function metadata. */ var WRAP_CURRY_FLAG = 8, WRAP_PARTIAL_FLAG = 32, WRAP_ARY_FLAG = 128, WRAP_REARG_FLAG = 256; /** * Creates a `_.flow` or `_.flowRight` function. * * @private * @param {boolean} [fromRight] Specify iterating from right to left. * @returns {Function} Returns the new flow function. */ function createFlow(fromRight) { return flatRest(function(funcs) { var length = funcs.length, index = length, prereq = LodashWrapper.prototype.thru; if (fromRight) { funcs.reverse(); } while (index--) { var func = funcs[index]; if (typeof func != 'function') { throw new TypeError(FUNC_ERROR_TEXT); } if (prereq && !wrapper && getFuncName(func) == 'wrapper') { var wrapper = new LodashWrapper([], true); } } index = wrapper ? index : length; while (++index < length) { func = funcs[index]; var funcName = getFuncName(func), data = funcName == 'wrapper' ? getData(func) : undefined; if (data && isLaziable(data[0]) && data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && !data[4].length && data[9] == 1 ) { wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); } else { wrapper = (func.length == 1 && isLaziable(func)) ? wrapper[funcName]() : wrapper.thru(func); } } return function() { var args = arguments, value = args[0]; if (wrapper && args.length == 1 && isArray(value)) { return wrapper.plant(value).value(); } var index = 0, result = length ? funcs[index].apply(this, args) : value; while (++index < length) { result = funcs[index].call(this, result); } return result; }; }); } module.exports = createFlow; /***/ }), /* 293 */ /***/ (function(module, exports, __webpack_require__) { var flatten = __webpack_require__(294), overRest = __webpack_require__(297), setToString = __webpack_require__(299); /** * A specialized version of `baseRest` which flattens the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @returns {Function} Returns the new function. */ function flatRest(func) { return setToString(overRest(func, undefined, flatten), func + ''); } module.exports = flatRest; /***/ }), /* 294 */ /***/ (function(module, exports, __webpack_require__) { var baseFlatten = __webpack_require__(295); /** * Flattens `array` a single level deep. * * @static * @memberOf _ * @since 0.1.0 * @category Array * @param {Array} array The array to flatten. * @returns {Array} Returns the new flattened array. * @example * * _.flatten([1, [2, [3, [4]], 5]]); * // => [1, 2, [3, [4]], 5] */ function flatten(array) { var length = array == null ? 0 : array.length; return length ? baseFlatten(array, 1) : []; } module.exports = flatten; /***/ }), /* 295 */ /***/ (function(module, exports, __webpack_require__) { var arrayPush = __webpack_require__(48), isFlattenable = __webpack_require__(296); /** * The base implementation of `_.flatten` with support for restricting flattening. * * @private * @param {Array} array The array to flatten. * @param {number} depth The maximum recursion depth. * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. * @param {Array} [result=[]] The initial result value. * @returns {Array} Returns the new flattened array. */ function baseFlatten(array, depth, predicate, isStrict, result) { var index = -1, length = array.length; predicate || (predicate = isFlattenable); result || (result = []); while (++index < length) { var value = array[index]; if (depth > 0 && predicate(value)) { if (depth > 1) { // Recursively flatten arrays (susceptible to call stack limits). baseFlatten(value, depth - 1, predicate, isStrict, result); } else { arrayPush(result, value); } } else if (!isStrict) { result[result.length] = value; } } return result; } module.exports = baseFlatten; /***/ }), /* 296 */ /***/ (function(module, exports, __webpack_require__) { var Symbol = __webpack_require__(19), isArguments = __webpack_require__(33), isArray = __webpack_require__(1); /** Built-in value references. */ var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; /** * Checks if `value` is a flattenable `arguments` object or array. * * @private * @param {*} value The value to check. * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. */ function isFlattenable(value) { return isArray(value) || isArguments(value) || !!(spreadableSymbol && value && value[spreadableSymbol]); } module.exports = isFlattenable; /***/ }), /* 297 */ /***/ (function(module, exports, __webpack_require__) { var apply = __webpack_require__(298); /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeMax = Math.max; /** * A specialized version of `baseRest` which transforms the rest array. * * @private * @param {Function} func The function to apply a rest parameter to. * @param {number} [start=func.length-1] The start position of the rest parameter. * @param {Function} transform The rest array transform. * @returns {Function} Returns the new function. */ function overRest(func, start, transform) { start = nativeMax(start === undefined ? (func.length - 1) : start, 0); return function() { var args = arguments, index = -1, length = nativeMax(args.length - start, 0), array = Array(length); while (++index < length) { array[index] = args[start + index]; } index = -1; var otherArgs = Array(start + 1); while (++index < start) { otherArgs[index] = args[index]; } otherArgs[start] = transform(array); return apply(func, this, otherArgs); }; } module.exports = overRest; /***/ }), /* 298 */ /***/ (function(module, exports) { /** * A faster alternative to `Function#apply`, this function invokes `func` * with the `this` binding of `thisArg` and the arguments of `args`. * * @private * @param {Function} func The function to invoke. * @param {*} thisArg The `this` binding of `func`. * @param {Array} args The arguments to invoke `func` with. * @returns {*} Returns the result of `func`. */ function apply(func, thisArg, args) { switch (args.length) { case 0: return func.call(thisArg); case 1: return func.call(thisArg, args[0]); case 2: return func.call(thisArg, args[0], args[1]); case 3: return func.call(thisArg, args[0], args[1], args[2]); } return func.apply(thisArg, args); } module.exports = apply; /***/ }), /* 299 */ /***/ (function(module, exports, __webpack_require__) { var baseSetToString = __webpack_require__(300), shortOut = __webpack_require__(302); /** * Sets the `toString` method of `func` to return `string`. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var setToString = shortOut(baseSetToString); module.exports = setToString; /***/ }), /* 300 */ /***/ (function(module, exports, __webpack_require__) { var constant = __webpack_require__(301), defineProperty = __webpack_require__(116), identity = __webpack_require__(59); /** * The base implementation of `setToString` without support for hot loop shorting. * * @private * @param {Function} func The function to modify. * @param {Function} string The `toString` result. * @returns {Function} Returns `func`. */ var baseSetToString = !defineProperty ? identity : function(func, string) { return defineProperty(func, 'toString', { 'configurable': true, 'enumerable': false, 'value': constant(string), 'writable': true }); }; module.exports = baseSetToString; /***/ }), /* 301 */ /***/ (function(module, exports) { /** * Creates a function that returns `value`. * * @static * @memberOf _ * @since 2.4.0 * @category Util * @param {*} value The value to return from the new function. * @returns {Function} Returns the new constant function. * @example * * var objects = _.times(2, _.constant({ 'a': 1 })); * * console.log(objects); * // => [{ 'a': 1 }, { 'a': 1 }] * * console.log(objects[0] === objects[1]); * // => true */ function constant(value) { return function() { return value; }; } module.exports = constant; /***/ }), /* 302 */ /***/ (function(module, exports) { /** Used to detect hot functions by number of calls within a span of milliseconds. */ var HOT_COUNT = 800, HOT_SPAN = 16; /* Built-in method references for those with the same name as other `lodash` methods. */ var nativeNow = Date.now; /** * Creates a function that'll short out and invoke `identity` instead * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` * milliseconds. * * @private * @param {Function} func The function to restrict. * @returns {Function} Returns the new shortable function. */ function shortOut(func) { var count = 0, lastCalled = 0; return function() { var stamp = nativeNow(), remaining = HOT_SPAN - (stamp - lastCalled); lastCalled = stamp; if (remaining > 0) { if (++count >= HOT_COUNT) { return arguments[0]; } } else { count = 0; } return func.apply(undefined, arguments); }; } module.exports = shortOut; /***/ }), /* 303 */ /***/ (function(module, exports, __webpack_require__) { var WeakMap = __webpack_require__(99); /** Used to store function metadata. */ var metaMap = WeakMap && new WeakMap; module.exports = metaMap; /***/ }), /* 304 */ /***/ (function(module, exports) { /** * This method returns `undefined`. * * @static * @memberOf _ * @since 2.3.0 * @category Util * @example * * _.times(2, _.noop); * // => [undefined, undefined] */ function noop() { // No operation performed. } module.exports = noop; /***/ }), /* 305 */ /***/ (function(module, exports) { /** Used to lookup unminified function names. */ var realNames = {}; module.exports = realNames; /***/ }), /* 306 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(64), getData = __webpack_require__(118), getFuncName = __webpack_require__(119), lodash = __webpack_require__(307); /** * Checks if `func` has a lazy counterpart. * * @private * @param {Function} func The function to check. * @returns {boolean} Returns `true` if `func` has a lazy counterpart, * else `false`. */ function isLaziable(func) { var funcName = getFuncName(func), other = lodash[funcName]; if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { return false; } if (func === other) { return true; } var data = getData(other); return !!data && func === data[0]; } module.exports = isLaziable; /***/ }), /* 307 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(64), LodashWrapper = __webpack_require__(62), baseLodash = __webpack_require__(63), isArray = __webpack_require__(1), isObjectLike = __webpack_require__(9), wrapperClone = __webpack_require__(308); /** Used for built-in method references. */ var objectProto = Object.prototype; /** Used to check objects for own properties. */ var hasOwnProperty = objectProto.hasOwnProperty; /** * Creates a `lodash` object which wraps `value` to enable implicit method * chain sequences. Methods that operate on and return arrays, collections, * and functions can be chained together. Methods that retrieve a single value * or may return a primitive value will automatically end the chain sequence * and return the unwrapped value. Otherwise, the value must be unwrapped * with `_#value`. * * Explicit chain sequences, which must be unwrapped with `_#value`, may be * enabled using `_.chain`. * * The execution of chained methods is lazy, that is, it's deferred until * `_#value` is implicitly or explicitly called. * * Lazy evaluation allows several methods to support shortcut fusion. * Shortcut fusion is an optimization to merge iteratee calls; this avoids * the creation of intermediate arrays and can greatly reduce the number of * iteratee executions. Sections of a chain sequence qualify for shortcut * fusion if the section is applied to an array and iteratees accept only * one argument. The heuristic for whether a section qualifies for shortcut * fusion is subject to change. * * Chaining is supported in custom builds as long as the `_#value` method is * directly or indirectly included in the build. * * In addition to lodash methods, wrappers have `Array` and `String` methods. * * The wrapper `Array` methods are: * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` * * The wrapper `String` methods are: * `replace` and `split` * * The wrapper methods that support shortcut fusion are: * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` * * The chainable wrapper methods are: * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, * `zipObject`, `zipObjectDeep`, and `zipWith` * * The wrapper methods that are **not** chainable by default are: * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, * `upperFirst`, `value`, and `words` * * @name _ * @constructor * @category Seq * @param {*} value The value to wrap in a `lodash` instance. * @returns {Object} Returns the new `lodash` wrapper instance. * @example * * function square(n) { * return n * n; * } * * var wrapped = _([1, 2, 3]); * * // Returns an unwrapped value. * wrapped.reduce(_.add); * // => 6 * * // Returns a wrapped value. * var squares = wrapped.map(square); * * _.isArray(squares); * // => false * * _.isArray(squares.value()); * // => true */ function lodash(value) { if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { if (value instanceof LodashWrapper) { return value; } if (hasOwnProperty.call(value, '__wrapped__')) { return wrapperClone(value); } } return new LodashWrapper(value); } // Ensure wrappers are instances of `baseLodash`. lodash.prototype = baseLodash.prototype; lodash.prototype.constructor = lodash; module.exports = lodash; /***/ }), /* 308 */ /***/ (function(module, exports, __webpack_require__) { var LazyWrapper = __webpack_require__(64), LodashWrapper = __webpack_require__(62), copyArray = __webpack_require__(309); /** * Creates a clone of `wrapper`. * * @private * @param {Object} wrapper The wrapper to clone. * @returns {Object} Returns the cloned wrapper. */ function wrapperClone(wrapper) { if (wrapper instanceof LazyWrapper) { return wrapper.clone(); } var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); result.__actions__ = copyArray(wrapper.__actions__); result.__index__ = wrapper.__index__; result.__values__ = wrapper.__values__; return result; } module.exports = wrapperClone; /***/ }), /* 309 */ /***/ (function(module, exports) { /** * Copies the values of `source` to `array`. * * @private * @param {Array} source The array to copy values from. * @param {Array} [array=[]] The array to copy values to. * @returns {Array} Returns `array`. */ function copyArray(source, array) { var index = -1, length = source.length; array || (array = Array(length)); while (++index < length) { array[index] = source[index]; } return array; } module.exports = copyArray; /***/ }), /* 310 */ /***/ (function(module, exports, __webpack_require__) { var baseClamp = __webpack_require__(311), toNumber = __webpack_require__(60); /** * Clamps `number` within the inclusive `lower` and `upper` bounds. * * @static * @memberOf _ * @since 4.0.0 * @category Number * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. * @example * * _.clamp(-10, -5, 5); * // => -5 * * _.clamp(10, -5, 5); * // => 5 */ function clamp(number, lower, upper) { if (upper === undefined) { upper = lower; lower = undefined; } if (upper !== undefined) { upper = toNumber(upper); upper = upper === upper ? upper : 0; } if (lower !== undefined) { lower = toNumber(lower); lower = lower === lower ? lower : 0; } return baseClamp(toNumber(number), lower, upper); } module.exports = clamp; /***/ }), /* 311 */ /***/ (function(module, exports) { /** * The base implementation of `_.clamp` which doesn't coerce arguments. * * @private * @param {number} number The number to clamp. * @param {number} [lower] The lower bound. * @param {number} upper The upper bound. * @returns {number} Returns the clamped number. */ function baseClamp(number, lower, upper) { if (number === number) { if (upper !== undefined) { number = number <= upper ? number : upper; } if (lower !== undefined) { number = number >= lower ? number : lower; } } return number; } module.exports = baseClamp; /***/ }), /* 312 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Auto-select links to current page or section */ var Webflow = __webpack_require__(6); Webflow.define('links', module.exports = function ($, _) { var api = {}; var $win = $(window); var designer; var inApp = Webflow.env(); var location = window.location; var tempLink = document.createElement('a'); var linkCurrent = 'w--current'; var indexPage = /index\.(html|php)$/; var dirList = /\/$/; var anchors; var slug; // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; // ----------------------------------- // Private methods function init() { designer = inApp && Webflow.env('design'); slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors Webflow.scroll.off(scroll); anchors = []; // Test all links for a selectable href var links = document.links; for (var i = 0; i < links.length; ++i) { select(links[i]); } // Listen for scroll if any anchors exist if (anchors.length) { Webflow.scroll.on(scroll); scroll(); } } function select(link) { var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes if (href.indexOf(':') >= 0) { return; } var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { // Ignore any hrefs with Google Translate type hash // Example: jQuery can't parse $('#googtrans(en|es)') // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { return; } var $section = $(tempLink.hash); $section.length && anchors.push({ link: $link, sec: $section, active: false }); return; } // Ignore empty # links if (href === '#' || href === '') { return; } // Determine whether the link should be selected var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); setClass($link, linkCurrent, match); } function scroll() { var viewTop = $win.scrollTop(); var viewHeight = $win.height(); // Check each anchor for a section in view _.each(anchors, function (anchor) { var $link = anchor.link; var $section = anchor.sec; var top = $section.offset().top; var height = $section.outerHeight(); var offset = viewHeight * 0.5; var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; if (anchor.active === active) { return; } anchor.active = active; setClass($link, linkCurrent, active); }); } function setClass($elem, className, add) { var exists = $elem.hasClass(className); if (add && exists) { return; } if (!add && !exists) { return; } add ? $elem.addClass(className) : $elem.removeClass(className); } // Export module return api; }); /***/ }), /* 313 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Smooth scroll */ var Webflow = __webpack_require__(6); Webflow.define('scroll', module.exports = function ($) { // Native browser events & namespaces used in this module var CLICK = 'click'; var CHANGE = 'change'; var CHANGE_NS = '.wf-change'; var EMPTY_LINK_NS = '.wf-empty-link'; var SCROLL_NS = '.wf-scroll'; /** * A collection of namespaced events found in this module. * Namespaced events encapsulate our code, and make it safer and easier * for designers to apply custom code overrides. * @see https://api.jquery.com/on/#event-names * @typedef {Object.} NamespacedEventsCollection */ var NS_EVENTS = { WF_CHANGE: CHANGE + CHANGE_NS, WF_CLICK_EMPTY: CLICK + EMPTY_LINK_NS, WF_CLICK_SCROLL: CLICK + SCROLL_NS }; var $doc = $(document); var win = window; var loc = win.location; var history = inIframe() ? null : win.history; var validHash = /^[a-zA-Z0-9][\w:.-]*$/; var emptyHrefSelector = 'a[href="#"]'; /** * Select only links whose href: * - contains a # * - is not one of our namespaced TabLink elements * - is not _only_ a # */ var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; /** * The current page url, minus the hash. * Will be set in the `ready` function */ var locHref; function inIframe() { try { return Boolean(win.frameElement); } catch (e) { return true; } } /** * Determine if we should execute custom scroll */ function validateScroll(e) { if (Webflow.env('design')) { return; } // Ignore links being used by jQuery mobile if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) { return; } // The href property always contains the full url so we can compare // with the document’s location to only target links on this page. var parts = this.href.split('#'); var hash = parts[0] === locHref ? parts[1] : null; if (hash) { findEl(hash, e); } } function findEl(hash, e) { if (!validHash.test(hash)) { return; } var el = $('#' + hash); if (!el.length) { return; } if (e) { e.preventDefault(); e.stopPropagation(); } // Push new history state if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. !(Webflow.env.chrome && loc.protocol === 'file:')) { var oldHash = history.state && history.state.hash; if (oldHash !== hash) { history.pushState({ hash: hash }, '', '#' + hash); } } // If a fixed header exists, offset for the height var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; var header = $('header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'); var offset = header.css('position') === 'fixed' ? header.outerHeight() : 0; win.setTimeout(function () { scroll(el, offset); }, e ? 0 : 300); } function scroll(el, offset) { var start = $(win).scrollTop(); var end = el.offset().top - offset; // If specified, scroll so that the element ends up in the middle of the viewport if (el.data('scroll') === 'mid') { var available = $(win).height() - offset; var elHeight = el.outerHeight(); if (elHeight < available) { end -= Math.round((available - elHeight) / 2); } } var mult = 1; // Check for custom time multiplier on the body and the element $('body').add(el).each(function () { var time = parseFloat($(this).attr('data-scroll-time'), 10); if (!isNaN(time) && (time === 0 || time > 0)) { mult = time; } }); // Shim for IE8 and below if (!Date.now) { Date.now = function () { return new Date().getTime(); }; } var clock = Date.now(); var animate = win.requestAnimationFrame || win.mozRequestAnimationFrame || win.webkitRequestAnimationFrame || function (fn) { win.setTimeout(fn, 15); }; var duration = (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; var step = function step() { var elapsed = Date.now() - clock; win.scroll(0, getY(start, end, elapsed, duration)); if (elapsed <= duration) { animate(step); } }; step(); } function getY(start, end, elapsed, duration) { if (elapsed > duration) { return end; } return start + (end - start) * ease(elapsed / duration); } function ease(t) { return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; } // TODO: Re-implement after customer-facing comms // function handleReducedMotionChange(evt) { // var {WF_CLICK_SCROLL} = NS_EVENTS; // if (evt.target.matches) { // $doc.off(WF_CLICK_SCROLL); // } else { // $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); // } // } function ready() { // eslint-disable-next-line no-unused-vars var WF_CHANGE = NS_EVENTS.WF_CHANGE, WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; locHref = loc.href.split('#')[0]; // var reducedMotionQ = window.matchMedia( // '(prefers-reduced-motion: reduce)' // ); // if (!reducedMotionQ.matches) { $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); // } // $(reducedMotionQ).on(WF_CHANGE, handleReducedMotionChange); /** * Prevent empty hash links from triggering scroll. * Legacy feature to preserve: use the default "#" link * to trigger an interaction, and do not want the page * to scroll to the top. */ $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { e.preventDefault(); }); } // Export module return { ready: ready }; }); /***/ }), /* 314 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals document, window */ /* eslint-disable no-var */ /** * Webflow: Touch events * Supports legacy 'tap' event * Adds a 'swipe' event to desktop and mobile */ var Webflow = __webpack_require__(6); Webflow.define('touch', module.exports = function ($) { var api = {}; var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' $.event.special.tap = { bindType: 'click', delegateType: 'click' }; api.init = function (el) { el = typeof el === 'string' ? $(el).get(0) : el; return el ? new Touch(el) : null; }; function Touch(el) { var active = false; var useTouch = false; var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); var startX; var lastX; el.addEventListener('touchstart', start, false); el.addEventListener('touchmove', move, false); el.addEventListener('touchend', end, false); el.addEventListener('touchcancel', cancel, false); el.addEventListener('mousedown', start, false); el.addEventListener('mousemove', move, false); el.addEventListener('mouseup', end, false); el.addEventListener('mouseout', cancel, false); function start(evt) { // We don’t handle multi-touch events yet. var touches = evt.touches; if (touches && touches.length > 1) { return; } active = true; if (touches) { useTouch = true; startX = touches[0].clientX; } else { startX = evt.clientX; } lastX = startX; } function move(evt) { if (!active) { return; } if (useTouch && evt.type === 'mousemove') { evt.preventDefault(); evt.stopPropagation(); return; } var touches = evt.touches; var x = touches ? touches[0].clientX : evt.clientX; var velocityX = x - lastX; lastX = x; // Allow swipes while pointer is down, but prevent them during text selection if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { triggerEvent('swipe', evt, { direction: velocityX > 0 ? 'right' : 'left' }); cancel(); } } function end(evt) { if (!active) { return; } active = false; if (useTouch && evt.type === 'mouseup') { evt.preventDefault(); evt.stopPropagation(); useTouch = false; return; } } function cancel() { active = false; } function destroy() { el.removeEventListener('touchstart', start, false); el.removeEventListener('touchmove', move, false); el.removeEventListener('touchend', end, false); el.removeEventListener('touchcancel', cancel, false); el.removeEventListener('mousedown', start, false); el.removeEventListener('mousemove', move, false); el.removeEventListener('mouseup', end, false); el.removeEventListener('mouseout', cancel, false); el = null; } // Public instance methods this.destroy = destroy; } // Wrap native event to supoprt preventdefault + stopPropagation function triggerEvent(type, evt, data) { var newEvent = $.Event(type, { originalEvent: evt }); $(evt.target).trigger(newEvent, data); } // Listen for touch events on all nodes by default. api.instance = api.init(document); // Export module return api; }); /***/ }), /* 315 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document, FormData, WEBFLOW_FORM_API_HOST, WEBFLOW_FORM_OLDIE_HOST */ /* eslint-disable no-var */ /** * Webflow: Forms */ var _interopRequireDefault = __webpack_require__(0); var _slicedToArray2 = _interopRequireDefault(__webpack_require__(316)); var Webflow = __webpack_require__(6); Webflow.define('forms', module.exports = function ($, _) { var api = {}; var $doc = $(document); var $forms; var loc = window.location; var retro = window.XDomainRequest && !window.atob; var namespace = '.w-form'; var siteId; var emailField = /e(-)?mail/i; var emailValue = /^\S+@\S+$/; var alert = window.alert; var inApp = Webflow.env(); var listening; var formUrl; var signFileUrl; // MailChimp domains: list-manage.com + mirrors var chimpRegex = /list-manage[1-9]?.com/i; var disconnected = _.debounce(function () { alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); }, 100); api.ready = api.design = api.preview = function () { // Init forms init(); // Wire document events on published site only once if (!inApp && !listening) { addListeners(); } }; function init() { siteId = $('html').attr('data-wf-site'); formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit if (retro && formUrl.indexOf("https://webflow.com") >= 0) { formUrl = formUrl.replace("https://webflow.com", "http://formdata.webflow.com"); } signFileUrl = "".concat(formUrl, "/signFile"); $forms = $(namespace + ' form'); if (!$forms.length) { return; } $forms.each(build); } function build(i, el) { // Store form state using namespace var $el = $(el); var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { form: $el }); } // data.form reset(data); var wrap = $el.closest('div.w-form'); data.done = wrap.find('> .w-form-done'); data.fail = wrap.find('> .w-form-fail'); data.fileUploads = wrap.find('.w-file-upload'); data.fileUploads.each(function (j) { initFileUpload(j, data); }); var action = data.action = $el.attr('action'); data.handler = null; data.redirect = $el.attr('data-redirect'); // MailChimp form if (chimpRegex.test(action)) { data.handler = submitMailChimp; return; } // Custom form action if (action) { return; } // Webflow forms for hosting accounts if (siteId) { data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; return; } // Alert for disconnected Webflow forms disconnected(); } function addListeners() { listening = true; // Handle form submission for Webflow forms $doc.on('submit', namespace + ' form', function (evt) { var data = $.data(this, namespace); if (data.handler) { data.evt = evt; data.handler(data); } }); // handle checked ui for custom checkbox and radio button var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; var CHECKED_CLASS = 'w--redirected-checked'; var FOCUSED_CLASS = 'w--redirected-focus'; var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); }); $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); }); var $target = $(evt.target); if (!$target.hasClass('w-radio-input')) { $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); } }); CUSTOM_CONTROLS.forEach(function (_ref) { var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), controlType = _ref2[0], customControlClassName = _ref2[1]; $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); }); $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { $(evt.target).siblings(customControlClassName).removeClass(FOCUSED_CLASS); }); }); } // Reset data common to all submit handlers function reset(data) { var btn = data.btn = data.form.find(':input[type="submit"]'); data.wait = data.btn.attr('data-wait') || null; data.success = false; btn.prop('disabled', false); data.label && btn.val(data.label); } // Disable submit button function disableBtn(data) { var btn = data.btn; var wait = data.wait; btn.prop('disabled', true); // Show wait text and store previous label if (wait) { data.label = btn.val(); btn.val(wait); } } // Find form fields, validate, and set value pairs function findFields(form, result) { var status = null; result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { var field = $(el); var type = field.attr('type'); var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); var value = field.val(); if (type === 'checkbox') { value = field.is(':checked'); } else if (type === 'radio') { // Radio group value already processed if (result[name] === null || typeof result[name] === 'string') { return; } value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; } if (typeof value === 'string') { value = $.trim(value); } result[name] = value; status = status || getStatus(field, type, name, value); }); return status; } function findFileUploads(form) { var result = {}; form.find(':input[type="file"]').each(function (i, el) { var field = $(el); var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); var value = field.attr('data-value'); if (typeof value === 'string') { value = $.trim(value); } result[name] = value; }); return result; } function getStatus(field, type, name, value) { var status = null; if (type === 'password') { status = 'Passwords cannot be submitted.'; } else if (field.attr('required')) { if (!value) { status = 'Please fill out the required field: ' + name; } else if (emailField.test(field.attr('type'))) { if (!emailValue.test(value)) { status = 'Please enter a valid email address for: ' + name; } } } else if (name === 'g-recaptcha-response' && !value) { status = 'Please confirm you’re not a robot.'; } return status; } function exportedSubmitWebflow(data) { preventDefault(data); afterSubmit(data); } // Submit form to MailChimp function submitMailChimp(data) { reset(data); var form = data.form; var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead if (/^https/.test(loc.href) && !/^https/.test(data.action)) { form.attr('method', 'post'); return; } preventDefault(data); // Find & populate all fields var status = findFields(form, payload); if (status) { return alert(status); } // Disable submit button disableBtn(data); // Use special format for MailChimp params var fullName; _.each(payload, function (value, key) { if (emailField.test(key)) { payload.EMAIL = value; } if (/^((full[ _-]?)?name)$/i.test(key)) { fullName = value; } if (/^(first[ _-]?name)$/i.test(key)) { payload.FNAME = value; } if (/^(last[ _-]?name)$/i.test(key)) { payload.LNAME = value; } }); if (fullName && !payload.FNAME) { fullName = fullName.split(' '); payload.FNAME = fullName[0]; payload.LNAME = payload.LNAME || fullName[1]; } // Use the (undocumented) MailChimp jsonp api var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups var userId = url.indexOf('u=') + 2; userId = url.substring(userId, url.indexOf('&', userId)); var listId = url.indexOf('id=') + 3; listId = url.substring(listId, url.indexOf('&', listId)); payload['b_' + userId + '_' + listId] = ''; $.ajax({ url: url, data: payload, dataType: 'jsonp' }).done(function (resp) { data.success = resp.result === 'success' || /already/.test(resp.msg); if (!data.success) { console.info('MailChimp error: ' + resp.msg); } afterSubmit(data); }).fail(function () { afterSubmit(data); }); } // Common callback which runs after all Ajax submissions function afterSubmit(data) { var form = data.form; var redirect = data.redirect; var success = data.success; // Redirect to a success url if defined if (success && redirect) { Webflow.location(redirect); return; } // Show or hide status divs data.done.toggle(success); data.fail.toggle(!success); // Hide form on success form.toggle(!success); // Reset data and enable submit button reset(data); } function preventDefault(data) { data.evt && data.evt.preventDefault(); data.evt = null; } function initFileUpload(i, form) { if (!form.fileUploads || !form.fileUploads[i]) { return; } var file; var $el = $(form.fileUploads[i]); var $defaultWrap = $el.find('> .w-file-upload-default'); var $uploadingWrap = $el.find('> .w-file-upload-uploading'); var $successWrap = $el.find('> .w-file-upload-success'); var $errorWrap = $el.find('> .w-file-upload-error'); var $input = $defaultWrap.find('.w-file-upload-input'); var $label = $defaultWrap.find('.w-file-upload-label'); var $labelChildren = $label.children(); var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); var $fileEl = $successWrap.find('.w-file-upload-file'); var $removeEl = $successWrap.find('.w-file-remove-link'); var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); if (!inApp) { $removeEl.on('click', function () { $input.removeAttr('data-value'); $input.val(''); $fileNameEl.html(''); $defaultWrap.toggle(true); $successWrap.toggle(false); }); $input.on('change', function (e) { file = e.target && e.target.files && e.target.files[0]; if (!file) { return; } // Show uploading $defaultWrap.toggle(false); $errorWrap.toggle(false); $uploadingWrap.toggle(true); // Set filename $fileNameEl.text(file.name); // Disable submit button if (!isUploading()) { disableBtn(form); } form.fileUploads[i].uploading = true; signFile(file, afterSign); }); // Setting input width 1px and height equal label // This is so the browser required error will show up var height = $label.outerHeight(); $input.height(height); $input.width(1); } else { $input.on('click', function (e) { e.preventDefault(); }); $label.on('click', function (e) { e.preventDefault(); }); $labelChildren.on('click', function (e) { e.preventDefault(); }); } function parseError(err) { var errorMsg = err.responseJSON && err.responseJSON.msg; var userError = genericErrMsg; if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { userError = typeErrMsg; } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { userError = sizeErrMsg; } $errorMsgEl.text(userError); $input.removeAttr('data-value'); $input.val(''); $uploadingWrap.toggle(false); $defaultWrap.toggle(true); $errorWrap.toggle(true); form.fileUploads[i].uploading = false; if (!isUploading()) { reset(form); } } function afterSign(err, data) { if (err) { return parseError(err); } var fileName = data.fileName; var postData = data.postData; var fileId = data.fileId; var s3Url = data.s3Url; $input.attr('data-value', fileId); uploadS3(s3Url, postData, file, fileName, afterUpload); } function afterUpload(err) { if (err) { return parseError(err); } // Show success $uploadingWrap.toggle(false); $successWrap.css('display', 'inline-block'); form.fileUploads[i].uploading = false; if (!isUploading()) { reset(form); } } function isUploading() { var uploads = form.fileUploads && form.fileUploads.toArray() || []; return uploads.some(function (value) { return value.uploading; }); } } function signFile(file, cb) { var payload = { name: file.name, size: file.size }; $.ajax({ type: 'POST', url: signFileUrl, data: payload, dataType: 'json', crossDomain: true }).done(function (data) { cb(null, data); }).fail(function (err) { cb(err); }); } function uploadS3(url, data, file, fileName, cb) { var formData = new FormData(); for (var k in data) { formData.append(k, data[k]); } formData.append('file', file, fileName); $.ajax({ type: 'POST', url: url, data: formData, processData: false, contentType: false }).done(function () { cb(null); }).fail(function (err) { cb(err); }); } // Export module return api; }); /***/ }), /* 316 */ /***/ (function(module, exports, __webpack_require__) { var arrayWithHoles = __webpack_require__(317); var iterableToArrayLimit = __webpack_require__(318); var nonIterableRest = __webpack_require__(319); function _slicedToArray(arr, i) { return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); } module.exports = _slicedToArray; /***/ }), /* 317 */ /***/ (function(module, exports) { function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; } module.exports = _arrayWithHoles; /***/ }), /* 318 */ /***/ (function(module, exports) { function _iterableToArrayLimit(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; } module.exports = _iterableToArrayLimit; /***/ }), /* 319 */ /***/ (function(module, exports) { function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance"); } module.exports = _nonIterableRest; /***/ }), /* 320 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* globals window, document */ /* eslint-disable no-var */ /** * Webflow: Navbar component */ var Webflow = __webpack_require__(6); var IXEvents = __webpack_require__(36); var KEY_CODES = { ARROW_LEFT: 37, ARROW_UP: 38, ARROW_RIGHT: 39, ARROW_DOWN: 40, ESCAPE: 27, SPACE: 32, ENTER: 13, HOME: 36, END: 35 }; Webflow.define('navbar', module.exports = function ($, _) { var api = {}; var tram = $.tram; var $win = $(window); var $doc = $(document); var debounce = _.debounce; var $body; var $navbars; var designer; var inEditor; var inApp = Webflow.env(); var overlay = '
'; var namespace = '.w-nav'; var navbarOpenedButton = 'w--open'; var navbarOpenedDropdown = 'w--nav-dropdown-open'; var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; var navbarOpenedLink = 'w--nav-link-open'; var ix = IXEvents.triggers; var menuSibling = $(); // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; api.destroy = function () { menuSibling = $(); removeListeners(); if ($navbars && $navbars.length) { $navbars.each(teardown); } }; // ----------------------------------- // Private methods function init() { designer = inApp && Webflow.env('design'); inEditor = Webflow.env('editor'); $body = $(document.body); // Find all instances on the page $navbars = $doc.find(namespace); if (!$navbars.length) { return; } $navbars.each(build); // Wire events removeListeners(); addListeners(); } function removeListeners() { Webflow.resize.off(resizeAll); } function addListeners() { Webflow.resize.on(resizeAll); } function resizeAll() { $navbars.each(resize); } function build(i, el) { var $el = $(el); // Store state in data var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { open: false, el: $el, config: {}, selectedIdx: -1 }); } data.menu = $el.find('.w-nav-menu'); data.links = data.menu.find('.w-nav-link'); data.dropdowns = data.menu.find('.w-dropdown'); data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); data.dropdownList = data.menu.find('.w-dropdown-list'); data.button = $el.find('.w-nav-button'); data.container = $el.find('.w-container'); data.overlayContainerId = 'w-nav-overlay-' + i; data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the // default setting, then add an aria-label var navBrandLink = $el.find('.w-nav-brand'); if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { navBrandLink.attr('aria-label', 'home'); } // VoiceOver bug, when items that disallow user selection are focused // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ツ)_/¯ data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element if (data.button.attr('aria-label') == null) { data.button.attr('aria-label', 'menu'); } data.button.attr('role', 'button'); data.button.attr('tabindex', '0'); data.button.attr('aria-controls', data.overlayContainerId); data.button.attr('aria-haspopup', 'menu'); data.button.attr('aria-expanded', 'false'); // Remove old events data.el.off(namespace); data.button.off(namespace); data.menu.off(namespace); // Set config from data attributes configure(data); // Add events based on mode if (designer) { removeOverlay(data); data.el.on('setting' + namespace, handler(data)); } else { addOverlay(data); data.button.on('click' + namespace, toggle(data)); data.menu.on('click' + namespace, 'a', navigate(data)); data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); } // Trigger initial resize resize(i, el); } function teardown(i, el) { var data = $.data(el, namespace); if (data) { removeOverlay(data); $.removeData(el, namespace); } } function removeOverlay(data) { if (!data.overlay) { return; } close(data, true); data.overlay.remove(); data.overlay = null; } function addOverlay(data) { if (data.overlay) { return; } data.overlay = $(overlay).appendTo(data.el); data.overlay.attr('id', data.overlayContainerId); data.parent = data.menu.parent(); close(data, true); } function configure(data) { var config = {}; var old = data.config || {}; // Set config options from data attributes var animation = config.animation = data.el.attr('data-animation') || 'default'; config.animOver = /^over/.test(animation); config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed if (old.animation !== animation) { data.open && _.defer(reopen, data); } config.easing = data.el.attr('data-easing') || 'ease'; config.easing2 = data.el.attr('data-easing2') || 'ease'; var duration = data.el.attr('data-duration'); config.duration = duration != null ? Number(duration) : 400; config.docHeight = data.el.attr('data-doc-height'); // Store config in data data.config = config; } function handler(data) { return function (evt, options) { options = options || {}; var winWidth = $win.width(); configure(data); options.open === true && open(data, true); options.open === false && close(data, true); // Reopen if media query changed after setting data.open && _.defer(function () { if (winWidth !== $win.width()) { reopen(data); } }); }; } function makeToggleButtonKeyboardHandler(data) { return function (evt) { switch (evt.keyCode) { case KEY_CODES.SPACE: case KEY_CODES.ENTER: { // Toggle returns a function toggle(data)(); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ESCAPE: { close(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_RIGHT: case KEY_CODES.ARROW_DOWN: case KEY_CODES.HOME: case KEY_CODES.END: { if (!data.open) { evt.preventDefault(); return evt.stopPropagation(); } if (evt.keyCode === KEY_CODES.END) { data.selectedIdx = data.links.length - 1; } else { data.selectedIdx = 0; } focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } } }; } function makeLinksKeyboardHandler(data) { return function (evt) { if (!data.open) { return; } // Realign selectedIdx with the menu item that is currently in focus. // We need this because we do not track the `Tab` key activity! data.selectedIdx = data.links.index(document.activeElement); switch (evt.keyCode) { case KEY_CODES.HOME: case KEY_CODES.END: { if (evt.keyCode === KEY_CODES.END) { data.selectedIdx = data.links.length - 1; } else { data.selectedIdx = 0; } focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ESCAPE: { close(data); // Focus toggle button data.button.focus(); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_LEFT: case KEY_CODES.ARROW_UP: { data.selectedIdx = Math.max(-1, data.selectedIdx - 1); focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } case KEY_CODES.ARROW_RIGHT: case KEY_CODES.ARROW_DOWN: { data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); focusSelectedLink(data); evt.preventDefault(); return evt.stopPropagation(); } } }; } function focusSelectedLink(data) { if (data.links[data.selectedIdx]) { var selectedElement = data.links[data.selectedIdx]; selectedElement.focus(); navigate(selectedElement); } } function reopen(data) { if (!data.open) { return; } close(data, true); open(data, true); } function toggle(data) { // Debounce toggle to wait for accurate open state return debounce(function () { data.open ? close(data) : open(data); }); } function navigate(data) { return function (evt) { var link = $(this); var href = link.attr('href'); // Avoid late clicks on touch devices if (!Webflow.validClick(evt.currentTarget)) { evt.preventDefault(); return; } // Close when navigating to an in-page anchor if (href && href.indexOf('#') === 0 && data.open) { close(data); } }; } function outside(data) { // Unbind previous click handler if it exists if (data.outside) { $doc.off('click' + namespace, data.outside); } return function (evt) { var $target = $(evt.target); // Ignore clicks on Editor overlay UI if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { return; } // Close menu when clicked outside, debounced to wait for state outsideDebounced(data, $target); }; } var outsideDebounced = debounce(function (data, $target) { if (!data.open) { return; } var menu = $target.closest('.w-nav-menu'); if (!data.menu.is(menu)) { close(data); } }); function resize(i, el) { var data = $.data(el, namespace); // Check for collapsed state based on button display var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) if (data.open && !collapsed && !designer) { close(data, true); } // Set max-width of links + dropdowns to match container if (data.container.length) { var updateEachMax = updateMax(data); data.links.each(updateEachMax); data.dropdowns.each(updateEachMax); } // If currently open, update height to match body if (data.open) { setOverlayHeight(data); } } var maxWidth = 'max-width'; function updateMax(data) { // Set max-width of each element to match container var containMax = data.container.css(maxWidth); if (containMax === 'none') { containMax = ''; } return function (i, link) { link = $(link); link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists if (link.css(maxWidth) === 'none') { link.css(maxWidth, containMax); } }; } function addMenuOpen(i, el) { el.setAttribute('data-nav-menu-open', ''); } function removeMenuOpen(i, el) { el.removeAttribute('data-nav-menu-open'); } function open(data, immediate) { if (data.open) { return; } data.open = true; data.menu.each(addMenuOpen); data.links.addClass(navbarOpenedLink); data.dropdowns.addClass(navbarOpenedDropdown); data.dropdownToggle.addClass(navbarOpenedDropdownToggle); data.dropdownList.addClass(navbarOpenedDropdownList); data.button.addClass(navbarOpenedButton); var config = data.config; var animation = config.animation; if (animation === 'none' || !tram.support.transform) { immediate = true; } var bodyHeight = setOverlayHeight(data); var menuHeight = data.menu.outerHeight(true); var menuWidth = data.menu.outerWidth(true); var navHeight = data.el.height(); var navbarEl = data.el[0]; resize(0, navbarEl); ix.intro(0, navbarEl); Webflow.redraw.up(); // Listen for click outside events if (!designer) { $doc.on('click' + namespace, data.outside); } // No transition for immediate if (immediate) { complete(); return; } var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay if (data.overlay) { menuSibling = data.menu.prev(); data.overlay.show().append(data.menu); } // Over left/right if (config.animOver) { tram(data.menu).add(transConfig).set({ x: config.animDirect * menuWidth, height: bodyHeight }).start({ x: 0 }).then(complete); data.overlay && data.overlay.width(menuWidth); return; } // Drop Down var offsetY = navHeight + menuHeight; tram(data.menu).add(transConfig).set({ y: -offsetY }).start({ y: 0 }).then(complete); function complete() { data.button.attr('aria-expanded', 'true'); } } function setOverlayHeight(data) { var config = data.config; var bodyHeight = config.docHeight ? $doc.height() : $body.height(); if (config.animOver) { data.menu.height(bodyHeight); } else if (data.el.css('position') !== 'fixed') { bodyHeight -= data.el.outerHeight(true); } data.overlay && data.overlay.height(bodyHeight); return bodyHeight; } function close(data, immediate) { if (!data.open) { return; } data.open = false; data.button.removeClass(navbarOpenedButton); var config = data.config; if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { immediate = true; } ix.outro(0, data.el[0]); // Stop listening for click outside events $doc.off('click' + namespace, data.outside); if (immediate) { tram(data.menu).stop(); complete(); return; } var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; var menuHeight = data.menu.outerHeight(true); var menuWidth = data.menu.outerWidth(true); var navHeight = data.el.height(); // Over left/right if (config.animOver) { tram(data.menu).add(transConfig).start({ x: menuWidth * config.animDirect }).then(complete); return; } // Drop Down var offsetY = navHeight + menuHeight; tram(data.menu).add(transConfig).start({ y: -offsetY }).then(complete); function complete() { data.menu.height(''); tram(data.menu).set({ x: 0, y: 0 }); data.menu.each(removeMenuOpen); data.links.removeClass(navbarOpenedLink); data.dropdowns.removeClass(navbarOpenedDropdown); data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); data.dropdownList.removeClass(navbarOpenedDropdownList); if (data.overlay && data.overlay.children().length) { // Move menu back to parent at the original location menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); data.overlay.attr('style', '').hide(); } // Trigger event so other components can hook in (dropdown) data.el.triggerHandler('w-close'); data.button.attr('aria-expanded', 'false'); } } // Export module return api; }); /***/ }), /* 321 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; // @wf-will-never-add-flow-to-this-file /* global document window */ /* eslint-disable no-var */ /** * Webflow: Tabs component */ var Webflow = __webpack_require__(6); var IXEvents = __webpack_require__(36); Webflow.define('tabs', module.exports = function ($) { var api = {}; var tram = $.tram; var $doc = $(document); var $tabs; var design; var env = Webflow.env; var safari = env.safari; var inApp = env(); var tabAttr = 'data-w-tab'; var paneAttr = 'data-w-pane'; var namespace = '.w-tabs'; var linkCurrent = 'w--current'; var tabActive = 'w--tab-active'; var ix = IXEvents.triggers; var inRedraw = false; // ----------------------------------- // Module methods api.ready = api.design = api.preview = init; api.redraw = function () { inRedraw = true; init(); inRedraw = false; }; api.destroy = function () { $tabs = $doc.find(namespace); if (!$tabs.length) { return; } $tabs.each(resetIX); removeListeners(); }; // ----------------------------------- // Private methods function init() { design = inApp && Webflow.env('design'); // Find all instances on the page $tabs = $doc.find(namespace); if (!$tabs.length) { return; } $tabs.each(build); if (Webflow.env('preview') && !inRedraw) { $tabs.each(resetIX); } removeListeners(); addListeners(); } function removeListeners() { Webflow.redraw.off(api.redraw); } function addListeners() { Webflow.redraw.on(api.redraw); } function resetIX(i, el) { var data = $.data(el, namespace); if (!data) { return; } data.links && data.links.each(ix.reset); data.panes && data.panes.each(ix.reset); } function build(i, el) { var widgetHash = namespace.substr(1) + '-' + i; var $el = $(el); // Store state in data var data = $.data(el, namespace); if (!data) { data = $.data(el, namespace, { el: $el, config: {} }); } data.current = null; data.tabIdentifier = widgetHash + '-' + tabAttr; data.paneIdentifier = widgetHash + '-' + paneAttr; data.menu = $el.children('.w-tab-menu'); data.links = data.menu.children('.w-tab-link'); data.content = $el.children('.w-tab-content'); data.panes = data.content.children('.w-tab-pane'); // Remove old events data.el.off(namespace); data.links.off(namespace); // This role is necessary in the ARIA spec data.menu.attr('role', 'tablist'); // Set all tabs unfocusable data.links.attr('tabindex', '-1'); // Set config from data attributes configure(data); // Wire up events when not in design mode if (!design) { data.links.on('click' + namespace, linkSelect(data)); data.links.on('keydown' + namespace, handleLinkKeydown(data)); // Trigger first intro event from current tab var $link = data.links.filter('.' + linkCurrent); var tab = $link.attr(tabAttr); tab && changeTab(data, { tab: tab, immediate: true }); } } function configure(data) { var config = {}; // Set config options from data attributes config.easing = data.el.attr('data-easing') || 'ease'; var intro = parseInt(data.el.attr('data-duration-in'), 10); // eslint-disable-next-line no-self-compare intro = config.intro = intro === intro ? intro : 0; var outro = parseInt(data.el.attr('data-duration-out'), 10); // eslint-disable-next-line no-self-compare outro = config.outro = outro === outro ? outro : 0; config.immediate = !intro && !outro; // Store config in data data.config = config; } function getActiveTabIdx(data) { var tab = data.current; return Array.prototype.findIndex.call(data.links, function (t) { return t.getAttribute(tabAttr) === tab; }, null); } function linkSelect(data) { return function (evt) { evt.preventDefault(); var tab = evt.currentTarget.getAttribute(tabAttr); tab && changeTab(data, { tab: tab }); }; } function handleLinkKeydown(data) { return function (evt) { var currentIdx = getActiveTabIdx(data); var keyName = evt.key; var keyMap = { ArrowLeft: currentIdx - 1, ArrowUp: currentIdx - 1, ArrowRight: currentIdx + 1, ArrowDown: currentIdx + 1, End: data.links.length - 1, Home: 0 }; // Bail out of function if this key is not // involved in tab management if (!(keyName in keyMap)) return; evt.preventDefault(); var nextIdx = keyMap[keyName]; // go back to end of tabs if we wrap past the start if (nextIdx === -1) { nextIdx = data.links.length - 1; } // go back to start if we wrap past the last tab if (nextIdx === data.links.length) { nextIdx = 0; } var tabEl = data.links[nextIdx]; var tab = tabEl.getAttribute(tabAttr); tab && changeTab(data, { tab: tab }); }; } function changeTab(data, options) { options = options || {}; var config = data.config; var easing = config.easing; var tab = options.tab; // Don't select the same tab twice if (tab === data.current) { return; } data.current = tab; /** * The currently active tab. * Will be referenced to manage focus after * TabLink attributes are changed * @type {HTMLAnchorElement} */ var currentTab; // Select the current link data.links.each(function (i, el) { var $el = $(el); // Add important attributes at build time. if (options.immediate || config.immediate) { // Store corresponding pane for reference. var pane = data.panes[i]; // IDs are necessary for ARIA relationships, // so if the user did not create one, we create one // using our generated identifier if (!el.id) { el.id = data.tabIdentifier + '-' + i; } if (!pane.id) { pane.id = data.paneIdentifier + '-' + i; } el.href = '#' + pane.id; // Tab elements must take this role el.setAttribute('role', 'tab'); // Tab elements must reference the unique ID of the panel // that they control el.setAttribute('aria-controls', pane.id); // Tab elements must report that they are not selected // by default el.setAttribute('aria-selected', 'false'); // Panes must take on the `Tabpanel` role pane.setAttribute('role', 'tabpanel'); // Elements with tabpanel role must be labelled by // their controlling tab pane.setAttribute('aria-labelledby', el.id); } if (el.getAttribute(tabAttr) === tab) { // This is the current tab. Store it. currentTab = el; $el.addClass(linkCurrent).removeAttr('tabindex').attr({ 'aria-selected': 'true' }).each(ix.intro); } else if ($el.hasClass(linkCurrent)) { $el.removeClass(linkCurrent).attr({ tabindex: '-1', 'aria-selected': 'false' }).each(ix.outro); } }); // Find the new tab panes and keep track of previous var targets = []; var previous = []; data.panes.each(function (i, el) { var $el = $(el); if (el.getAttribute(tabAttr) === tab) { targets.push(el); } else if ($el.hasClass(tabActive)) { previous.push(el); } }); var $targets = $(targets); var $previous = $(previous); // Switch tabs immediately and bypass transitions if (options.immediate || config.immediate) { $targets.addClass(tabActive).each(ix.intro); $previous.removeClass(tabActive); // Redraw to benefit components in the hidden tab pane // But only if not currently in the middle of a redraw if (!inRedraw) { Webflow.redraw.up(); } return; } // Focus if this is not the on-page-load call to `changeTab` else { // Backwards compatible hack to prevent focus from scrolling var x = window.scrollX; var y = window.scrollY; currentTab.focus(); window.scrollTo(x, y); } // Fade out the currently active tab before intro if ($previous.length && config.outro) { $previous.each(ix.outro); tram($previous).add('opacity ' + config.outro + 'ms ' + easing, { fallback: safari }).start({ opacity: 0 }).then(function () { return fadeIn(config, $previous, $targets); }); } else { // Skip the outro and play intro fadeIn(config, $previous, $targets); } } // Fade in the new target function fadeIn(config, $previous, $targets) { // Clear previous active class + styles touched by tram // We cannot remove the whole inline style because it could be dynamically bound $previous.removeClass(tabActive).css({ opacity: '', transition: '', transform: '', width: '', height: '' }); // Add active class to new target $targets.addClass(tabActive).each(ix.intro); Webflow.redraw.up(); // Set opacity immediately if intro is zero if (!config.intro) { return tram($targets).set({ opacity: 1 }); } // Otherwise fade in opacity tram($targets).set({ opacity: 0 }).redraw().add('opacity ' + config.intro + 'ms ' + config.easing, { fallback: safari }).start({ opacity: 1 }); } // Export module return api; }); /***/ }) /******/ ]);/** * ---------------------------------------------------------------------- * Webflow: Interactions 2.0: Init */ Webflow.require('ix2').init( {"events":{"e-53":{"id":"e-53","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-54"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|38b1f7c6-7864-bb8b-427b-0b382d67c2f2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|38b1f7c6-7864-bb8b-427b-0b382d67c2f2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600444276969},"e-76":{"id":"e-76","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-77"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|a597ffc4-debb-e96e-5855-3db9ce92b4bf","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|a597ffc4-debb-e96e-5855-3db9ce92b4bf","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600446337706},"e-82":{"id":"e-82","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-83"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|bb075123-1d04-225f-756e-105e2f5fafb0","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|bb075123-1d04-225f-756e-105e2f5fafb0","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600446489060},"e-84":{"id":"e-84","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-85"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|23ce3ce8-5554-dcf8-d150-1572cfa3f6d0","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|23ce3ce8-5554-dcf8-d150-1572cfa3f6d0","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600446507700},"e-86":{"id":"e-86","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-87"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|2f3a3b90-d25d-c4e5-e0b7-c26a9132b41c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|2f3a3b90-d25d-c4e5-e0b7-c26a9132b41c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600446511316},"e-88":{"id":"e-88","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-89"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|09572c83-c245-9720-3b2d-9705adaadcb4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|09572c83-c245-9720-3b2d-9705adaadcb4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600446728487},"e-90":{"id":"e-90","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-10","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-91"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62255","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62255","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600446826365},"e-98":{"id":"e-98","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-9","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-99"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62252","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62252","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600447069751},"e-100":{"id":"e-100","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-11","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-101"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62258","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|19475a91-9f28-4a55-b53f-60a3a7b62258","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600447078316},"e-102":{"id":"e-102","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-103"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|09572c83-c245-9720-3b2d-9705adaadcb2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|09572c83-c245-9720-3b2d-9705adaadcb2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600447089827},"e-112":{"id":"e-112","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-113"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|a2824449-052f-745d-a8ab-6903b5bf50d2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|a2824449-052f-745d-a8ab-6903b5bf50d2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1600447720739},"e-118":{"id":"e-118","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-13","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-119"}},"mediaQueries":["main"],"target":{"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600691207673},"e-119":{"id":"e-119","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-14","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-118"}},"mediaQueries":["main"],"target":{"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600691207676},"e-124":{"id":"e-124","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-16","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-125"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1f060b0e764|4dcda0f6-9cbf-e033-8b9c-2c73a6e4b78c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1f060b0e764|4dcda0f6-9cbf-e033-8b9c-2c73a6e4b78c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600695199288},"e-125":{"id":"e-125","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-17","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-124"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1f060b0e764|4dcda0f6-9cbf-e033-8b9c-2c73a6e4b78c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1f060b0e764|4dcda0f6-9cbf-e033-8b9c-2c73a6e4b78c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600695199292},"e-128":{"id":"e-128","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-20","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-129"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1ea3db0e76a|002bec86-528a-5712-7d76-25b15ba96b50","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1ea3db0e76a|002bec86-528a-5712-7d76-25b15ba96b50","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1601387750211},"e-129":{"id":"e-129","name":"","animationType":"custom","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-21","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-128"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1ea3db0e76a|002bec86-528a-5712-7d76-25b15ba96b50","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1ea3db0e76a|002bec86-528a-5712-7d76-25b15ba96b50","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1601387750215},"e-130":{"id":"e-130","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-22","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-131"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1597422141379},"e-131":{"id":"e-131","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-23","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-130"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1597422141380},"e-132":{"id":"e-132","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-22","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-133"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af6","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af6","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1597422129573},"e-133":{"id":"e-133","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-23","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-132"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af6","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"b69274bd-3ddc-1a5d-c5f8-2657426c0af6","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1597422129575},"e-136":{"id":"e-136","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-137"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|875409e7-9cbd-da44-bd6b-2fd3cd416975","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|875409e7-9cbd-da44-bd6b-2fd3cd416975","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601835072821},"e-138":{"id":"e-138","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-139"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|875409e7-9cbd-da44-bd6b-2fd3cd41697a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|875409e7-9cbd-da44-bd6b-2fd3cd41697a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601835072821},"e-140":{"id":"e-140","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-141"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|0762b71d-368f-aef2-cc07-3dd5ddd5c98a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|0762b71d-368f-aef2-cc07-3dd5ddd5c98a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895034039},"e-142":{"id":"e-142","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-143"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a1b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a1b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895145987},"e-144":{"id":"e-144","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-145"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a20","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a20","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895145987},"e-146":{"id":"e-146","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-147"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a24","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|d8e07106-6523-f3e4-9d0f-c775f2e53a24","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895145987},"e-148":{"id":"e-148","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-149"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad6d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad6d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895257151},"e-150":{"id":"e-150","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-151"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad72","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad72","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895257151},"e-152":{"id":"e-152","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-153"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad76","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|968bbf19-20f6-2bab-b63f-7e2c6844ad76","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601895257151},"e-154":{"id":"e-154","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-24","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|e8bc92e5-6b90-86b7-e61b-72861465e232","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|e8bc92e5-6b90-86b7-e61b-72861465e232","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-24-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1601898338141},"e-163":{"id":"e-163","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-164"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|918c2ffb-0e83-5d1b-96ac-1302c70f7a86","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|918c2ffb-0e83-5d1b-96ac-1302c70f7a86","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601898866327},"e-165":{"id":"e-165","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-166"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|a2824449-052f-745d-a8ab-6903b5bf50d7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|a2824449-052f-745d-a8ab-6903b5bf50d7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1601898878033},"e-183":{"id":"e-183","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-26","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-184"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1601899540740},"e-185":{"id":"e-185","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-27","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-186"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"dd51bca0-4b66-29c8-88d6-173da80f811b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"dd51bca0-4b66-29c8-88d6-173da80f811b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1538215470667},"e-186":{"id":"e-186","name":"","animationType":"custom","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-28","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-185"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"dd51bca0-4b66-29c8-88d6-173da80f811b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"dd51bca0-4b66-29c8-88d6-173da80f811b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1538215470667},"e-191":{"id":"e-191","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-29","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-192"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|49c775ab-9960-870e-46a5-cb68d04f05e3","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|49c775ab-9960-870e-46a5-cb68d04f05e3","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602181357258},"e-192":{"id":"e-192","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-30","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-191"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|49c775ab-9960-870e-46a5-cb68d04f05e3","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|49c775ab-9960-870e-46a5-cb68d04f05e3","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602181357262},"e-193":{"id":"e-193","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-29","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-194"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|c5c9451f-4220-f190-00bd-85c22c3a0157","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|c5c9451f-4220-f190-00bd-85c22c3a0157","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602183173301},"e-194":{"id":"e-194","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-30","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-193"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|c5c9451f-4220-f190-00bd-85c22c3a0157","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|c5c9451f-4220-f190-00bd-85c22c3a0157","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602183173305},"e-195":{"id":"e-195","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-29","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-196"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|1ff069fb-58a3-df51-2d3b-d8bd78c88c14","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|1ff069fb-58a3-df51-2d3b-d8bd78c88c14","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602183256046},"e-196":{"id":"e-196","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-30","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-195"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|1ff069fb-58a3-df51-2d3b-d8bd78c88c14","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|1ff069fb-58a3-df51-2d3b-d8bd78c88c14","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602183256051},"e-197":{"id":"e-197","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-31","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|89219885-2325-434b-4cb9-4e26fd00ad5f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|89219885-2325-434b-4cb9-4e26fd00ad5f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-31-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602256009146},"e-198":{"id":"e-198","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-32","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-199"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|b3621f38-f2b3-e230-1a0f-27879ea46d00","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|b3621f38-f2b3-e230-1a0f-27879ea46d00","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602414918274},"e-199":{"id":"e-199","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-33","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-198"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|b3621f38-f2b3-e230-1a0f-27879ea46d00","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|b3621f38-f2b3-e230-1a0f-27879ea46d00","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602414918280},"e-200":{"id":"e-200","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-201"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|536fbed1-7b90-c3d0-19cd-d240bb1e76d2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|536fbed1-7b90-c3d0-19cd-d240bb1e76d2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602415827823},"e-202":{"id":"e-202","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-203"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|66fed254-54bb-bb00-74f8-02e1b941bc29","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|66fed254-54bb-bb00-74f8-02e1b941bc29","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602415858371},"e-204":{"id":"e-204","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-205"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|f08f4d2d-110e-1d19-6027-e5d2f9cfb8e1","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|f08f4d2d-110e-1d19-6027-e5d2f9cfb8e1","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":25,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602415960863},"e-206":{"id":"e-206","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-207"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|9787402a-440d-4cf8-c4f6-d5c7029117d4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|9787402a-440d-4cf8-c4f6-d5c7029117d4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":25,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602415970791},"e-208":{"id":"e-208","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-209"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|ea13dc5c-71e0-40e2-c80a-b6218777b672","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|ea13dc5c-71e0-40e2-c80a-b6218777b672","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":25,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602415979823},"e-210":{"id":"e-210","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-34","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-211"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602416027346},"e-212":{"id":"e-212","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-213"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa611","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa611","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416138871},"e-222":{"id":"e-222","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-223"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|6eae36b6-a52c-e60a-a73f-65fd3000e97b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|6eae36b6-a52c-e60a-a73f-65fd3000e97b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416186455},"e-224":{"id":"e-224","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-225"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|32007fa6-72ed-bbde-ca60-73205ea74e5c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|32007fa6-72ed-bbde-ca60-73205ea74e5c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416395600},"e-226":{"id":"e-226","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-227"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|c3a5d040-8718-5694-f8a4-954d21d0c703","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|c3a5d040-8718-5694-f8a4-954d21d0c703","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":15,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416403633},"e-228":{"id":"e-228","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-229"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|e2d06dac-14a3-5569-975f-22c13863343a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|e2d06dac-14a3-5569-975f-22c13863343a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416411741},"e-230":{"id":"e-230","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-231"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|a89487b6-c720-2210-aa38-f80710755dcd","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|a89487b6-c720-2210-aa38-f80710755dcd","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602416423696},"e-232":{"id":"e-232","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-35","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa612","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa612","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-35-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602416568824},"e-233":{"id":"e-233","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-35","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|32007fa6-72ed-bbde-ca60-73205ea74e5d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|32007fa6-72ed-bbde-ca60-73205ea74e5d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-35-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602416656620},"e-234":{"id":"e-234","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-35","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|c3a5d040-8718-5694-f8a4-954d21d0c704","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|c3a5d040-8718-5694-f8a4-954d21d0c704","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-35-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602416664474},"e-235":{"id":"e-235","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-35","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|e2d06dac-14a3-5569-975f-22c13863343b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|e2d06dac-14a3-5569-975f-22c13863343b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-35-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602416685124},"e-236":{"id":"e-236","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-35","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea10d96b0e766|a89487b6-c720-2210-aa38-f80710755dce","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea10d96b0e766|a89487b6-c720-2210-aa38-f80710755dce","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-35-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1602416691829},"e-239":{"id":"e-239","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-16","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-240"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea135a0b0e765|f088e8c0-e0f0-8f54-d642-7d3b1b816bac","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea135a0b0e765|f088e8c0-e0f0-8f54-d642-7d3b1b816bac","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602418904472},"e-240":{"id":"e-240","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-17","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-239"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea135a0b0e765|f088e8c0-e0f0-8f54-d642-7d3b1b816bac","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea135a0b0e765|f088e8c0-e0f0-8f54-d642-7d3b1b816bac","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602418904472},"e-241":{"id":"e-241","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-15","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-242"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea135a0b0e765","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea135a0b0e765","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602419011301},"e-245":{"id":"e-245","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-246"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1abe5b0e760|504e340f-b5dd-e4f4-5b9a-4e314cd9604f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1abe5b0e760|504e340f-b5dd-e4f4-5b9a-4e314cd9604f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602419685501},"e-247":{"id":"e-247","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-36","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-248"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1abe5b0e760|55979a17-8fed-f912-43cf-6350361c6f5e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1abe5b0e760|55979a17-8fed-f912-43cf-6350361c6f5e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602421152277},"e-248":{"id":"e-248","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-37","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-247"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1abe5b0e760|55979a17-8fed-f912-43cf-6350361c6f5e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1abe5b0e760|55979a17-8fed-f912-43cf-6350361c6f5e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602421152283},"e-249":{"id":"e-249","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-27","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-250"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1abe5b0e760|4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1abe5b0e760|4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602422298764},"e-250":{"id":"e-250","name":"","animationType":"custom","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-28","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-249"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1abe5b0e760|4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1abe5b0e760|4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602422298764},"e-251":{"id":"e-251","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-38","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-252"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"02c78796-c995-83bb-7074-43c187e71d25","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"02c78796-c995-83bb-7074-43c187e71d25","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602422895923},"e-252":{"id":"e-252","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-39","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-251"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"02c78796-c995-83bb-7074-43c187e71d25","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"02c78796-c995-83bb-7074-43c187e71d25","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602422895929},"e-253":{"id":"e-253","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-38","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-254"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"463cc6bb-4e03-0dd2-4d01-fe10f4f43e85","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"463cc6bb-4e03-0dd2-4d01-fe10f4f43e85","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602423056448},"e-254":{"id":"e-254","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-39","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-253"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"463cc6bb-4e03-0dd2-4d01-fe10f4f43e85","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"463cc6bb-4e03-0dd2-4d01-fe10f4f43e85","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602423056454},"e-256":{"id":"e-256","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-36","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-257"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea19dc2b0e76c|78b25008-69dd-b711-ad76-b2cac110ab08","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea19dc2b0e76c|78b25008-69dd-b711-ad76-b2cac110ab08","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602453076795},"e-257":{"id":"e-257","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-37","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-256"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea19dc2b0e76c|78b25008-69dd-b711-ad76-b2cac110ab08","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea19dc2b0e76c|78b25008-69dd-b711-ad76-b2cac110ab08","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602453076802},"e-264":{"id":"e-264","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-27","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-265"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602455892879},"e-265":{"id":"e-265","name":"","animationType":"custom","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-28","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-264"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"4f717c57-16fd-6f8d-c6bd-86536bed640d","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1602455892888},"e-266":{"id":"e-266","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-15","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-267"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"f694ae7f-9206-11cf-ba64-fbbbaa869a61","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"f694ae7f-9206-11cf-ba64-fbbbaa869a61","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602844905035},"e-268":{"id":"e-268","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-15","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-269"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1f060b0e764|bca99b4d-cad9-8d1f-72c3-2242ae34b25c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1f060b0e764|bca99b4d-cad9-8d1f-72c3-2242ae34b25c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1602845025296},"e-270":{"id":"e-270","name":"","animationType":"custom","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-40","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-271"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|620f28e4-ae6c-a9c8-5a01-69700412e440","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|620f28e4-ae6c-a9c8-5a01-69700412e440","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1609526651906},"e-272":{"id":"e-272","name":"","animationType":"preset","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-273"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|55f9dcda-118b-0817-31f4-03972508e8a2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|55f9dcda-118b-0817-31f4-03972508e8a2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611318256920},"e-274":{"id":"e-274","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-275"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|55f9dcda-118b-0817-31f4-03972508e8a4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|55f9dcda-118b-0817-31f4-03972508e8a4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1611318256920},"e-276":{"id":"e-276","name":"","animationType":"preset","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-277"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|07997841-5f5d-0a26-bfdb-b037d5a0bbab","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|07997841-5f5d-0a26-bfdb-b037d5a0bbab","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611318265291},"e-278":{"id":"e-278","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-279"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|07997841-5f5d-0a26-bfdb-b037d5a0bbad","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|07997841-5f5d-0a26-bfdb-b037d5a0bbad","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1611318265291},"e-280":{"id":"e-280","name":"","animationType":"preset","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-29","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-281"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f5","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f5","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611321439920},"e-281":{"id":"e-281","name":"","animationType":"preset","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-30","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-280"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f5","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f5","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611321439920},"e-282":{"id":"e-282","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-283"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32f7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1611321439920},"e-284":{"id":"e-284","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-285"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32fb","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d32fb","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1611321439920},"e-286":{"id":"e-286","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-287"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d3300","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|9b5171ea-8a1e-d872-f9f7-8619487d3300","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":30,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1611321439920},"e-288":{"id":"e-288","name":"","animationType":"preset","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-22","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-289"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|537f1e93-9f6b-4480-2bbc-dbfa92dd6e92","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|537f1e93-9f6b-4480-2bbc-dbfa92dd6e92","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611692986233},"e-289":{"id":"e-289","name":"","animationType":"preset","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-23","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-288"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|537f1e93-9f6b-4480-2bbc-dbfa92dd6e92","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|537f1e93-9f6b-4480-2bbc-dbfa92dd6e92","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611692986233},"e-290":{"id":"e-290","name":"","animationType":"preset","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-22","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-291"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|095af3e7-623a-3bff-9b37-a781390d417e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|095af3e7-623a-3bff-9b37-a781390d417e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611692987529},"e-291":{"id":"e-291","name":"","animationType":"preset","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-23","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-290"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"600ac30d151ea1bb2eb0e75d|095af3e7-623a-3bff-9b37-a781390d417e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"600ac30d151ea1bb2eb0e75d|095af3e7-623a-3bff-9b37-a781390d417e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1611692987529}},"actionLists":{"a":{"id":"a","title":"Stripe Animation","actionItemGroups":[{"actionItems":[{"id":"a-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".animation-stripe-white","selectorGuids":["c1954d15-18e0-928f-5a9f-5fb4711ae8fb"]},"widthValue":100,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".animation-stripe-black","selectorGuids":["2aa10bc7-4e11-fd1e-e12d-60d1456f29d4"]},"widthValue":100,"widthUnit":"%","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-n-3","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuad","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".animation-stripe-white","selectorGuids":["c1954d15-18e0-928f-5a9f-5fb4711ae8fb"]},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-n-4","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuart","duration":600,"target":{"useEventTarget":"CHILDREN","selector":".animation-stripe-black","selectorGuids":["2aa10bc7-4e11-fd1e-e12d-60d1456f29d4"]},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1600432072774},"a-10":{"id":"a-10","title":"Tab Dot Click 2","actionItemGroups":[{"actionItems":[{"id":"a-10-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5"]},"globalSwatchId":"5172d4ae","rValue":190,"bValue":190,"gValue":190,"aValue":1}},{"id":"a-10-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot._2","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5","abcddba1-4918-2b76-4bb2-551a94f8b579"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600446829579},"a-9":{"id":"a-9","title":"Tab Dot Click 1","actionItemGroups":[{"actionItems":[{"id":"a-9-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5"]},"globalSwatchId":"5172d4ae","rValue":190,"bValue":190,"gValue":190,"aValue":1}},{"id":"a-9-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot._1","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5","b45b1c46-39b5-a9a5-7764-04b1e090700f"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600446829579},"a-11":{"id":"a-11","title":"Tab Dot Click 3","actionItemGroups":[{"actionItems":[{"id":"a-11-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5"]},"globalSwatchId":"5172d4ae","rValue":190,"bValue":190,"gValue":190,"aValue":1}},{"id":"a-11-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"useEventTarget":"CHILDREN","selector":".tab-dot._3","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5","330334e6-e97e-4996-f5a0-ae6af32aecd3"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600446829579},"a-12":{"id":"a-12","title":"Tab Dot Click 4","actionItemGroups":[{"actionItems":[{"id":"a-12-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"selector":".tab-dot","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5"]},"globalSwatchId":"5172d4ae","rValue":190,"bValue":190,"gValue":190,"aValue":1}},{"id":"a-12-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":100,"target":{"useEventTarget":"CHILDREN","selector":".tab-dot._4","selectorGuids":["72325251-3892-e0d7-9e15-1899153f59b5","9e0380da-6f5d-32d4-0556-6c6621ef9ace"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600446829579},"a-13":{"id":"a-13","title":"Case Study Hover On","actionItemGroups":[{"actionItems":[{"id":"a-13-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".background-case-photo","selectorGuids":["d7f59254-aab4-9ce2-839c-f822f0ff33d8"]},"value":0,"unit":""}},{"id":"a-13-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354"},"widthValue":36,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-13-n-3","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}},{"id":"a-13-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-13-n-10","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-dicider","selectorGuids":["5ab933fd-34b0-c960-1d93-12780d4b2816"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-13-n-11","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-13-n-12","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]},{"actionItems":[{"id":"a-13-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".background-case-photo","selectorGuids":["d7f59254-aab4-9ce2-839c-f822f0ff33d8"]},"value":1,"unit":""}},{"id":"a-13-n-6","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":true,"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354"},"widthValue":100,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-13-n-7","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-13-n-8","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-13-n-9","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-dicider","selectorGuids":["5ab933fd-34b0-c960-1d93-12780d4b2816"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-13-n-13","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-13-n-14","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}}]}],"useFirstGroupAsInitialState":true,"createdOn":1600691211129},"a-14":{"id":"a-14","title":"Case Study Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-14-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":true,"id":"600ac30d151ea1f060b0e764|2e86f30a-40d4-b866-372b-de3cadcb3354"},"widthValue":36,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-14-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".background-case-photo","selectorGuids":["d7f59254-aab4-9ce2-839c-f822f0ff33d8"]},"value":0,"unit":""}},{"id":"a-14-n-3","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"390488e8","rValue":255,"bValue":83,"gValue":87,"aValue":1}},{"id":"a-14-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".case-wrap","selectorGuids":["bebd9f6d-80e2-92e9-92e6-27fb5cb89eba"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-14-n-5","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"easeIn","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".case-dicider","selectorGuids":["5ab933fd-34b0-c960-1d93-12780d4b2816"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-14-n-6","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":150,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-14-n-7","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"easeIn","duration":150,"target":{"useEventTarget":"CHILDREN","selector":".read-more.black-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","c1d7ff38-4063-df80-6d68-d6f5aa9b6fca"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600691211129},"a-16":{"id":"a-16","title":"Case Study Hover On","actionItemGroups":[{"actionItems":[{"id":"a-16-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".white-case-element","selectorGuids":["a42cadaa-4400-7dd9-f9ae-23f53204c976"]},"heightValue":0,"widthUnit":"PX","heightUnit":"%","locked":false}},{"id":"a-16-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-study-name","selectorGuids":["3a650f29-34a4-bc0f-dd8a-f022e145035c"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-16-n-5","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-16-n-6","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-16-n-9","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".case-study-category","selectorGuids":["9db6c4ae-2e5c-9a03-2c9d-b39b598b640b"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]},{"actionItems":[{"id":"a-16-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inOutExpo","duration":800,"target":{"useEventTarget":"CHILDREN","selector":".white-case-element","selectorGuids":["a42cadaa-4400-7dd9-f9ae-23f53204c976"]},"heightValue":100,"widthUnit":"PX","heightUnit":"%","locked":false}},{"id":"a-16-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":200,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".case-study-name","selectorGuids":["3a650f29-34a4-bc0f-dd8a-f022e145035c"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-16-n-7","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":400,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-16-n-8","actionTypeId":"STYLE_BORDER","config":{"delay":400,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}},{"id":"a-16-n-10","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":400,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".case-study-category","selectorGuids":["9db6c4ae-2e5c-9a03-2c9d-b39b598b640b"]},"globalSwatchId":"372beea9","rValue":10,"bValue":10,"gValue":10,"aValue":1}}]}],"useFirstGroupAsInitialState":true,"createdOn":1600695205391},"a-17":{"id":"a-17","title":"Case Study Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-17-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inOutQuad","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".white-case-element","selectorGuids":["a42cadaa-4400-7dd9-f9ae-23f53204c976"]},"heightValue":0,"widthUnit":"PX","heightUnit":"%","locked":false}},{"id":"a-17-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".case-study-name","selectorGuids":["3a650f29-34a4-bc0f-dd8a-f022e145035c"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-17-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-17-n-4","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.portfolio-read-more","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","ab46a16a-85a9-e05b-b979-8c61d9c1bf23"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-17-n-5","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".case-study-category","selectorGuids":["9db6c4ae-2e5c-9a03-2c9d-b39b598b640b"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1600695424792},"a-20":{"id":"a-20","title":"Open Role Open","actionItemGroups":[{"actionItems":[{"id":"a-20-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","selector":".open-role-content","selectorGuids":["556c0653-8223-ca37-600b-707f500f7229"]},"heightValue":0,"widthUnit":"PX","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-20-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"SIBLINGS","selector":".open-role-content","selectorGuids":["556c0653-8223-ca37-600b-707f500f7229"]},"heightValue":0,"widthUnit":"PX","heightUnit":"AUTO","locked":false}},{"id":"a-20-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".open-role-arrow","selectorGuids":["38f6b949-b69a-cac5-7b79-a549c837b40f"]},"zValue":180,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1601387757009},"a-21":{"id":"a-21","title":"Open Role Close","actionItemGroups":[{"actionItems":[{"id":"a-21-n-3","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"SIBLINGS","selector":".open-role-content","selectorGuids":["556c0653-8223-ca37-600b-707f500f7229"]},"heightValue":0,"widthUnit":"PX","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-21-n-4","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".open-role-arrow","selectorGuids":["38f6b949-b69a-cac5-7b79-a549c837b40f"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1601387757009},"a-22":{"id":"a-22","title":"Social Hover On","actionItemGroups":[{"actionItems":[{"id":"a-22-n","actionTypeId":"STYLE_FILTER","config":{"delay":0,"easing":"","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".footer-social-icon","selectorGuids":["0dd2d2f3-f3d3-26f0-f0f7-50805d305f86"]},"filters":[{"type":"invert","filterId":"99c7","value":100,"unit":"%"}]}}]}],"useFirstGroupAsInitialState":false,"createdOn":1597333729755},"a-23":{"id":"a-23","title":"Social Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-23-n","actionTypeId":"STYLE_FILTER","config":{"delay":0,"easing":"","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".footer-social-icon","selectorGuids":["0dd2d2f3-f3d3-26f0-f0f7-50805d305f86"]},"filters":[{"type":"invert","filterId":"99c7","value":0,"unit":"%"}]}}]}],"useFirstGroupAsInitialState":false,"createdOn":1597333729755},"a-24":{"id":"a-24","title":"Project Image Grow","continuousParameterGroups":[{"id":"a-24-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-24-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".project-image","selectorGuids":["6ba8befd-10cf-7f01-03e5-fea59bec9354"]},"xValue":1,"yValue":1,"locked":true}}]},{"keyframe":100,"actionItems":[{"id":"a-24-n-2","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".project-image","selectorGuids":["6ba8befd-10cf-7f01-03e5-fea59bec9354"]},"xValue":1.1,"yValue":1.1,"locked":true}}]}]}],"createdOn":1601898346050},"a-25":{"id":"a-25","title":"Paragraph Fade","actionItemGroups":[{"actionItems":[{"id":"a-25-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea1bb2eb0e75d|1a406c54-e653-1836-e3b3-821a46ddbd50"},"value":0,"unit":""}},{"id":"a-25-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea1bb2eb0e75d|1a406c54-e653-1836-e3b3-821a46ddbd50"},"yValue":4,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-25-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"inQuad","duration":600,"target":{"useEventTarget":true,"id":"600ac30d151ea1bb2eb0e75d|1a406c54-e653-1836-e3b3-821a46ddbd50"},"value":1,"unit":""}},{"id":"a-25-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"inQuad","duration":400,"target":{"useEventTarget":true,"id":"600ac30d151ea1bb2eb0e75d|1a406c54-e653-1836-e3b3-821a46ddbd50"},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1601898620549},"a-26":{"id":"a-26","title":"Intro Animation","actionItemGroups":[{"actionItems":[{"id":"a-26-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".intro-stripe","selectorGuids":["7a370b14-16c6-e439-573d-d2c445a9a504"]},"widthValue":100,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-12","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6a"},"value":"flex"}}]},{"actionItems":[{"id":"a-26-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6b"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-3","actionTypeId":"STYLE_SIZE","config":{"delay":300,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6c"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-4","actionTypeId":"STYLE_SIZE","config":{"delay":600,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6d"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-5","actionTypeId":"STYLE_SIZE","config":{"delay":900,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6e"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-6","actionTypeId":"STYLE_SIZE","config":{"delay":1200,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6f"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-7","actionTypeId":"STYLE_SIZE","config":{"delay":1500,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e70"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-8","actionTypeId":"STYLE_SIZE","config":{"delay":1800,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e71"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}},{"id":"a-26-n-9","actionTypeId":"STYLE_SIZE","config":{"delay":2100,"easing":"inQuart","duration":600,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e72"},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-26-n-11","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"531a9c0b-18e4-9af6-ab6e-a7bf9daa0e6a"},"value":"none"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1601899551521},"a-27":{"id":"a-27","title":"Burger Open","actionItemGroups":[{"actionItems":[{"id":"a-27-n","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-1","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b68"]},"zValue":45,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-27-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-3","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b6a"]},"zValue":45,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-27-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-2","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b69"]},"zValue":-45,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-27-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".bar-1","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b68"]},"xValue":2,"yValue":2,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-27-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".bar-3","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b6a"]},"xValue":-2,"yValue":-2,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1538215473626},"a-28":{"id":"a-28","title":"Burger Close","actionItemGroups":[{"actionItems":[{"id":"a-28-n","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-1","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b68"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-28-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-3","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b6a"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-28-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"inOutQuint","duration":500,"target":{"selector":".bar-2","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b69"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-28-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".bar-1","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b68"]},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-28-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".bar-3","selectorGuids":["a59c1420-89e4-076e-f3e3-b52d99c51b6a"]},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1538215473626},"a-29":{"id":"a-29","title":"Project Hover","actionItemGroups":[{"actionItems":[{"id":"a-29-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".project-line","selectorGuids":["da2d4ce5-1a84-ce6c-20ba-af4e5f2bb88a"]},"widthValue":0,"widthUnit":"%","heightUnit":"PX","locked":false}}]},{"actionItems":[{"id":"a-29-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"inQuad","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".project-dot","selectorGuids":["f0f7d75f-025a-4335-09fd-c6653288bafd"]},"xValue":1.2,"yValue":1.2,"locked":true}},{"id":"a-29-n-3","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuad","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".project-line","selectorGuids":["da2d4ce5-1a84-ce6c-20ba-af4e5f2bb88a"]},"widthValue":100,"widthUnit":"%","heightUnit":"PX","locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1602181387247},"a-30":{"id":"a-30","title":"Project Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-30-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"inQuad","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".project-dot","selectorGuids":["f0f7d75f-025a-4335-09fd-c6653288bafd"]},"xValue":1,"yValue":1,"locked":true}},{"id":"a-30-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuad","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".project-line","selectorGuids":["da2d4ce5-1a84-ce6c-20ba-af4e5f2bb88a"]},"widthValue":0,"widthUnit":"PX","heightUnit":"PX","locked":false}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602181387247},"a-31":{"id":"a-31","title":"Parallax Scroll Image","continuousParameterGroups":[{"id":"a-31-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-31-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea10d96b0e766|89219885-2325-434b-4cb9-4e26fd00ad5f"},"yValue":-44,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]},{"keyframe":100,"actionItems":[{"id":"a-31-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea10d96b0e766|89219885-2325-434b-4cb9-4e26fd00ad5f"},"yValue":-56,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}]}],"createdOn":1602256013213},"a-32":{"id":"a-32","title":"Next Project Stripe Hover","actionItemGroups":[{"actionItems":[{"id":"a-32-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".next-project-stripe","selectorGuids":["a29693ae-a1c4-72c5-41ea-6b8ccc01358b"]},"heightValue":100,"widthUnit":"PX","heightUnit":"%","locked":false}}]},{"actionItems":[{"id":"a-32-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"outQuart","duration":100,"target":{"useEventTarget":"CHILDREN","selector":".next-project-stripe","selectorGuids":["a29693ae-a1c4-72c5-41ea-6b8ccc01358b"]},"heightValue":0,"widthUnit":"PX","heightUnit":"%","locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1602414921665},"a-33":{"id":"a-33","title":"Next Project Stripe Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-33-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"inQuart","duration":100,"target":{"useEventTarget":"CHILDREN","selector":".next-project-stripe","selectorGuids":["a29693ae-a1c4-72c5-41ea-6b8ccc01358b"]},"heightValue":100,"widthUnit":"PX","heightUnit":"%","locked":false}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602414921665},"a-34":{"id":"a-34","title":"Case Studies Photo Start","actionItemGroups":[],"useFirstGroupAsInitialState":false,"createdOn":1602416030271},"a-35":{"id":"a-35","title":"Case Study Image Grow","continuousParameterGroups":[{"id":"a-35-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-35-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa612"},"xValue":1,"yValue":1,"locked":true}}]},{"keyframe":100,"actionItems":[{"id":"a-35-n-2","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"600ac30d151ea10d96b0e766|47ae95d6-25fa-40b0-2e22-682d68faa612"},"xValue":1.1,"yValue":1.1,"locked":true}}]}]}],"createdOn":1602416573949},"a-15":{"id":"a-15","title":"Move Text Animation","actionItemGroups":[{"actionItems":[{"id":"a-15-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".mover-wrap","selectorGuids":["9fb9eb4f-b7c2-b326-085c-8e14d5ac8f9a"]},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-15-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":60000,"target":{"selector":".mover-wrap","selectorGuids":["9fb9eb4f-b7c2-b326-085c-8e14d5ac8f9a"]},"xValue":-160,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1600693029999},"a-36":{"id":"a-36","title":"Blog Hover","actionItemGroups":[{"actionItems":[{"id":"a-36-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":[0.076,0.424,0.228,0.839],"duration":400,"target":{"useEventTarget":"CHILDREN","selector":".blog-photo","selectorGuids":["5b04b533-e8d6-664d-3536-adb7a2a637fa"]},"xValue":1.1,"yValue":1.1,"locked":true}},{"id":"a-36-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".blog-text","selectorGuids":["c47d1317-3fa9-a84b-359c-397d44383168"]},"globalSwatchId":"257f402c","rValue":241,"bValue":241,"gValue":241,"aValue":1}},{"id":"a-36-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.white-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","f7d194b5-c102-05ec-84b6-5e8034844812"]},"globalSwatchId":"257f402c","rValue":241,"bValue":241,"gValue":241,"aValue":1}},{"id":"a-36-n-4","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.white-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","f7d194b5-c102-05ec-84b6-5e8034844812"]},"globalSwatchId":"257f402c","rValue":241,"bValue":241,"gValue":241,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602421155468},"a-37":{"id":"a-37","title":"Blog Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-37-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"inQuart","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".blog-photo","selectorGuids":["5b04b533-e8d6-664d-3536-adb7a2a637fa"]},"xValue":1,"yValue":1,"locked":true}},{"id":"a-37-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"inQuart","duration":200,"target":{"boundaryMode":true,"id":"600ac30d151ea1abe5b0e760|55979a17-8fed-f912-43cf-6350361c6f5f"},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-37-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"inQuart","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.white-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","f7d194b5-c102-05ec-84b6-5e8034844812"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-37-n-4","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"inQuart","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".read-more.white-color","selectorGuids":["9b67713c-173b-a6cb-2e6d-f329135be717","f7d194b5-c102-05ec-84b6-5e8034844812"]},"globalSwatchId":"f5ef6729","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602421155468},"a-38":{"id":"a-38","title":"Email Nav Hover","actionItemGroups":[{"actionItems":[{"id":"a-38-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"selector":".contact-nav-dot","selectorGuids":["408e0f21-96b3-5561-ea00-1e2450d4afba"]},"yValue":24,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602422900553},"a-39":{"id":"a-39","title":"Email Nav Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-39-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeIn","duration":200,"target":{"selector":".contact-nav-dot","selectorGuids":["408e0f21-96b3-5561-ea00-1e2450d4afba"]},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1602422900553},"a-40":{"id":"a-40","title":"Cookies Close","actionItemGroups":[{"actionItems":[{"id":"a-40-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"useEventTarget":"PARENT","selector":".cookies","selectorGuids":["11c306d5-6021-b8c8-05b8-ee7facc679f9"]},"value":"none"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1609526655555}},"site":{"mediaQueries":[{"key":"main","min":992,"max":10000},{"key":"medium","min":768,"max":991},{"key":"small","min":480,"max":767},{"key":"tiny","min":0,"max":479}]}} );