-
-
Save jasonleow/e4a55ba117f8fbb46548a99cd6428cc3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/*! | |
* 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, { | |
/******/ configurable: false, | |
/******/ enumerable: true, | |
/******/ get: getter | |
/******/ }); | |
/******/ } | |
/******/ }; | |
/******/ | |
/******/ // 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 = 83); | |
/******/ }) | |
/************************************************************************/ | |
/******/ ([ | |
/* 0 */ | |
/***/ (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; | |
/***/ }), | |
/* 1 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var freeGlobal = __webpack_require__(59); | |
/** 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; | |
/***/ }), | |
/* 2 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* 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__(85); | |
var tram = __webpack_require__(47) && $.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; | |
/***/ }), | |
/* 3 */ | |
/***/ (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; | |
/***/ }), | |
/* 4 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsNative = __webpack_require__(128), | |
getValue = __webpack_require__(133); | |
/** | |
* 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; | |
/***/ }), | |
/* 5 */ | |
/***/ (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; | |
/***/ }), | |
/* 6 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return IX2_RAW_DATA_IMPORTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return IX2_SESSION_STARTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return IX2_SESSION_STOPPED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return IX2_PREVIEW_REQUESTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return IX2_PLAYBACK_REQUESTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return IX2_STOP_REQUESTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return IX2_CLEAR_REQUESTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return IX2_EVENT_LISTENER_ADDED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return IX2_EVENT_STATE_CHANGED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return IX2_ANIMATION_FRAME_CHANGED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return IX2_PARAMETER_CHANGED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return IX2_INSTANCE_ADDED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return IX2_INSTANCE_STARTED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return IX2_INSTANCE_REMOVED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return IX2_ACTION_LIST_PLAYBACK_CHANGED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return IX2_VIEWPORT_WIDTH_CHANGED; }); | |
var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; | |
var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; | |
var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; | |
var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; | |
var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; | |
var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; | |
var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; | |
var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; | |
var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; | |
var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; | |
var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; | |
var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; | |
var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; | |
var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; | |
var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; | |
var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; | |
/***/ }), | |
/* 7 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseMatches = __webpack_require__(116), | |
baseMatchesProperty = __webpack_require__(168), | |
identity = __webpack_require__(37), | |
isArray = __webpack_require__(0), | |
property = __webpack_require__(175); | |
/** | |
* 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 Symbol = __webpack_require__(10), | |
getRawTag = __webpack_require__(129), | |
objectToString = __webpack_require__(130); | |
/** `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; | |
} | |
value = Object(value); | |
return (symToStringTag && symToStringTag in value) | |
? getRawTag(value) | |
: objectToString(value); | |
} | |
module.exports = baseGetTag; | |
/***/ }), | |
/* 9 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isFunction = __webpack_require__(58), | |
isLength = __webpack_require__(30); | |
/** | |
* 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; | |
/***/ }), | |
/* 10 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var root = __webpack_require__(1); | |
/** Built-in value references. */ | |
var Symbol = root.Symbol; | |
module.exports = Symbol; | |
/***/ }), | |
/* 11 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isSymbol = __webpack_require__(21); | |
/** 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; | |
/***/ }), | |
/* 12 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var invariant = __webpack_require__(109); | |
var hasOwnProperty = Object.prototype.hasOwnProperty; | |
var splice = Array.prototype.splice; | |
var assign = Object.assign || /* istanbul ignore next */ function assign(target, source) { | |
getAllKeys(source).forEach(function(key) { | |
if (hasOwnProperty.call(source, key)) { | |
target[key] = source[key]; | |
} | |
}); | |
return target; | |
}; | |
var getAllKeys = typeof Object.getOwnPropertySymbols === 'function' ? | |
function(obj) { return Object.keys(obj).concat(Object.getOwnPropertySymbols(obj)) } : | |
/* istanbul ignore next */ function(obj) { return Object.keys(obj) }; | |
function copy(object) { | |
if (object instanceof Array) { | |
return object.slice(); | |
} else if (object && typeof object === 'object') { | |
return assign(new object.constructor(), object); | |
} else { | |
return object; | |
} | |
} | |
function newContext() { | |
var commands = assign({}, defaultCommands); | |
update.extend = function(directive, fn) { | |
commands[directive] = fn; | |
}; | |
return update; | |
function update(object, spec) { | |
if (!(Array.isArray(object) && Array.isArray(spec))) { | |
invariant( | |
!Array.isArray(spec), | |
'update(): You provided an invalid spec to update(). The spec may ' + | |
'not contain an array except as the value of $set, $push, $unshift, ' + | |
'$splice or any custom command allowing an array value.' | |
); | |
} | |
invariant( | |
typeof spec === 'object' && spec !== null, | |
'update(): You provided an invalid spec to update(). The spec and ' + | |
'every included key path must be plain objects containing one of the ' + | |
'following commands: %s.', | |
Object.keys(commands).join(', ') | |
); | |
var nextObject = object; | |
var specKeys = getAllKeys(spec); | |
var index, key; | |
getAllKeys(spec).forEach(function(key) { | |
if (hasOwnProperty.call(commands, key)) { | |
nextObject = commands[key](spec[key], nextObject, spec, object); | |
} else { | |
var nextValueForKey = update(object[key], spec[key]); | |
if (nextValueForKey !== nextObject[key]) { | |
if (nextObject === object) { | |
nextObject = copy(object); | |
} | |
nextObject[key] = nextValueForKey; | |
} | |
} | |
}) | |
return nextObject; | |
} | |
} | |
var defaultCommands = { | |
$push: function(value, original, spec) { | |
invariantPushAndUnshift(original, spec, '$push'); | |
return original.concat(value); | |
}, | |
$unshift: function(value, original, spec) { | |
invariantPushAndUnshift(original, spec, '$unshift'); | |
return value.concat(original); | |
}, | |
$splice: function(value, nextObject, spec, object) { | |
var originalValue = nextObject === object ? copy(object) : nextObject; | |
invariantSplices(originalValue, spec); | |
value.forEach(function(args) { | |
invariantSplice(args); | |
splice.apply(originalValue, args); | |
}); | |
return originalValue; | |
}, | |
$set: function(value, original, spec) { | |
invariantSet(spec); | |
return value; | |
}, | |
$unset: function(value, nextObject, spec, object) { | |
invariant( | |
Array.isArray(value), | |
'update(): expected spec of $unset to be an array; got %s. ' + | |
'Did you forget to wrap the key(s) in an array?', | |
value | |
); | |
var originalValue = nextObject; | |
value.forEach(function(key) { | |
if (Object.hasOwnProperty.call(originalValue, key)) { | |
if (nextObject === object) nextObject = copy(object); | |
delete nextObject[key]; | |
} | |
}); | |
return nextObject; | |
}, | |
$merge: function(value, nextObject, spec, object) { | |
var nextObject = nextObject; | |
invariantMerge(nextObject, value); | |
getAllKeys(value).forEach(function(key) { | |
if (value[key] !== nextObject[key]) { | |
if (nextObject === object) nextObject = copy(object); | |
nextObject[key] = value[key]; | |
} | |
}); | |
return nextObject; | |
}, | |
$apply: function(value, original) { | |
invariantApply(value); | |
return value(original); | |
} | |
}; | |
module.exports = newContext(); | |
module.exports.newContext = newContext; | |
// invariants | |
function invariantPushAndUnshift(value, spec, command) { | |
invariant( | |
Array.isArray(value), | |
'update(): expected target of %s to be an array; got %s.', | |
command, | |
value | |
); | |
var specValue = spec[command]; | |
invariant( | |
Array.isArray(specValue), | |
'update(): expected spec of %s to be an array; got %s. ' + | |
'Did you forget to wrap your parameter in an array?', | |
command, | |
specValue | |
); | |
} | |
function invariantSplices(value, spec) { | |
invariant( | |
Array.isArray(value), | |
'Expected $splice target to be an array; got %s', | |
value | |
); | |
invariantSplice(spec['$splice']); | |
} | |
function invariantSplice(value) { | |
invariant( | |
Array.isArray(value), | |
'update(): expected spec of $splice to be an array of arrays; got %s. ' + | |
'Did you forget to wrap your parameters in an array?', | |
value | |
); | |
} | |
function invariantApply(fn) { | |
invariant( | |
typeof fn === 'function', | |
'update(): expected spec of $apply to be a function; got %s.', | |
fn | |
); | |
} | |
function invariantSet(spec) { | |
invariant( | |
Object.keys(spec).length === 1, | |
'Cannot have more than one key in an object with $set' | |
); | |
} | |
function invariantMerge(target, specValue) { | |
invariant( | |
specValue && typeof specValue === 'object', | |
'update(): $merge expects a spec of type \'object\'; got %s', | |
specValue | |
); | |
invariant( | |
target && typeof target === 'object', | |
'update(): $merge expects a target of type \'object\'; got %s', | |
target | |
); | |
} | |
/***/ }), | |
/* 13 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var listCacheClear = __webpack_require__(118), | |
listCacheDelete = __webpack_require__(119), | |
listCacheGet = __webpack_require__(120), | |
listCacheHas = __webpack_require__(121), | |
listCacheSet = __webpack_require__(122); | |
/** | |
* 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; | |
/***/ }), | |
/* 14 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var eq = __webpack_require__(24); | |
/** | |
* 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; | |
/***/ }), | |
/* 15 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4); | |
/* Built-in method references that are verified to be native. */ | |
var nativeCreate = getNative(Object, 'create'); | |
module.exports = nativeCreate; | |
/***/ }), | |
/* 16 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isKeyable = __webpack_require__(142); | |
/** | |
* 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; | |
/***/ }), | |
/* 17 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayLikeKeys = __webpack_require__(63), | |
baseKeys = __webpack_require__(31), | |
isArrayLike = __webpack_require__(9); | |
/** | |
* 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; | |
/***/ }), | |
/* 18 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsArguments = __webpack_require__(158), | |
isObjectLike = __webpack_require__(5); | |
/** 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; | |
/***/ }), | |
/* 19 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGet = __webpack_require__(35); | |
/** | |
* 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; | |
/***/ }), | |
/* 20 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isArray = __webpack_require__(0), | |
isKey = __webpack_require__(36), | |
stringToPath = __webpack_require__(169), | |
toString = __webpack_require__(67); | |
/** | |
* 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; | |
/***/ }), | |
/* 21 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetTag = __webpack_require__(8), | |
isObjectLike = __webpack_require__(5); | |
/** `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; | |
/***/ }), | |
/* 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 || Function("return this")() || (1,eval)("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(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; | |
}; | |
/***/ }), | |
/* 24 */ | |
/***/ (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; | |
/***/ }), | |
/* 25 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4), | |
root = __webpack_require__(1); | |
/* Built-in method references that are verified to be native. */ | |
var Map = getNative(root, 'Map'); | |
module.exports = Map; | |
/***/ }), | |
/* 26 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var mapCacheClear = __webpack_require__(134), | |
mapCacheDelete = __webpack_require__(141), | |
mapCacheGet = __webpack_require__(143), | |
mapCacheHas = __webpack_require__(144), | |
mapCacheSet = __webpack_require__(145); | |
/** | |
* 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; | |
/***/ }), | |
/* 27 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(1), | |
stubFalse = __webpack_require__(159); | |
/** Detect free variable `exports`. */ | |
var freeExports = typeof exports == 'object' && 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(exports, __webpack_require__(23)(module))) | |
/***/ }), | |
/* 28 */ | |
/***/ (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) { | |
length = length == null ? MAX_SAFE_INTEGER : length; | |
return !!length && | |
(typeof value == 'number' || reIsUint.test(value)) && | |
(value > -1 && value % 1 == 0 && value < length); | |
} | |
module.exports = isIndex; | |
/***/ }), | |
/* 29 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsTypedArray = __webpack_require__(160), | |
baseUnary = __webpack_require__(161), | |
nodeUtil = __webpack_require__(162); | |
/* 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; | |
/***/ }), | |
/* 30 */ | |
/***/ (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; | |
/***/ }), | |
/* 31 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isPrototype = __webpack_require__(32), | |
nativeKeys = __webpack_require__(163); | |
/** 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; | |
/***/ }), | |
/* 32 */ | |
/***/ (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; | |
/***/ }), | |
/* 33 */ | |
/***/ (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; | |
/***/ }), | |
/* 34 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var DataView = __webpack_require__(164), | |
Map = __webpack_require__(25), | |
Promise = __webpack_require__(165), | |
Set = __webpack_require__(166), | |
WeakMap = __webpack_require__(64), | |
baseGetTag = __webpack_require__(8), | |
toSource = __webpack_require__(60); | |
/** `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; | |
/***/ }), | |
/* 35 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var castPath = __webpack_require__(20), | |
toKey = __webpack_require__(11); | |
/** | |
* 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; | |
/***/ }), | |
/* 36 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isArray = __webpack_require__(0), | |
isSymbol = __webpack_require__(21); | |
/** 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; | |
/***/ }), | |
/* 37 */ | |
/***/ (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; | |
/***/ }), | |
/* 38 */ | |
/***/ (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; | |
/***/ }), | |
/* 39 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (immutable) */ __webpack_exports__["f"] = getInstanceId; | |
/* harmony export (immutable) */ __webpack_exports__["l"] = reifyState; | |
/* harmony export (immutable) */ __webpack_exports__["j"] = observeStore; | |
/* unused harmony export normalizeTarget */ | |
/* harmony export (immutable) */ __webpack_exports__["c"] = getAffectedElements; | |
/* harmony export (immutable) */ __webpack_exports__["d"] = getComputedStyle; | |
/* harmony export (immutable) */ __webpack_exports__["g"] = getInstanceOrigin; | |
/* harmony export (immutable) */ __webpack_exports__["e"] = getDestinationValues; | |
/* harmony export (immutable) */ __webpack_exports__["m"] = renderInstance; | |
/* unused harmony export parseTransform */ | |
/* unused harmony export renderStyle */ | |
/* unused harmony export renderGeneral */ | |
/* unused harmony export addWillChange */ | |
/* unused harmony export removeWillChange */ | |
/* harmony export (immutable) */ __webpack_exports__["b"] = clearAllStyles; | |
/* harmony export (immutable) */ __webpack_exports__["a"] = cleanupInstance; | |
/* harmony export (immutable) */ __webpack_exports__["h"] = getMaxDurationItemIndex; | |
/* unused harmony export getActionListProgress */ | |
/* harmony export (immutable) */ __webpack_exports__["k"] = reduceListToGroup; | |
/* harmony export (immutable) */ __webpack_exports__["o"] = shouldNamespaceEventParameter; | |
/* harmony export (immutable) */ __webpack_exports__["i"] = getNamespacedParameterId; | |
/* harmony export (immutable) */ __webpack_exports__["n"] = shouldAllowMediaQuery; | |
/* harmony export (immutable) */ __webpack_exports__["p"] = stringifyTarget; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get__ = __webpack_require__(19); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_get__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo__ = __webpack_require__(209); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_reduce__ = __webpack_require__(210); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_reduce___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_reduce__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_immutability_helper__ = __webpack_require__(12); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_immutability_helper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_immutability_helper__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__IX2EasingUtils__ = __webpack_require__(54); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__ = __webpack_require__(40); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__ = __webpack_require__(41); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__ = __webpack_require__(42); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__ = __webpack_require__(79); | |
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; }; | |
var _Object$freeze, _Object$freeze2, _transformDefaults; | |
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; } | |
var trim = function trim(v) { | |
return v.trim(); | |
}; | |
var colorStyleProps = Object.freeze((_Object$freeze = {}, _defineProperty(_Object$freeze, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["c" /* BACKGROUND_COLOR */]), _defineProperty(_Object$freeze, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["e" /* BORDER_COLOR */]), _defineProperty(_Object$freeze, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* STYLE_TEXT_COLOR */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["h" /* COLOR */]), _Object$freeze)); | |
var willChangeProps = Object.freeze((_Object$freeze2 = {}, _defineProperty(_Object$freeze2, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["y" /* TRANSFORM */]), _defineProperty(_Object$freeze2, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["c" /* BACKGROUND_COLOR */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["b" /* BACKGROUND */]), _defineProperty(_Object$freeze2, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["o" /* OPACITY */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["o" /* OPACITY */]), _defineProperty(_Object$freeze2, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */]), _defineProperty(_Object$freeze2, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */]), _Object$freeze2)); | |
var uuid = 1; | |
function getInstanceId() { | |
return 'i' + uuid++; | |
} | |
function reifyState() { | |
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, | |
events = _ref.events, | |
actionLists = _ref.actionLists, | |
site = _ref.site; | |
// TODO: rework event aliases to support new data format | |
// const {aliases = []} = rawData; | |
// aliases.forEach(alias => { | |
// const event = events[alias.id]; | |
// if (!event) { | |
// return; | |
// } | |
// const newEventId = alias.id + '-' + (uuid++); | |
// events[newEventId] = { | |
// ...event, | |
// ...alias, | |
// id: newEventId, | |
// overrides: { | |
// ...event.overrides, | |
// ...alias.overrides, | |
// }, | |
// }; | |
// }); | |
var eventTypeMap = __WEBPACK_IMPORTED_MODULE_2_lodash_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; | |
}; | |
function observeStore(_ref2) { | |
var store = _ref2.store, | |
select = _ref2.select, | |
onChange = _ref2.onChange, | |
_ref2$comparator = _ref2.comparator, | |
comparator = _ref2$comparator === undefined ? strictEqual : _ref2$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 = typeof target === 'undefined' ? 'undefined' : _typeof(target); | |
if (type === 'string') { | |
return { id: target }; | |
} else if (target != null && type === 'object') { | |
var id = target.id, | |
selector = target.selector, | |
selectorGuids = target.selectorGuids, | |
appliesTo = target.appliesTo, | |
useEventTarget = target.useEventTarget; | |
return { id: id, selector: selector, selectorGuids: selectorGuids, appliesTo: appliesTo, useEventTarget: useEventTarget }; | |
} | |
return {}; | |
} | |
function getAffectedElements(_ref3) { | |
var config = _ref3.config, | |
event = _ref3.event, | |
eventTarget = _ref3.eventTarget, | |
elementApi = _ref3.elementApi; | |
if (!elementApi) { | |
throw new Error('IX2 missing 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, | |
selector = _normalizeTarget.selector, | |
selectorGuids = _normalizeTarget.selectorGuids, | |
appliesTo = _normalizeTarget.appliesTo, | |
useEventTarget = _normalizeTarget.useEventTarget; | |
if (appliesTo === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["o" /* PAGE */]) { | |
var doc = getValidDocument(id); | |
return doc ? [doc] : []; | |
} | |
var overrides = __WEBPACK_IMPORTED_MODULE_0_lodash_get___default()(event, 'action.config.affectedElements', {}); | |
var override = overrides[id || selector] || {}; | |
var validOverride = Boolean(override.id || override.selector); | |
var limitAffectedElements = void 0; | |
var baseSelector = void 0; | |
var finalSelector = void 0; | |
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 (baseSelector == null || finalSelector == null) { | |
return []; | |
} | |
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 ? [eventTarget] : queryDocument(eventTargetSelector); | |
if (useEventTarget === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["f" /* CHILDREN */]) { | |
return queryDocument(finalSelector).filter(function (childElement) { | |
return eventTargets.some(function (targetElement) { | |
return elementContains(targetElement, childElement); | |
}); | |
}); | |
} | |
if (useEventTarget === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["v" /* SIBLINGS */]) { | |
return queryDocument(finalSelector).filter(function (siblingElement) { | |
return eventTargets.some(function (targetElement) { | |
return isSiblingNode(targetElement, siblingElement); | |
}); | |
}); | |
} | |
return eventTargets; | |
} | |
if (limitAffectedElements === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["f" /* CHILDREN */]) { | |
return queryDocument(baseSelector, finalSelector); | |
} else if (limitAffectedElements === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["m" /* IMMEDIATE_CHILDREN */]) { | |
return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); | |
} else if (limitAffectedElements === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["v" /* SIBLINGS */]) { | |
return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); | |
} else { | |
return queryDocument(finalSelector); | |
} | |
} | |
function getComputedStyle(_ref4) { | |
var element = _ref4.element, | |
actionItem = _ref4.actionItem; | |
if (!__WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["c" /* IS_BROWSER_ENV */]) { | |
return {}; | |
} | |
var actionTypeId = actionItem.actionTypeId; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* STYLE_SIZE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* STYLE_TEXT_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["b" /* GENERAL_DISPLAY */]: | |
return window.getComputedStyle(element); | |
default: | |
return {}; | |
} | |
} | |
var pxValueRegex = /px/; | |
function getInstanceOrigin(_ref5) { | |
var element = _ref5.element, | |
actionItem = _ref5.actionItem, | |
_ref5$computedStyle = _ref5.computedStyle, | |
computedStyle = _ref5$computedStyle === undefined ? {} : _ref5$computedStyle, | |
elementApi = _ref5.elementApi; | |
var getStyle = elementApi.getStyle; | |
var actionTypeId = actionItem.actionTypeId, | |
config = actionItem.config; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */]: | |
return parseTransform(getStyle(element, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */]), actionTypeId); | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["f" /* STYLE_OPACITY */]: | |
return { value: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["o" /* OPACITY */])), 1.0) }; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* STYLE_SIZE */]: | |
{ | |
var inlineWidth = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */]); | |
var inlineHeight = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */]); | |
var widthValue = void 0; | |
var heightValue = void 0; | |
// When destination unit is 'AUTO', ensure origin values are in px | |
if (config.widthUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); | |
} else { | |
widthValue = __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(inlineWidth), parseFloat(computedStyle.width)); | |
} | |
if (config.heightUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); | |
} else { | |
heightValue = __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(inlineHeight), parseFloat(computedStyle.height)); | |
} | |
return { | |
widthValue: widthValue, | |
heightValue: heightValue | |
}; | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* STYLE_TEXT_COLOR */]: | |
return parseColor({ element: element, actionTypeId: actionTypeId, computedStyle: computedStyle, getStyle: getStyle }); | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["b" /* GENERAL_DISPLAY */]: | |
return { value: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["j" /* DISPLAY */]), computedStyle.display) }; | |
default: | |
return; | |
} | |
} | |
function getDestinationValues(_ref6) { | |
var element = _ref6.element, | |
actionItem = _ref6.actionItem, | |
elementApi = _ref6.elementApi; | |
switch (actionItem.actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* 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 __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* 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 (!__WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["c" /* IS_BROWSER_ENV */]) { | |
return { widthValue: widthValue, heightValue: heightValue }; | |
} | |
if (widthUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
var temp = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */]); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], ''); | |
widthValue = getProperty(element, 'offsetWidth'); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], temp); | |
} | |
if (heightUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
var _temp = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */]); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], ''); | |
heightValue = getProperty(element, 'offsetHeight'); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], _temp); | |
} | |
return { widthValue: widthValue, heightValue: heightValue }; | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* 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 }; | |
} | |
default: | |
{ | |
var value = actionItem.config.value; | |
return { value: value }; | |
} | |
} | |
} | |
function renderInstance(instance, elementApi) { | |
var isTransform = instance.isTransform, | |
isStyle = instance.isStyle, | |
isGeneral = instance.isGeneral; | |
if (isTransform) { | |
return renderTransform(instance, elementApi); | |
} | |
if (isStyle) { | |
return renderStyle(instance, elementApi); | |
} | |
if (isGeneral) { | |
return renderGeneral(instance, elementApi); | |
} | |
} | |
var transformDefaults = (_transformDefaults = {}, _defineProperty(_transformDefaults, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */], Object.freeze({ | |
xValue: 0, | |
yValue: 0, | |
zValue: 0 | |
})), _defineProperty(_transformDefaults, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */], Object.freeze({ | |
xValue: 1, | |
yValue: 1, | |
zValue: 1 | |
})), _defineProperty(_transformDefaults, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */], Object.freeze({ | |
xValue: 0, | |
yValue: 0, | |
zValue: 0 | |
})), _defineProperty(_transformDefaults, __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */], Object.freeze({ | |
xValue: 0, | |
yValue: 0 | |
})), _transformDefaults); | |
var paramCapture = '\\(([^)]+)\\)'; | |
var translateXRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["z" /* TRANSLATE_X */] + paramCapture); | |
var translateYRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["A" /* TRANSLATE_Y */] + paramCapture); | |
var translateZRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["B" /* TRANSLATE_Z */] + paramCapture); | |
var scaleXRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["s" /* SCALE_X */] + paramCapture); | |
var scaleYRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["t" /* SCALE_Y */] + paramCapture); | |
var scaleZRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["u" /* SCALE_Z */] + paramCapture); | |
var rotateXRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["p" /* ROTATE_X */] + paramCapture); | |
var rotateYRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["q" /* ROTATE_Y */] + paramCapture); | |
var rotateZRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["r" /* ROTATE_Z */] + paramCapture); | |
var skewXRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["w" /* SKEW_X */] + paramCapture); | |
var skewYRegex = RegExp('' + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["x" /* SKEW_Y */] + paramCapture); | |
var defaultTransform = Object.keys(transformDefaults).map(function (actionTypeId) { | |
var defaults = transformDefaults[actionTypeId]; | |
var xValue = defaults.xValue, | |
yValue = defaults.yValue, | |
zValue = defaults.zValue; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
return fillTransformValues([[__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["z" /* TRANSLATE_X */], xValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["A" /* TRANSLATE_Y */], yValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["B" /* TRANSLATE_Z */], zValue]]); | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
return fillTransformValues([[__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["s" /* SCALE_X */], xValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["t" /* SCALE_Y */], yValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["u" /* SCALE_Z */], zValue]]); | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
return fillTransformValues([[__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["p" /* ROTATE_X */], xValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["q" /* ROTATE_Y */], yValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["r" /* ROTATE_Z */], zValue]]); | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */]: | |
return fillTransformValues([[__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["w" /* SKEW_X */], xValue], [__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["x" /* SKEW_Y */], yValue]]); | |
default: | |
return ''; | |
} | |
}).join(' '); | |
function fillTransformValues(pairs) { | |
return pairs.map(function (pair) { | |
return pair[0] + '(' + pair[1] + ')'; | |
}).join(' '); | |
} | |
function getFirstMatch(regex, value) { | |
var match = regex.exec(value); | |
return match ? match[1] : ''; | |
} | |
function parseTransform(transform, actionTypeId) { | |
var defaults = transformDefaults[actionTypeId]; | |
if (!transform) { | |
return defaults; | |
} | |
var parseXYZ = function parseXYZ(values) { | |
return { | |
xValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(values[0]), defaults.xValue), | |
yValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(values[1]), defaults.yValue), | |
zValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(values[2]), defaults.zValue) | |
}; | |
}; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
{ | |
var values = [getFirstMatch(translateXRegex, transform), getFirstMatch(translateYRegex, transform), getFirstMatch(translateZRegex, transform)]; | |
return parseXYZ(values); | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
{ | |
var _values = [getFirstMatch(scaleXRegex, transform), getFirstMatch(scaleYRegex, transform), getFirstMatch(scaleZRegex, transform)]; | |
return parseXYZ(_values); | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
{ | |
var _values2 = [getFirstMatch(rotateXRegex, transform), getFirstMatch(rotateYRegex, transform), getFirstMatch(rotateZRegex, transform)]; | |
return parseXYZ(_values2); | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */]: | |
{ | |
var _values3 = [getFirstMatch(skewXRegex, transform), getFirstMatch(skewYRegex, transform)]; | |
return { | |
xValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(_values3[0]), defaults.xValue), | |
yValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(_values3[1]), defaults.yValue) | |
}; | |
} | |
default: | |
{ | |
return; | |
} | |
} | |
} | |
function renderTransform(_ref7, elementApi) { | |
var element = _ref7.element, | |
current = _ref7.current, | |
actionItem = _ref7.actionItem; | |
var getStyle = elementApi.getStyle, | |
setStyle = elementApi.setStyle; | |
var transform = getStyle(element, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */]); | |
var newTransform = updateTransformValues(transform, actionItem, current); | |
if (transform !== newTransform) { | |
addWillChange(element, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */], elementApi); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */], newTransform); | |
} | |
} | |
function updateTransformValues(transform, actionItem, current) { | |
var actionTypeId = actionItem.actionTypeId, | |
config = actionItem.config; | |
var _config$xUnit = config.xUnit, | |
xUnit = _config$xUnit === undefined ? '' : _config$xUnit, | |
_config$yUnit = config.yUnit, | |
yUnit = _config$yUnit === undefined ? '' : _config$yUnit, | |
_config$zUnit = config.zUnit, | |
zUnit = _config$zUnit === undefined ? '' : _config$zUnit; | |
var xValue = current.xValue, | |
yValue = current.yValue, | |
zValue = current.zValue; | |
var result = transform || defaultTransform; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
if (xValue !== undefined) { | |
result = replaceTransformPart(result, translateXRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["z" /* TRANSLATE_X */], xValue + xUnit); | |
} | |
if (yValue !== undefined) { | |
result = replaceTransformPart(result, translateYRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["A" /* TRANSLATE_Y */], yValue + yUnit); | |
} | |
if (zValue !== undefined) { | |
result = replaceTransformPart(result, translateZRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["B" /* TRANSLATE_Z */], zValue + zUnit); | |
} | |
return result; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
if (xValue !== undefined) { | |
result = replaceTransformPart(result, scaleXRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["s" /* SCALE_X */], xValue + xUnit); | |
} | |
if (yValue !== undefined) { | |
result = replaceTransformPart(result, scaleYRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["t" /* SCALE_Y */], yValue + yUnit); | |
} | |
if (zValue !== undefined) { | |
result = replaceTransformPart(result, scaleZRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["u" /* SCALE_Z */], zValue + zUnit); | |
} | |
return result; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
if (xValue !== undefined) { | |
result = replaceTransformPart(result, rotateXRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["p" /* ROTATE_X */], xValue + xUnit); | |
} | |
if (yValue !== undefined) { | |
result = replaceTransformPart(result, rotateYRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["q" /* ROTATE_Y */], yValue + yUnit); | |
} | |
if (zValue !== undefined) { | |
result = replaceTransformPart(result, rotateZRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["r" /* ROTATE_Z */], zValue + zUnit); | |
} | |
return result; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */]: | |
if (xValue !== undefined) { | |
result = replaceTransformPart(result, skewXRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["w" /* SKEW_X */], xValue + xUnit); | |
} | |
if (yValue !== undefined) { | |
result = replaceTransformPart(result, skewYRegex, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["x" /* SKEW_Y */], yValue + yUnit); | |
} | |
return result; | |
default: | |
return result; | |
} | |
} | |
function replaceTransformPart(input, regex, func, value) { | |
return input.replace(regex, func + '(' + value + ')'); | |
} | |
var rgbValidRegex = /^rgb/; | |
var rgbMatchRegex = RegExp('rgba?' + paramCapture); | |
function parseColor(_ref8) { | |
var element = _ref8.element, | |
actionTypeId = _ref8.actionTypeId, | |
computedStyle = _ref8.computedStyle, | |
getStyle = _ref8.getStyle; | |
var prop = colorStyleProps[actionTypeId]; | |
var inlineValue = getStyle(element, prop); | |
var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; | |
var matches = getFirstMatch(rgbMatchRegex, value).split(__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["i" /* COMMA_DELIMITER */]); | |
return { | |
rValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseInt(matches[0], 10), 255), | |
gValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseInt(matches[1], 10), 255), | |
bValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseInt(matches[2], 10), 255), | |
aValue: __WEBPACK_IMPORTED_MODULE_1_lodash_defaultTo___default()(parseFloat(matches[3]), 1) | |
}; | |
} | |
function renderStyle(_ref9, elementApi) { | |
var element = _ref9.element, | |
actionItem = _ref9.actionItem, | |
current = _ref9.current, | |
styleProp = _ref9.styleProp; | |
var setStyle = elementApi.setStyle; | |
var actionTypeId = actionItem.actionTypeId, | |
config = actionItem.config; | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* STYLE_SIZE */]: | |
{ | |
var _actionItem$config5 = actionItem.config, | |
_actionItem$config5$w = _actionItem$config5.widthUnit, | |
widthUnit = _actionItem$config5$w === undefined ? '' : _actionItem$config5$w, | |
_actionItem$config5$h = _actionItem$config5.heightUnit, | |
heightUnit = _actionItem$config5$h === undefined ? '' : _actionItem$config5$h; | |
var widthValue = current.widthValue, | |
heightValue = current.heightValue; | |
if (widthValue !== undefined) { | |
if (widthUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
widthUnit = 'px'; | |
} | |
addWillChange(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], elementApi); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], widthValue + widthUnit); | |
} | |
if (heightValue !== undefined) { | |
if (heightUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
heightUnit = 'px'; | |
} | |
addWillChange(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], elementApi); | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], heightValue + heightUnit); | |
} | |
break; | |
} | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* STYLE_TEXT_COLOR */]: | |
{ | |
var prop = colorStyleProps[actionTypeId]; | |
var rValue = current.rValue, | |
gValue = current.gValue, | |
bValue = current.bValue, | |
aValue = current.aValue; | |
addWillChange(element, prop, elementApi); | |
setStyle(element, prop, aValue >= 1 ? 'rgb(' + Math.round(rValue) + ',' + Math.round(gValue) + ',' + Math.round(bValue) + ')' : 'rgba(' + Math.round(rValue) + ',' + Math.round(gValue) + ',' + Math.round(bValue) + ',' + aValue + ')'); | |
break; | |
} | |
default: | |
{ | |
var _config$unit = config.unit, | |
unit = _config$unit === undefined ? '' : _config$unit; | |
addWillChange(element, styleProp, elementApi); | |
setStyle(element, styleProp, current.value + unit); | |
break; | |
} | |
} | |
} | |
function renderGeneral(_ref10, elementApi) { | |
var element = _ref10.element, | |
actionItem = _ref10.actionItem; | |
var setStyle = elementApi.setStyle; | |
switch (actionItem.actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["b" /* GENERAL_DISPLAY */]: | |
{ | |
var value = actionItem.config.value; | |
if (value === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["k" /* FLEX */] && __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["c" /* IS_BROWSER_ENV */]) { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["j" /* DISPLAY */], __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["b" /* FLEX_PREFIXED */]); | |
} else { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["j" /* DISPLAY */], value); | |
} | |
return; | |
} | |
} | |
} | |
function addWillChange(element, prop, elementApi) { | |
if (!__WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["c" /* IS_BROWSER_ENV */]) { | |
return; | |
} | |
var validProp = willChangeProps[prop]; | |
if (!validProp) { | |
return; | |
} | |
var getStyle = elementApi.getStyle, | |
setStyle = elementApi.setStyle; | |
var value = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */]); | |
if (!value) { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */], validProp); | |
return; | |
} | |
var values = value.split(__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["i" /* COMMA_DELIMITER */]).map(trim); | |
if (values.indexOf(validProp) === -1) { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */], values.concat(validProp).join(__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["i" /* COMMA_DELIMITER */])); | |
} | |
} | |
function removeWillChange(element, prop, elementApi) { | |
if (!__WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["c" /* IS_BROWSER_ENV */]) { | |
return; | |
} | |
var validProp = willChangeProps[prop]; | |
if (!validProp) { | |
return; | |
} | |
var getStyle = elementApi.getStyle, | |
setStyle = elementApi.setStyle; | |
var value = getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */]); | |
if (!value || value.indexOf(validProp) === -1) { | |
return; | |
} | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */], value.split(__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["i" /* COMMA_DELIMITER */]).map(trim).filter(function (v) { | |
return v !== validProp; | |
}).join(__WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["i" /* COMMA_DELIMITER */])); | |
} | |
function clearAllStyles(_ref11) { | |
var store = _ref11.store, | |
elementApi = _ref11.elementApi; | |
var _store$getState = store.getState(), | |
ixData = _store$getState.ixData; | |
var _ixData$events = ixData.events, | |
events = _ixData$events === undefined ? {} : _ixData$events, | |
_ixData$actionLists = ixData.actionLists, | |
actionLists = _ixData$actionLists === undefined ? {} : _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 }); | |
}); | |
} | |
function clearActionListStyles(_ref12) { | |
var _ref12$actionList = _ref12.actionList, | |
actionList = _ref12$actionList === undefined ? {} : _ref12$actionList, | |
event = _ref12.event, | |
elementApi = _ref12.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(_ref13) { | |
var actionGroup = _ref13.actionGroup, | |
event = _ref13.event, | |
elementApi = _ref13.elementApi; | |
var actionItems = actionGroup.actionItems; | |
actionItems.forEach(function (_ref14) { | |
var actionTypeId = _ref14.actionTypeId, | |
config = _ref14.config; | |
var clearElement = processElementByType({ effect: clearStyleProp, actionTypeId: actionTypeId, elementApi: elementApi }); | |
getAffectedElements({ config: config, event: event, elementApi: elementApi }).forEach(clearElement); | |
}); | |
} | |
function cleanupInstance(instance, elementApi) { | |
var actionItem = instance.actionItem, | |
element = instance.element; | |
var setStyle = elementApi.setStyle, | |
getStyle = elementApi.getStyle; | |
var actionTypeId = actionItem.actionTypeId; | |
if (actionTypeId === __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* STYLE_SIZE */]) { | |
var config = actionItem.config; | |
if (config.widthUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], ''); | |
} | |
if (config.heightUnit === __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["a" /* AUTO */]) { | |
setStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], ''); | |
} | |
} | |
if (getStyle(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["E" /* WILL_CHANGE */])) { | |
processElementByType({ effect: removeWillChange, actionTypeId: actionTypeId, elementApi: elementApi })(element); | |
} | |
} | |
var processElementByType = function processElementByType(_ref15) { | |
var effect = _ref15.effect, | |
actionTypeId = _ref15.actionTypeId, | |
elementApi = _ref15.elementApi; | |
return function (element) { | |
switch (actionTypeId) { | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["i" /* TRANSFORM_MOVE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["k" /* TRANSFORM_SCALE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["j" /* TRANSFORM_ROTATE */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["l" /* TRANSFORM_SKEW */]: | |
effect(element, __WEBPACK_IMPORTED_MODULE_8__IX2BrowserSupport__["d" /* TRANSFORM_PREFIXED */], elementApi); | |
break; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["f" /* STYLE_OPACITY */]: | |
effect(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["o" /* OPACITY */], elementApi); | |
break; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["g" /* STYLE_SIZE */]: | |
effect(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["D" /* WIDTH */], elementApi); | |
effect(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["l" /* HEIGHT */], elementApi); | |
break; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["d" /* STYLE_BACKGROUND_COLOR */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["e" /* STYLE_BORDER */]: | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["h" /* STYLE_TEXT_COLOR */]: | |
effect(element, colorStyleProps[actionTypeId], elementApi); | |
break; | |
case __WEBPACK_IMPORTED_MODULE_5__constants_IX2EngineItemTypes__["b" /* GENERAL_DISPLAY */]: | |
effect(element, __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["j" /* DISPLAY */], elementApi); | |
break; | |
} | |
}; | |
}; | |
function clearStyleProp(element, prop, elementApi) { | |
var setStyle = elementApi.setStyle; | |
removeWillChange(element, prop, elementApi); | |
setStyle(element, prop, ''); | |
} | |
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; | |
} | |
function getActionListProgress(actionList, instance) { | |
var actionItemGroups = actionList.actionItemGroups, | |
useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; | |
var instanceItem = instance.actionItem, | |
_instance$verboseTime = instance.verboseTimeElapsed, | |
verboseTimeElapsed = _instance$verboseTime === undefined ? 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; | |
var isGeneral = /^GENERAL_/.test(actionTypeId); | |
if (instanceItem.id === carrierItem.id) { | |
elapsedDuration = totalDuration + verboseTimeElapsed; | |
} | |
var duration = isGeneral ? 0 : config.duration; | |
totalDuration += config.delay + duration; | |
}); | |
return totalDuration > 0 ? Object(__WEBPACK_IMPORTED_MODULE_4__IX2EasingUtils__["b" /* optimizeFloat */])(elapsedDuration / totalDuration) : 0; | |
} | |
function reduceListToGroup(_ref16) { | |
var actionListId = _ref16.actionListId, | |
actionItemId = _ref16.actionItemId, | |
rawData = _ref16.rawData; | |
var actionLists = rawData.actionLists; | |
var actionList = actionLists[actionListId]; | |
var actionItemGroups = actionList.actionItemGroups, | |
continuousParameterGroups = actionList.continuousParameterGroups; | |
var newActionItems = []; | |
var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { | |
newActionItems.push(__WEBPACK_IMPORTED_MODULE_3_immutability_helper___default()(actionItem, { | |
config: { $merge: { delay: 0, duration: 0 } } | |
})); | |
return actionItem.id === actionItemId; | |
}; | |
actionItemGroups && actionItemGroups.some(function (_ref17) { | |
var actionItems = _ref17.actionItems; | |
return actionItems.some(takeItemUntilMatch); | |
}); | |
continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { | |
var continuousActionGroups = paramGroup.continuousActionGroups; | |
return continuousActionGroups.some(function (_ref18) { | |
var actionItems = _ref18.actionItems; | |
return actionItems.some(takeItemUntilMatch); | |
}); | |
}); | |
return __WEBPACK_IMPORTED_MODULE_3_immutability_helper___default()(rawData, { | |
actionLists: { $set: _defineProperty({}, actionListId, { | |
id: actionListId, | |
actionItemGroups: [{ | |
actionItems: newActionItems | |
}] | |
}) } | |
}); | |
} | |
function shouldNamespaceEventParameter(eventTypeId, _ref19) { | |
var basedOn = _ref19.basedOn; | |
return eventTypeId === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["u" /* SCROLLING_IN_VIEW */] && (basedOn === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["e" /* ELEMENT */] || basedOn == null) || eventTypeId === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["h" /* MOUSE_MOVE */] && basedOn === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["e" /* ELEMENT */]; | |
} | |
function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { | |
return eventStateKey + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["g" /* COLON_DELIMITER */] + continuousParameterGroupId; | |
} | |
function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { | |
// During design mode, current media query key does not exist | |
if (mediaQueryKey == null) { | |
return true; | |
} | |
return mediaQueries.indexOf(mediaQueryKey) !== -1; | |
} | |
function stringifyTarget(target) { | |
if (typeof target === 'string') { | |
return target; | |
} | |
var _target$id = target.id, | |
id = _target$id === undefined ? '' : _target$id, | |
_target$selector = target.selector, | |
selector = _target$selector === undefined ? '' : _target$selector, | |
_target$useEventTarge = target.useEventTarget, | |
useEventTarget = _target$useEventTarge === undefined ? '' : _target$useEventTarge; | |
return id + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["d" /* BAR_DELIMITER */] + selector + __WEBPACK_IMPORTED_MODULE_7__constants_IX2EngineConstants__["d" /* BAR_DELIMITER */] + useEventTarget; | |
} | |
/***/ }), | |
/* 40 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return TRANSFORM_MOVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return TRANSFORM_SCALE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return TRANSFORM_ROTATE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return TRANSFORM_SKEW; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return STYLE_OPACITY; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return STYLE_SIZE; }); | |
/* unused harmony export STYLE_BOX_SHADOW */ | |
/* unused harmony export STYLE_FILTER */ | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return STYLE_BACKGROUND_COLOR; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return STYLE_BORDER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return STYLE_TEXT_COLOR; }); | |
/* unused harmony export GENERAL_COMBO_CLASS */ | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return GENERAL_DISPLAY; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return GENERAL_CONTINUOUS_ACTION; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return GENERAL_START_ACTION; }); | |
/* unused harmony export GENERAL_STOP_ACTION */ | |
/* unused harmony export GENERAL_LOOP */ | |
/* unused harmony export FADE_EFFECT */ | |
/* unused harmony export SLIDE_EFFECT */ | |
/* unused harmony export BLUR_EFFECT */ | |
/* unused harmony export GROW_EFFECT */ | |
/* unused harmony export GROW_BIG_EFFECT */ | |
/* unused harmony export SHRINK_EFFECT */ | |
/* unused harmony export SHRINK_BIG_EFFECT */ | |
/* unused harmony export SPIN_EFFECT */ | |
/* unused harmony export FLY_EFFECT */ | |
/* unused harmony export POP_EFFECT */ | |
/* unused harmony export FLIP_EFFECT */ | |
/* unused harmony export JIGGLE_EFFECT */ | |
/* unused harmony export PULSE_EFFECT */ | |
/* unused harmony export DROP_EFFECT */ | |
/* unused harmony export BLINK_EFFECT */ | |
/* unused harmony export BOUNCE_EFFECT */ | |
/* unused harmony export FLIP_LEFT_TO_RIGHT_EFFECT */ | |
/* unused harmony export FLIP_RIGHT_TO_LEFT_EFFECT */ | |
/* unused harmony export RUBBER_BAND_EFFECT */ | |
/* unused harmony export JELLO_EFFECT */ | |
var TRANSFORM_MOVE = 'TRANSFORM_MOVE'; | |
var TRANSFORM_SCALE = 'TRANSFORM_SCALE'; | |
var TRANSFORM_ROTATE = 'TRANSFORM_ROTATE'; | |
var TRANSFORM_SKEW = 'TRANSFORM_SKEW'; | |
var STYLE_OPACITY = 'STYLE_OPACITY'; | |
var STYLE_SIZE = 'STYLE_SIZE'; | |
var STYLE_BOX_SHADOW = 'STYLE_BOX_SHADOW'; | |
var STYLE_FILTER = 'STYLE_FILTER'; | |
var STYLE_BACKGROUND_COLOR = 'STYLE_BACKGROUND_COLOR'; | |
var STYLE_BORDER = 'STYLE_BORDER'; | |
var STYLE_TEXT_COLOR = 'STYLE_TEXT_COLOR'; | |
var GENERAL_COMBO_CLASS = 'GENERAL_COMBO_CLASS'; | |
var GENERAL_DISPLAY = 'GENERAL_DISPLAY'; | |
var GENERAL_CONTINUOUS_ACTION = 'GENERAL_CONTINUOUS_ACTION'; | |
var GENERAL_START_ACTION = 'GENERAL_START_ACTION'; | |
var GENERAL_STOP_ACTION = 'GENERAL_STOP_ACTION'; | |
var GENERAL_LOOP = 'GENERAL_LOOP'; | |
var FADE_EFFECT = 'FADE_EFFECT'; | |
var SLIDE_EFFECT = 'SLIDE_EFFECT'; | |
var BLUR_EFFECT = 'BLUR_EFFECT'; | |
var GROW_EFFECT = 'GROW_EFFECT'; | |
var GROW_BIG_EFFECT = 'GROW_BIG_EFFECT'; | |
var SHRINK_EFFECT = 'SHRINK_EFFECT'; | |
var SHRINK_BIG_EFFECT = 'SHRINK_BIG_EFFECT'; | |
var SPIN_EFFECT = 'SPIN_EFFECT'; | |
var FLY_EFFECT = 'FLY_EFFECT'; | |
var POP_EFFECT = 'POP_EFFECT'; | |
var FLIP_EFFECT = 'FLIP_EFFECT'; | |
var JIGGLE_EFFECT = 'JIGGLE_EFFECT'; | |
var PULSE_EFFECT = 'PULSE_EFFECT'; | |
var DROP_EFFECT = 'DROP_EFFECT'; | |
var BLINK_EFFECT = 'BLINK_EFFECT'; | |
var BOUNCE_EFFECT = 'BOUNCE_EFFECT'; | |
var FLIP_LEFT_TO_RIGHT_EFFECT = 'FLIP_LEFT_TO_RIGHT_EFFECT'; | |
var FLIP_RIGHT_TO_LEFT_EFFECT = 'FLIP_RIGHT_TO_LEFT_EFFECT'; | |
var RUBBER_BAND_EFFECT = 'RUBBER_BAND_EFFECT'; | |
var JELLO_EFFECT = 'JELLO_EFFECT'; | |
/***/ }), | |
/* 41 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return MOUSE_CLICK; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return MOUSE_SECOND_CLICK; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return MOUSE_DOWN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return MOUSE_UP; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return MOUSE_OVER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return MOUSE_OUT; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return MOUSE_MOVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return SCROLL_INTO_VIEW; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return SCROLL_OUT_OF_VIEW; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return SCROLLING_IN_VIEW; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return TAB_ACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return TAB_INACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return NAVBAR_OPEN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return NAVBAR_CLOSE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return SLIDER_ACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return SLIDER_INACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return DROPDOWN_OPEN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return DROPDOWN_CLOSE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return COMPONENT_ACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return COMPONENT_INACTIVE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return PAGE_START; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return PAGE_FINISH; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return PAGE_SCROLL_UP; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return PAGE_SCROLL_DOWN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return PAGE_SCROLL; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return ELEMENT; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return VIEWPORT; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return PAGE; }); | |
var MOUSE_CLICK = 'MOUSE_CLICK'; | |
var MOUSE_SECOND_CLICK = 'MOUSE_SECOND_CLICK'; | |
var MOUSE_DOWN = 'MOUSE_DOWN'; | |
var MOUSE_UP = 'MOUSE_UP'; | |
var MOUSE_OVER = 'MOUSE_OVER'; | |
var MOUSE_OUT = 'MOUSE_OUT'; | |
var MOUSE_MOVE = 'MOUSE_MOVE'; | |
var SCROLL_INTO_VIEW = 'SCROLL_INTO_VIEW'; | |
var SCROLL_OUT_OF_VIEW = 'SCROLL_OUT_OF_VIEW'; | |
var SCROLLING_IN_VIEW = 'SCROLLING_IN_VIEW'; | |
var TAB_ACTIVE = 'TAB_ACTIVE'; | |
var TAB_INACTIVE = 'TAB_INACTIVE'; | |
var NAVBAR_OPEN = 'NAVBAR_OPEN'; | |
var NAVBAR_CLOSE = 'NAVBAR_CLOSE'; | |
var SLIDER_ACTIVE = 'SLIDER_ACTIVE'; | |
var SLIDER_INACTIVE = 'SLIDER_INACTIVE'; | |
var DROPDOWN_OPEN = 'DROPDOWN_OPEN'; | |
var DROPDOWN_CLOSE = 'DROPDOWN_CLOSE'; | |
var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; | |
var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; | |
var PAGE_START = 'PAGE_START'; | |
var PAGE_FINISH = 'PAGE_FINISH'; | |
var PAGE_SCROLL_UP = 'PAGE_SCROLL_UP'; | |
var PAGE_SCROLL_DOWN = 'PAGE_SCROLL_DOWN'; | |
var PAGE_SCROLL = 'PAGE_SCROLL'; | |
var ELEMENT = 'ELEMENT'; | |
var VIEWPORT = 'VIEWPORT'; | |
var PAGE = 'PAGE'; | |
/***/ }), | |
/* 42 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "n", function() { return IX2_ID_DELIMITER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "C", function() { return WF_PAGE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "y", function() { return TRANSFORM; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "z", function() { return TRANSLATE_X; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "A", function() { return TRANSLATE_Y; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "B", function() { return TRANSLATE_Z; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "s", function() { return SCALE_X; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "t", function() { return SCALE_Y; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "u", function() { return SCALE_Z; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "p", function() { return ROTATE_X; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "q", function() { return ROTATE_Y; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "r", function() { return ROTATE_Z; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "w", function() { return SKEW_X; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "x", function() { return SKEW_Y; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "o", function() { return OPACITY; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "D", function() { return WIDTH; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "l", function() { return HEIGHT; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return BACKGROUND_COLOR; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return BACKGROUND; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "e", function() { return BORDER_COLOR; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "h", function() { return COLOR; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "j", function() { return DISPLAY; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "k", function() { return FLEX; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "E", function() { return WILL_CHANGE; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return AUTO; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "i", function() { return COMMA_DELIMITER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "g", function() { return COLON_DELIMITER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return BAR_DELIMITER; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "f", function() { return CHILDREN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "m", function() { return IMMEDIATE_CHILDREN; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "v", function() { return SIBLINGS; }); | |
var IX2_ID_DELIMITER = '|'; | |
var WF_PAGE = 'data-wf-page'; | |
var TRANSFORM = 'transform'; | |
var TRANSLATE_X = 'translateX'; | |
var TRANSLATE_Y = 'translateY'; | |
var TRANSLATE_Z = 'translateZ'; | |
var SCALE_X = 'scaleX'; | |
var SCALE_Y = 'scaleY'; | |
var SCALE_Z = 'scaleZ'; | |
var ROTATE_X = 'rotateX'; | |
var ROTATE_Y = 'rotateY'; | |
var ROTATE_Z = 'rotateZ'; | |
var SKEW_X = 'skewX'; | |
var SKEW_Y = 'skewY'; | |
var OPACITY = 'opacity'; | |
var WIDTH = 'width'; | |
var HEIGHT = 'height'; | |
var BACKGROUND_COLOR = 'backgroundColor'; | |
var BACKGROUND = 'background'; | |
var BORDER_COLOR = 'borderColor'; | |
var COLOR = 'color'; | |
var DISPLAY = 'display'; | |
var FLEX = 'flex'; | |
var WILL_CHANGE = 'willChange'; | |
var AUTO = 'AUTO'; | |
var COMMA_DELIMITER = ','; | |
var COLON_DELIMITER = ':'; | |
var BAR_DELIMITER = '|'; | |
var CHILDREN = 'CHILDREN'; | |
var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; | |
var SIBLINGS = 'SIBLINGS'; | |
/***/ }), | |
/* 43 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "rawDataImported", function() { return rawDataImported; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sessionStarted", function() { return sessionStarted; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sessionStopped", function() { return sessionStopped; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "previewRequested", function() { return previewRequested; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "playbackRequested", function() { return playbackRequested; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "stopRequested", function() { return stopRequested; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "clearRequested", function() { return clearRequested; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "eventListenerAdded", function() { return eventListenerAdded; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "eventStateChanged", function() { return eventStateChanged; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationFrameChanged", function() { return animationFrameChanged; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "parameterChanged", function() { return parameterChanged; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "instanceAdded", function() { return instanceAdded; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "instanceStarted", function() { return instanceStarted; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "instanceRemoved", function() { return instanceRemoved; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "actionListPlaybackChanged", function() { return actionListPlaybackChanged; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "viewportWidthChanged", function() { return viewportWidthChanged; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__constants_IX2EngineItemTypes__ = __webpack_require__(40); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaUtils__ = __webpack_require__(39); | |
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; }; | |
var rawDataImported = function rawDataImported(rawData) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["l" /* IX2_RAW_DATA_IMPORTED */], | |
payload: _extends({}, Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaUtils__["l" /* reifyState */])(rawData)) | |
}; | |
}; | |
var sessionStarted = function sessionStarted() { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["m" /* IX2_SESSION_STARTED */], | |
payload: {} | |
}; | |
}; | |
var sessionStopped = function sessionStopped() { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["n" /* IX2_SESSION_STOPPED */], | |
payload: {} | |
}; | |
}; | |
var previewRequested = function previewRequested(_ref) { | |
var rawData = _ref.rawData; | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["k" /* IX2_PREVIEW_REQUESTED */], | |
payload: { | |
rawData: rawData | |
} | |
}; | |
}; | |
var playbackRequested = function playbackRequested(_ref2) { | |
var _ref2$actionTypeId = _ref2.actionTypeId, | |
actionTypeId = _ref2$actionTypeId === undefined ? __WEBPACK_IMPORTED_MODULE_1__constants_IX2EngineItemTypes__["c" /* GENERAL_START_ACTION */] : _ref2$actionTypeId, | |
actionListId = _ref2.actionListId, | |
actionItemId = _ref2.actionItemId, | |
eventId = _ref2.eventId, | |
allowEvents = _ref2.allowEvents, | |
immediate = _ref2.immediate, | |
verbose = _ref2.verbose, | |
rawData = _ref2.rawData; | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["j" /* IX2_PLAYBACK_REQUESTED */], | |
payload: { | |
actionTypeId: actionTypeId, | |
actionListId: actionListId, | |
actionItemId: actionItemId, | |
eventId: eventId, | |
allowEvents: allowEvents, | |
immediate: immediate, | |
verbose: verbose, | |
rawData: rawData | |
} | |
}; | |
}; | |
var stopRequested = function stopRequested(actionListId) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["o" /* IX2_STOP_REQUESTED */], | |
payload: { | |
actionListId: actionListId | |
} | |
}; | |
}; | |
var clearRequested = function clearRequested() { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["c" /* IX2_CLEAR_REQUESTED */], | |
payload: {} | |
}; | |
}; | |
var eventListenerAdded = function eventListenerAdded(target, listenerParams) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["d" /* IX2_EVENT_LISTENER_ADDED */], | |
payload: { | |
target: target, | |
listenerParams: listenerParams | |
} | |
}; | |
}; | |
var eventStateChanged = function eventStateChanged(stateKey, newState) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["e" /* IX2_EVENT_STATE_CHANGED */], | |
payload: { | |
stateKey: stateKey, | |
newState: newState | |
} | |
}; | |
}; | |
var animationFrameChanged = function animationFrameChanged(now, parameters) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["b" /* IX2_ANIMATION_FRAME_CHANGED */], | |
payload: { | |
now: now, | |
parameters: parameters | |
} | |
}; | |
}; | |
var parameterChanged = function parameterChanged(key, value) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["i" /* IX2_PARAMETER_CHANGED */], | |
payload: { | |
key: key, | |
value: value | |
} | |
}; | |
}; | |
var instanceAdded = function instanceAdded(options) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["f" /* IX2_INSTANCE_ADDED */], | |
payload: _extends({}, options) | |
}; | |
}; | |
var instanceStarted = function instanceStarted(instanceId) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["h" /* IX2_INSTANCE_STARTED */], | |
payload: { | |
instanceId: instanceId | |
} | |
}; | |
}; | |
var instanceRemoved = function instanceRemoved(instanceId) { | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["g" /* IX2_INSTANCE_REMOVED */], | |
payload: { | |
instanceId: instanceId | |
} | |
}; | |
}; | |
var actionListPlaybackChanged = function actionListPlaybackChanged(_ref3) { | |
var actionListId = _ref3.actionListId, | |
isPlaying = _ref3.isPlaying; | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["a" /* IX2_ACTION_LIST_PLAYBACK_CHANGED */], | |
payload: { | |
actionListId: actionListId, | |
isPlaying: isPlaying | |
} | |
}; | |
}; | |
var viewportWidthChanged = function viewportWidthChanged(_ref4) { | |
var width = _ref4.width, | |
mediaQueries = _ref4.mediaQueries; | |
return { | |
type: __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["p" /* IX2_VIEWPORT_WIDTH_CHANGED */], | |
payload: { | |
width: width, | |
mediaQueries: mediaQueries | |
} | |
}; | |
}; | |
/***/ }), | |
/* 44 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseCreate = __webpack_require__(80), | |
baseLodash = __webpack_require__(45); | |
/** | |
* 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; | |
/***/ }), | |
/* 45 */ | |
/***/ (function(module, exports) { | |
/** | |
* The function whose prototype chain sequence wrappers inherit from. | |
* | |
* @private | |
*/ | |
function baseLodash() { | |
// No operation performed. | |
} | |
module.exports = baseLodash; | |
/***/ }), | |
/* 46 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseCreate = __webpack_require__(80), | |
baseLodash = __webpack_require__(45); | |
/** 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; | |
/***/ }), | |
/* 47 */ | |
/***/ (function(module, exports) { | |
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; }; | |
/*! | |
* tram.js v0.8.2-global | |
* Cross-browser CSS3 transitions in JavaScript | |
* https://github.com/bkwld/tram | |
* MIT License | |
*/ | |
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: [" + (typeof b === "undefined" ? "undefined" : _typeof(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" == (typeof a === "undefined" ? "undefined" : _typeof(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 = typeof a === "undefined" ? "undefined" : _typeof(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" == (typeof a === "undefined" ? "undefined" : _typeof(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); | |
/***/ }), | |
/* 48 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createStore__ = __webpack_require__(49); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__combineReducers__ = __webpack_require__(103); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__bindActionCreators__ = __webpack_require__(104); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__applyMiddleware__ = __webpack_require__(105); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__compose__ = __webpack_require__(53); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__utils_warning__ = __webpack_require__(52); | |
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return __WEBPACK_IMPORTED_MODULE_0__createStore__["b"]; }); | |
/* harmony reexport (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return __WEBPACK_IMPORTED_MODULE_1__combineReducers__["a"]; }); | |
/* unused harmony reexport bindActionCreators */ | |
/* unused harmony reexport applyMiddleware */ | |
/* unused harmony reexport compose */ | |
/* | |
* 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) { | |
warning('You are currently using minified code outside of NODE_ENV === \'production\'. ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or DefinePlugin for webpack (http://stackoverflow.com/questions/30030031) ' + 'to ensure you have the correct code for your production build.'); | |
} | |
/***/ }), | |
/* 49 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ActionTypes; }); | |
/* harmony export (immutable) */ __webpack_exports__["b"] = createStore; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_es_isPlainObject__ = __webpack_require__(50); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_symbol_observable__ = __webpack_require__(100); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_symbol_observable___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_symbol_observable__); | |
/** | |
* 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(__WEBPACK_IMPORTED_MODULE_0_lodash_es_isPlainObject__["a" /* 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[__WEBPACK_IMPORTED_MODULE_1_symbol_observable___default.a] = 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[__WEBPACK_IMPORTED_MODULE_1_symbol_observable___default.a] = observable, _ref2; | |
} | |
/***/ }), | |
/* 50 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__ = __webpack_require__(92); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getPrototype_js__ = __webpack_require__(97); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__ = __webpack_require__(99); | |
/** `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(__WEBPACK_IMPORTED_MODULE_2__isObjectLike_js__["a" /* default */])(value) || Object(__WEBPACK_IMPORTED_MODULE_0__baseGetTag_js__["a" /* default */])(value) != objectTag) { | |
return false; | |
} | |
var proto = Object(__WEBPACK_IMPORTED_MODULE_1__getPrototype_js__["a" /* 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__["a"] = (isPlainObject); | |
/***/ }), | |
/* 51 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__root_js__ = __webpack_require__(93); | |
/** Built-in value references. */ | |
var Symbol = __WEBPACK_IMPORTED_MODULE_0__root_js__["a" /* default */].Symbol; | |
/* harmony default export */ __webpack_exports__["a"] = (Symbol); | |
/***/ }), | |
/* 52 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* unused harmony export default */ | |
/** | |
* 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 */ | |
} | |
/***/ }), | |
/* 53 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (immutable) */ __webpack_exports__["a"] = 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)); | |
}; | |
} | |
/***/ }), | |
/* 54 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (immutable) */ __webpack_exports__["b"] = optimizeFloat; | |
/* harmony export (immutable) */ __webpack_exports__["a"] = applyEasing; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__IX2Easings__ = __webpack_require__(112); | |
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 applyEasing(easing, position) { | |
if (position === 0) { | |
return 0; | |
} | |
if (position === 1) { | |
return 1; | |
} | |
return optimizeFloat(position > 0 && easing && __WEBPACK_IMPORTED_MODULE_0__IX2Easings__[easing] ? __WEBPACK_IMPORTED_MODULE_0__IX2Easings__[easing](position) : position); | |
} | |
/***/ }), | |
/* 55 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (immutable) */ __webpack_exports__["a"] = observeRequests; | |
/* harmony export (immutable) */ __webpack_exports__["c"] = startEngine; | |
/* harmony export (immutable) */ __webpack_exports__["e"] = stopEngine; | |
/* unused harmony export stopAllActionGroups */ | |
/* harmony export (immutable) */ __webpack_exports__["d"] = stopActionGroup; | |
/* harmony export (immutable) */ __webpack_exports__["b"] = startActionGroup; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_find__ = __webpack_require__(56); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_find___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_find__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get__ = __webpack_require__(19); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_get__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_size__ = __webpack_require__(180); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_size___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_size__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_omitBy__ = __webpack_require__(186); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3_lodash_omitBy___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3_lodash_omitBy__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isEmpty__ = __webpack_require__(200); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4_lodash_isEmpty___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_4_lodash_isEmpty__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_mapValues__ = __webpack_require__(201); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5_lodash_mapValues___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_5_lodash_mapValues__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_forEach__ = __webpack_require__(204); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_6_lodash_forEach__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_endsWith__ = __webpack_require__(208); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_7_lodash_endsWith___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_7_lodash_endsWith__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__ = __webpack_require__(39); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_9__constants_IX2EngineEventTypes__ = __webpack_require__(41); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__ = __webpack_require__(43); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ = __webpack_require__(213); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_12__constants_IX2EngineConstants__ = __webpack_require__(42); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_13__constants_IX2EngineItemTypes__ = __webpack_require__(40); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_14__IX2VanillaEvents__ = __webpack_require__(214); | |
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; }; | |
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | |
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } } | |
var ua = navigator.userAgent; | |
var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); | |
function observeRequests(store) { | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["j" /* observeStore */])({ | |
store: store, | |
select: function select(_ref) { | |
var ixRequest = _ref.ixRequest; | |
return ixRequest.preview; | |
}, | |
onChange: handlePreviewRequest | |
}); | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["j" /* observeStore */])({ | |
store: store, | |
select: function select(_ref2) { | |
var ixRequest = _ref2.ixRequest; | |
return ixRequest.playback; | |
}, | |
onChange: handlePlaybackRequest | |
}); | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["j" /* observeStore */])({ | |
store: store, | |
select: function select(_ref3) { | |
var ixRequest = _ref3.ixRequest; | |
return ixRequest.stop; | |
}, | |
onChange: handleStopRequest | |
}); | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["j" /* observeStore */])({ | |
store: store, | |
select: function select(_ref4) { | |
var ixRequest = _ref4.ixRequest; | |
return ixRequest.clear; | |
}, | |
onChange: handleClearRequest | |
}); | |
} | |
function handlePreviewRequest(_ref5, store) { | |
var rawData = _ref5.rawData; | |
startEngine({ store: store, rawData: rawData, allowEvents: true }); | |
document.dispatchEvent(new CustomEvent('IX2_PREVIEW_LOAD')); | |
} | |
function isQuickEffect(id) { | |
return id && __WEBPACK_IMPORTED_MODULE_7_lodash_endsWith___default()(id, '_EFFECT'); | |
} | |
function handlePlaybackRequest(playback, store) { | |
var actionTypeId = playback.actionTypeId, | |
actionListId = playback.actionListId, | |
actionItemId = playback.actionItemId, | |
eventId = playback.eventId, | |
allowEvents = playback.allowEvents, | |
immediate = playback.immediate, | |
_playback$verbose = playback.verbose, | |
verbose = _playback$verbose === undefined ? true : _playback$verbose; | |
var rawData = playback.rawData; | |
if (actionListId && actionItemId && rawData && immediate) { | |
rawData = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["k" /* reduceListToGroup */])({ | |
actionListId: actionListId, | |
actionItemId: actionItemId, | |
rawData: rawData | |
}); | |
} | |
startEngine({ store: store, rawData: rawData, allowEvents: allowEvents }); | |
if (actionListId && actionTypeId === __WEBPACK_IMPORTED_MODULE_13__constants_IX2EngineItemTypes__["c" /* 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(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["actionListPlaybackChanged"])({ actionListId: actionListId, isPlaying: !immediate })); | |
} | |
} | |
} | |
function handleStopRequest(_ref6, store) { | |
var actionListId = _ref6.actionListId; | |
if (actionListId) { | |
stopActionGroup({ store: store, actionListId: actionListId }); | |
} else { | |
stopAllActionGroups({ store: store }); | |
} | |
stopEngine(store); | |
} | |
function handleClearRequest(state, store) { | |
stopEngine(store); | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["b" /* clearAllStyles */])({ store: store, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
} | |
function startEngine(_ref7) { | |
var store = _ref7.store, | |
rawData = _ref7.rawData, | |
allowEvents = _ref7.allowEvents; | |
var _store$getState = store.getState(), | |
ixSession = _store$getState.ixSession; | |
if (rawData) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["rawDataImported"])(rawData)); | |
} | |
if (!ixSession.active) { | |
if (allowEvents) { | |
bindEvents(store); | |
} | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["sessionStarted"])()); | |
startRenderLoop(store); | |
} | |
} | |
function startRenderLoop(store) { | |
var handleFrame = function handleFrame(now) { | |
var _store$getState2 = store.getState(), | |
ixSession = _store$getState2.ixSession, | |
ixParameters = _store$getState2.ixParameters; | |
if (ixSession.active) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["animationFrameChanged"])(now, ixParameters)); | |
requestAnimationFrame(handleFrame); | |
} | |
}; | |
handleFrame(window.performance.now()); | |
} | |
function stopEngine(store) { | |
var _store$getState3 = store.getState(), | |
ixSession = _store$getState3.ixSession; | |
if (ixSession.active) { | |
var eventListeners = ixSession.eventListeners; | |
eventListeners.forEach(clearEventListener); | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["sessionStopped"])()); | |
} | |
} | |
function clearEventListener(_ref8) { | |
var target = _ref8.target, | |
listenerParams = _ref8.listenerParams; | |
target.removeEventListener.apply(target, listenerParams); | |
} | |
function createGroupInstances(_ref9) { | |
var store = _ref9.store, | |
eventStateKey = _ref9.eventStateKey, | |
eventTarget = _ref9.eventTarget, | |
eventId = _ref9.eventId, | |
eventConfig = _ref9.eventConfig, | |
actionListId = _ref9.actionListId, | |
parameterGroup = _ref9.parameterGroup, | |
smoothing = _ref9.smoothing, | |
restingValue = _ref9.restingValue; | |
var _store$getState4 = store.getState(), | |
ixData = _store$getState4.ixData; | |
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 (Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["o" /* shouldNamespaceEventParameter */])(eventTypeId, eventConfig)) { | |
parameterId = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["i" /* getNamespacedParameterId */])(eventStateKey, parameterId); | |
} | |
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 key = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["p" /* stringifyTarget */])(target) + __WEBPACK_IMPORTED_MODULE_12__constants_IX2EngineConstants__["g" /* COLON_DELIMITER */] + actionTypeId; | |
instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); | |
if (!targetCache[key]) { | |
targetCache[key] = true; | |
var config = actionItem.config; | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["c" /* getAffectedElements */])({ config: config, event: event, eventTarget: eventTarget, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }).forEach(function (element) { | |
instanceConfigs.push({ element: element, key: key }); | |
}); | |
} | |
}); | |
}); | |
instanceConfigs.forEach(function (_ref10) { | |
var element = _ref10.element, | |
key = _ref10.key; | |
var actionGroups = instanceActionGroups[key]; | |
var actionItem = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(actionGroups, '[0].actionItems[0]', {}); | |
var destination = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["e" /* getDestinationValues */])({ element: element, actionItem: actionItem, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
createInstance({ | |
store: store, | |
element: element, | |
eventId: eventId, | |
actionListId: actionListId, | |
actionItem: actionItem, | |
destination: destination, | |
continuous: true, | |
parameterId: parameterId, | |
actionGroups: actionGroups, | |
smoothing: smoothing, | |
restingValue: restingValue | |
}); | |
}); | |
} | |
function appendActionItem() { | |
var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | |
var keyframe = arguments[1]; | |
var actionItem = arguments[2]; | |
var newActionGroups = [].concat(_toConsumableArray(actionGroups)); | |
var groupIndex = void 0; | |
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; | |
__WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default()(eventTypeMap, function (events, key) { | |
var logic = __WEBPACK_IMPORTED_MODULE_14__IX2VanillaEvents__["a" /* default */][key]; | |
if (!logic) { | |
console.warn('IX2 event type not configured: ' + 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) { | |
WINDOW_RESIZE_EVENTS.forEach(function (type) { | |
window.addEventListener(type, handleResize); | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["eventListenerAdded"])(window, [type, handleResize])); | |
}); | |
function handleResize() { | |
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(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["viewportWidthChanged"])({ width: width, mediaQueries: mediaQueries })); | |
} | |
} | |
handleResize(); | |
} | |
var mapFoundValues = function mapFoundValues(object, iteratee) { | |
return __WEBPACK_IMPORTED_MODULE_3_lodash_omitBy___default()(__WEBPACK_IMPORTED_MODULE_5_lodash_mapValues___default()(object, iteratee), __WEBPACK_IMPORTED_MODULE_4_lodash_isEmpty___default.a); | |
}; | |
var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { | |
__WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default()(eventTargets, function (elements, eventId) { | |
elements.forEach(function (element, index) { | |
var eventStateKey = eventId + __WEBPACK_IMPORTED_MODULE_12__constants_IX2EngineConstants__["g" /* COLON_DELIMITER */] + index; | |
eventCallback(element, eventId, eventStateKey); | |
}); | |
}); | |
}; | |
var getAffectedForEvent = function getAffectedForEvent(event) { | |
var config = { target: event.target }; | |
return Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["c" /* getAffectedElements */])({ config: config, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
}; | |
function bindEventType(_ref11) { | |
var logic = _ref11.logic, | |
store = _ref11.store, | |
events = _ref11.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 (!__WEBPACK_IMPORTED_MODULE_2_lodash_size___default()(eventTargets)) { | |
return; | |
} | |
__WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default()(eventTargets, function (elements, key) { | |
var event = events[key]; | |
var eventAction = event.action, | |
eventId = event.id; | |
var actionListId = eventAction.config.actionListId; | |
if (eventAction.actionTypeId === __WEBPACK_IMPORTED_MODULE_13__constants_IX2EngineItemTypes__["a" /* GENERAL_CONTINUOUS_ACTION */]) { | |
var configs = Array.isArray(event.config) ? event.config : [event.config]; | |
configs.forEach(function (eventConfig) { | |
var continuousParameterGroupId = eventConfig.continuousParameterGroupId; | |
var paramGroups = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(actionLists, actionListId + '.continuousParameterGroups', []); | |
var parameterGroup = __WEBPACK_IMPORTED_MODULE_0_lodash_find___default()(paramGroups, function (_ref12) { | |
var id = _ref12.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 + __WEBPACK_IMPORTED_MODULE_12__constants_IX2EngineConstants__["g" /* 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 === __WEBPACK_IMPORTED_MODULE_13__constants_IX2EngineItemTypes__["c" /* 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$mediaQueries = event.mediaQueries, | |
mediaQueries = _event$mediaQueries === undefined ? ixData.mediaQueryKeys : _event$mediaQueries; | |
// Bypass event handler if current media query is not listed in event config | |
if (!Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["n" /* 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 (newState !== oldState) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["eventStateChanged"])(eventStateKey, newState)); | |
} | |
}; | |
if (eventAction.actionTypeId === __WEBPACK_IMPORTED_MODULE_13__constants_IX2EngineItemTypes__["a" /* GENERAL_CONTINUOUS_ACTION */]) { | |
var configs = Array.isArray(event.config) ? event.config : [event.config]; | |
configs.forEach(handleEventWithConfig); | |
} else { | |
handleEventWithConfig(); | |
} | |
}); | |
}; | |
var addListeners = function addListeners(_ref13) { | |
var _ref13$target = _ref13.target, | |
target = _ref13$target === undefined ? document : _ref13$target, | |
types = _ref13.types; | |
types.split(' ').filter(Boolean).forEach(function (type) { | |
target.addEventListener(type, handleEvent); | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["eventListenerAdded"])(target, [type, handleEvent])); | |
}); | |
}; | |
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 = __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__["getQuerySelector"](target); | |
if (injectedSelectors[selector]) { | |
continue; | |
} | |
// add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices | |
if (eventTypeId === __WEBPACK_IMPORTED_MODULE_9__constants_IX2EngineEventTypes__["f" /* MOUSE_CLICK */] || eventTypeId === __WEBPACK_IMPORTED_MODULE_9__constants_IX2EngineEventTypes__["k" /* MOUSE_SECOND_CLICK */]) { | |
injectedSelectors[selector] = true; | |
cssText += selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; | |
} | |
} | |
if (cssText) { | |
var style = document.createElement("style"); | |
style.textContent = cssText; | |
document.body.appendChild(style); | |
} | |
} | |
function renderInitialGroup(_ref14) { | |
var store = _ref14.store, | |
actionListId = _ref14.actionListId, | |
eventId = _ref14.eventId; | |
var _store$getState10 = store.getState(), | |
ixData = _store$getState10.ixData; | |
var actionLists = ixData.actionLists, | |
events = ixData.events; | |
var event = events[eventId]; | |
var actionList = actionLists[actionListId]; | |
if (actionList && actionList.useFirstGroupAsInitialState) { | |
var initialStateItems = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(actionList, 'actionItemGroups[0].actionItems', []); | |
initialStateItems.forEach(function (actionItem) { | |
var config = actionItem.config; | |
var itemElements = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["c" /* getAffectedElements */])({ config: config, event: event, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
itemElements.forEach(function (element) { | |
createInstance({ | |
destination: Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["e" /* getDestinationValues */])({ element: element, actionItem: actionItem, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }), | |
origin: Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["g" /* getInstanceOrigin */])({ element: element, actionItem: actionItem, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }), | |
immediate: true, | |
store: store, | |
element: element, | |
eventId: eventId, | |
actionItem: actionItem, | |
actionListId: actionListId | |
}); | |
}); | |
}); | |
} | |
} | |
function stopAllActionGroups(_ref15) { | |
var store = _ref15.store; | |
var _store$getState11 = store.getState(), | |
ixInstances = _store$getState11.ixInstances; | |
__WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default()(ixInstances, function (instance) { | |
if (!instance.continuous) { | |
var actionListId = instance.actionListId, | |
verbose = instance.verbose; | |
removeInstance(instance, store); | |
if (verbose) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["actionListPlaybackChanged"])({ actionListId: actionListId, isPlaying: false })); | |
} | |
} | |
}); | |
} | |
function stopActionGroup(_ref16) { | |
var store = _ref16.store, | |
eventId = _ref16.eventId, | |
actionListId = _ref16.actionListId; | |
var _store$getState12 = store.getState(), | |
ixInstances = _store$getState12.ixInstances; | |
__WEBPACK_IMPORTED_MODULE_6_lodash_forEach___default()(ixInstances, function (instance) { | |
if (instance.actionListId === actionListId && instance.eventId === eventId) { | |
removeInstance(instance, store); | |
if (instance.verbose) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["actionListPlaybackChanged"])({ actionListId: actionListId, isPlaying: false })); | |
} | |
} | |
}); | |
} | |
function startActionGroup(_ref17) { | |
var store = _ref17.store, | |
eventId = _ref17.eventId, | |
eventTarget = _ref17.eventTarget, | |
actionListId = _ref17.actionListId, | |
_ref17$groupIndex = _ref17.groupIndex, | |
groupIndex = _ref17$groupIndex === undefined ? 0 : _ref17$groupIndex, | |
immediate = _ref17.immediate, | |
verbose = _ref17.verbose; | |
var _store$getState13 = store.getState(), | |
ixData = _store$getState13.ixData, | |
ixSession = _store$getState13.ixSession; | |
var events = ixData.events; | |
var event = events[eventId] || {}; | |
var _event$mediaQueries2 = event.mediaQueries, | |
mediaQueries = _event$mediaQueries2 === undefined ? ixData.mediaQueryKeys : _event$mediaQueries2; | |
var actionList = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(ixData, 'actionLists.' + actionListId, {}); | |
var actionItemGroups = actionList.actionItemGroups; | |
// Reset to first group when event loop is configured | |
if (groupIndex >= actionItemGroups.length && __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(event, 'config.loop')) { | |
groupIndex = 0; | |
} | |
// Skip initial state group during action list playback, as it should already be applied | |
if (groupIndex === 0 && actionList.useFirstGroupAsInitialState) { | |
groupIndex++; | |
} | |
// Abort playback if no action items exist at group index | |
var actionItems = __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(actionItemGroups, [groupIndex, 'actionItems'], []); | |
if (!actionItems.length) { | |
return false; | |
} | |
// Abort playback if current media query is not listed in event config | |
if (!Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["n" /* shouldAllowMediaQuery */])(mediaQueries, ixSession.mediaQueryKey)) { | |
return false; | |
} | |
var carrierIndex = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["h" /* getMaxDurationItemIndex */])(actionItems); | |
var groupStartResult = false; | |
actionItems.forEach(function (actionItem, actionIndex) { | |
var config = actionItem.config; | |
var elements = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["c" /* getAffectedElements */])({ config: config, event: event, eventTarget: eventTarget, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
elements.forEach(function (element, elementIndex) { | |
groupStartResult = true; | |
var isCarrier = carrierIndex === actionIndex && elementIndex === 0; | |
var computedStyle = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["d" /* getComputedStyle */])({ element: element, actionItem: actionItem }); | |
var origin = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["g" /* getInstanceOrigin */])({ element: element, actionItem: actionItem, computedStyle: computedStyle, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
var destination = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["e" /* getDestinationValues */])({ element: element, actionItem: actionItem, elementApi: __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__ }); | |
createInstance({ | |
store: store, | |
element: element, | |
actionItem: actionItem, | |
eventId: eventId, | |
eventTarget: eventTarget, | |
actionListId: actionListId, | |
groupIndex: groupIndex, | |
isCarrier: isCarrier, | |
origin: origin, | |
destination: destination, | |
immediate: immediate, | |
verbose: verbose | |
}); | |
}); | |
}); | |
return groupStartResult; | |
} | |
function createInstance(options) { | |
var store = options.store, | |
rest = _objectWithoutProperties(options, ['store']); | |
var autoStart = !rest.continuous; | |
var immediate = rest.immediate; | |
var instanceId = Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["f" /* getInstanceId */])(); | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["instanceAdded"])(_extends({ | |
instanceId: instanceId | |
}, rest))); | |
if (immediate) { | |
renderImmediateInstance(store, instanceId); | |
return; | |
} | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["j" /* observeStore */])({ | |
store: store, | |
select: function select(_ref18) { | |
var ixInstances = _ref18.ixInstances; | |
return ixInstances[instanceId]; | |
}, | |
onChange: handleInstanceChange | |
}); | |
if (autoStart) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["instanceStarted"])(instanceId)); | |
} | |
} | |
function removeInstance(instance, store) { | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["a" /* cleanupInstance */])(instance, __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__); | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["instanceRemoved"])(instance.id)); | |
} | |
function renderImmediateInstance(store, instanceId) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["instanceStarted"])(instanceId)); | |
var _store$getState14 = store.getState(), | |
ixParameters = _store$getState14.ixParameters; | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["animationFrameChanged"])(Number.POSITIVE_INFINITY, ixParameters)); | |
var _store$getState15 = store.getState(), | |
ixInstances = _store$getState15.ixInstances; | |
handleInstanceChange(ixInstances[instanceId], store); | |
} | |
function handleInstanceChange(instance, store) { | |
// TODO: look for null element/parent | |
var active = instance.active, | |
continuous = instance.continuous, | |
complete = instance.complete, | |
current = instance.current, | |
groupIndex = instance.groupIndex, | |
eventId = instance.eventId, | |
eventTarget = instance.eventTarget, | |
actionListId = instance.actionListId, | |
isGeneral = instance.isGeneral, | |
isCarrier = instance.isCarrier, | |
verbose = instance.verbose; | |
// Bypass render if current media query is not listed in event config | |
var _store$getState16 = store.getState(), | |
ixData = _store$getState16.ixData, | |
ixSession = _store$getState16.ixSession; | |
var events = ixData.events; | |
var event = events[eventId] || {}; | |
var _event$mediaQueries3 = event.mediaQueries, | |
mediaQueries = _event$mediaQueries3 === undefined ? ixData.mediaQueryKeys : _event$mediaQueries3; | |
if (!Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["n" /* shouldAllowMediaQuery */])(mediaQueries, ixSession.mediaQueryKey)) { | |
return; | |
} | |
if (continuous || active || complete) { | |
if (current || isGeneral && complete) { | |
Object(__WEBPACK_IMPORTED_MODULE_8__IX2VanillaUtils__["m" /* renderInstance */])(instance, __WEBPACK_IMPORTED_MODULE_11__IX2BrowserApi__); | |
} | |
if (complete) { | |
if (isCarrier) { | |
var started = startActionGroup({ store: store, eventId: eventId, eventTarget: eventTarget, actionListId: actionListId, groupIndex: groupIndex + 1, verbose: verbose }); | |
if (verbose && !started) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_10__actions_IX2EngineActions__["actionListPlaybackChanged"])({ actionListId: actionListId, isPlaying: false })); | |
} | |
} | |
removeInstance(instance, store); | |
} | |
} | |
} | |
/***/ }), | |
/* 56 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var createFind = __webpack_require__(115), | |
findIndex = __webpack_require__(177); | |
/** | |
* 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; | |
/***/ }), | |
/* 57 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var ListCache = __webpack_require__(13), | |
stackClear = __webpack_require__(123), | |
stackDelete = __webpack_require__(124), | |
stackGet = __webpack_require__(125), | |
stackHas = __webpack_require__(126), | |
stackSet = __webpack_require__(127); | |
/** | |
* 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; | |
/***/ }), | |
/* 58 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetTag = __webpack_require__(8), | |
isObject = __webpack_require__(3); | |
/** `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; | |
/***/ }), | |
/* 59 */ | |
/***/ (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(exports, __webpack_require__(22))) | |
/***/ }), | |
/* 60 */ | |
/***/ (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; | |
/***/ }), | |
/* 61 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsEqualDeep = __webpack_require__(146), | |
isObject = __webpack_require__(3), | |
isObjectLike = __webpack_require__(5); | |
/** | |
* 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 || (!isObject(value) && !isObjectLike(other))) { | |
return value !== value && other !== other; | |
} | |
return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); | |
} | |
module.exports = baseIsEqual; | |
/***/ }), | |
/* 62 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var SetCache = __webpack_require__(147), | |
arraySome = __webpack_require__(150), | |
cacheHas = __webpack_require__(151); | |
/** 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; | |
} | |
// Assume cyclic values are equal. | |
var stacked = stack.get(array); | |
if (stacked && stack.get(other)) { | |
return stacked == other; | |
} | |
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; | |
/***/ }), | |
/* 63 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseTimes = __webpack_require__(157), | |
isArguments = __webpack_require__(18), | |
isArray = __webpack_require__(0), | |
isBuffer = __webpack_require__(27), | |
isIndex = __webpack_require__(28), | |
isTypedArray = __webpack_require__(29); | |
/** 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; | |
/***/ }), | |
/* 64 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4), | |
root = __webpack_require__(1); | |
/* Built-in method references that are verified to be native. */ | |
var WeakMap = getNative(root, 'WeakMap'); | |
module.exports = WeakMap; | |
/***/ }), | |
/* 65 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isObject = __webpack_require__(3); | |
/** | |
* 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; | |
/***/ }), | |
/* 66 */ | |
/***/ (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; | |
/***/ }), | |
/* 67 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseToString = __webpack_require__(68); | |
/** | |
* 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; | |
/***/ }), | |
/* 68 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Symbol = __webpack_require__(10), | |
arrayMap = __webpack_require__(69), | |
isArray = __webpack_require__(0), | |
isSymbol = __webpack_require__(21); | |
/** 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; | |
/***/ }), | |
/* 69 */ | |
/***/ (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; | |
/***/ }), | |
/* 70 */ | |
/***/ (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; | |
/***/ }), | |
/* 71 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var toFinite = __webpack_require__(179); | |
/** | |
* 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; | |
/***/ }), | |
/* 72 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isObject = __webpack_require__(3), | |
isSymbol = __webpack_require__(21); | |
/** 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; | |
/***/ }), | |
/* 73 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var defineProperty = __webpack_require__(74); | |
/** | |
* 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; | |
/***/ }), | |
/* 74 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4); | |
var defineProperty = (function() { | |
try { | |
var func = getNative(Object, 'defineProperty'); | |
func({}, '', {}); | |
return func; | |
} catch (e) {} | |
}()); | |
module.exports = defineProperty; | |
/***/ }), | |
/* 75 */ | |
/***/ (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; | |
/***/ }), | |
/* 76 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseFor = __webpack_require__(202), | |
keys = __webpack_require__(17); | |
/** | |
* 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; | |
/***/ }), | |
/* 77 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseForOwn = __webpack_require__(76), | |
createBaseEach = __webpack_require__(206); | |
/** | |
* 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; | |
/***/ }), | |
/* 78 */ | |
/***/ (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; | |
/***/ }), | |
/* 79 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return IS_BROWSER_ENV; }); | |
/* unused harmony export withBrowser */ | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ELEMENT_MATCHES; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return FLEX_PREFIXED; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return TRANSFORM_PREFIXED; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_find__ = __webpack_require__(56); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_find___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_find__); | |
var IS_BROWSER_ENV = typeof window !== 'undefined'; | |
var withBrowser = function withBrowser(fn, fallback) { | |
if (IS_BROWSER_ENV) { | |
return fn(); | |
} | |
return fallback; | |
}; | |
var ELEMENT_MATCHES = withBrowser(function () { | |
return __WEBPACK_IMPORTED_MODULE_0_lodash_find___default()(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { | |
return key in Element.prototype; | |
}); | |
}); | |
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'); | |
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; | |
if (el.style[prop] !== undefined) { | |
return prop; | |
} | |
} | |
} | |
return 'transform'; | |
}, 'transform'); | |
/***/ }), | |
/* 80 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isObject = __webpack_require__(3); | |
/** 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; | |
/***/ }), | |
/* 81 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var metaMap = __webpack_require__(227), | |
noop = __webpack_require__(228); | |
/** | |
* 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; | |
/***/ }), | |
/* 82 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var realNames = __webpack_require__(229); | |
/** 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; | |
/***/ }), | |
/* 83 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
__webpack_require__(84); | |
__webpack_require__(87); | |
__webpack_require__(88); | |
__webpack_require__(90); | |
__webpack_require__(235); | |
__webpack_require__(236); | |
module.exports = __webpack_require__(237); | |
/***/ }), | |
/* 84 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Background Video component | |
*/ | |
var Webflow = __webpack_require__(2); | |
var WebflowEnv = __webpack_require__(86); | |
Webflow.define('backgroundVideo', module.exports = function ($) { | |
function ready() { | |
// Prevent default render while in-app | |
if (Webflow.env()) { | |
return; | |
} | |
var backgroundVideoNodes = $(document).find('.w-background-video').not('.w-background-video-atom'); | |
if (backgroundVideoNodes.length === 0) { | |
return; | |
} | |
backgroundVideoNodes.each(function (_, node) { | |
var video = createVideoNode(node); | |
if (video) { | |
$(node).prepend(video); | |
} | |
}); | |
} | |
function createVideoNode(nativeNode) { | |
var nodeData = $(nativeNode).data(); | |
if (!nodeData.videoUrls) { | |
return; | |
} | |
// Prevent loading the videos on mobile browsers as its likely that they | |
// are on low-bandwidth connections. | |
if (WebflowEnv.isMobile()) { | |
if (nodeData.posterUrl) { | |
return $('<div class="w-background-video-poster">').css({ | |
backgroundImage: 'url(' + nodeData.posterUrl + ')', | |
backgroundSize: 'cover', | |
backgroundPosition: '50% 50%', | |
position: 'absolute', | |
// zIndex needed for video poster to render behind a background set | |
// on the div.w-background-video | |
zIndex: -100, | |
width: '100%', | |
height: '100%', | |
top: 0, | |
left: 0 | |
}); | |
} | |
return; | |
} | |
var videoURLs = nodeData.videoUrls.split(','); | |
var sourceNodes = videoURLs.map(function (url) { | |
return $('<source />').attr({ | |
src: url, | |
'data-wf-ignore': '' | |
}); | |
}); | |
var videoNode = $('<video />').attr({ | |
autoplay: nodeData.autoplay, | |
loop: nodeData.loop | |
}).css('background-image', 'url(' + nodeData.posterUrl + ')'); | |
videoNode.append(sourceNodes); | |
return videoNode; | |
} | |
return { ready: ready }; | |
}); | |
/***/ }), | |
/* 85 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
// Include tram for frame-throttling | |
var $ = window.$; | |
var tram = __webpack_require__(47) && $.tram; | |
/*eslint-disable */ | |
/*! | |
* 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: | |
var ArrayProto = Array.prototype, | |
ObjProto = Object.prototype, | |
FuncProto = Function.prototype; | |
// Create quick reference variables for speed access to core prototypes. | |
var push = ArrayProto.push, | |
slice = ArrayProto.slice, | |
concat = ArrayProto.concat, | |
toString = ObjProto.toString, | |
hasOwnProperty = ObjProto.hasOwnProperty; | |
// All **ECMAScript 5** native function implementations that we hope to use | |
// are declared here. | |
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; | |
// 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); | |
} 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); | |
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; | |
}; | |
// 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) 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) { | |
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) { | |
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) { | |
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 { | |
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 */ | |
/***/ }), | |
/* 86 */ | |
/***/ (function(module, exports) { | |
/** | |
* Returns a Boolean representing whether or not the client is a mobile browser. | |
* | |
* NOTE: Many thanks to detectmobilebrowsers.com for this user agent detection | |
* regex, without which the mobile internet probably wouldn't exist. | |
*/ | |
exports.isMobile = function () { | |
var userAgent = navigator.userAgent || navigator.vendor || window.opera; | |
return (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(userAgent) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(userAgent.substr(0, 4)) | |
); | |
}; | |
/***/ }), | |
/* 87 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Brand pages on the subdomain | |
*/ | |
var Webflow = __webpack_require__(2); | |
Webflow.define('brand', module.exports = function ($) { | |
var api = {}; | |
var $html = $('html'); | |
var $body = $('body'); | |
var namespace = '.w-webflow-badge'; | |
var location = window.location; | |
var isPhantom = /PhantomJS/i.test(navigator.userAgent); | |
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); | |
} | |
}; | |
function createBadge() { | |
var $brand = $('<a class="w-webflow-badge"></a>').attr('href', 'https://webflow.com?utm_campaign=brandjs'); | |
var $logoArt = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-icon.60efbf6ec9.svg').css({ | |
marginRight: '8px', | |
width: '16px' | |
}); | |
var $logoText = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg'); | |
$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; | |
}); | |
/***/ }), | |
/* 88 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Interactions | |
*/ | |
var Webflow = __webpack_require__(2); | |
var IXEvents = __webpack_require__(89); | |
Webflow.define('ix', module.exports = function ($, _) { | |
var api = {}; | |
var designer; | |
var $win = $(window); | |
var namespace = '.w-ix'; | |
var tram = $.tram; | |
var env = Webflow.env; | |
var inApp = env(); | |
var emptyFix = env.chrome && env.chrome < 35; | |
var transNone = 'none 0s ease 0s'; | |
var $subs = $(); | |
var config = {}; | |
var anchors = []; | |
var loads = []; | |
var readys = []; | |
var destroyed; | |
var readyDelay = 1; | |
// Component types and proxy selectors | |
var components = { | |
tabs: '.w-tab-link, .w-tab-pane', | |
dropdown: '.w-dropdown', | |
slider: '.w-slide', | |
navbar: '.w-nav' | |
}; | |
// ----------------------------------- | |
// Module methods | |
api.init = function (list) { | |
setTimeout(function () { | |
configure(list); | |
}, 1); | |
}; | |
api.preview = function () { | |
designer = false; | |
readyDelay = 100; | |
setTimeout(function () { | |
configure(window.__wf_ix); | |
}, 1); | |
}; | |
api.design = function () { | |
designer = true; | |
api.destroy(); | |
}; | |
api.destroy = function () { | |
destroyed = true; | |
$subs.each(teardown); | |
Webflow.scroll.off(scroll); | |
IXEvents.async(); | |
anchors = []; | |
loads = []; | |
readys = []; | |
}; | |
api.ready = function () { | |
// Redirect IX init while in design/preview modes | |
if (inApp) return env('design') ? api.design() : api.preview(); | |
// Ready should only be used after destroy, as a way to re-init | |
if (config && destroyed) { | |
destroyed = false; | |
init(); | |
} | |
}; | |
api.run = run; | |
api.style = inApp ? styleApp : stylePub; | |
// ----------------------------------- | |
// Private methods | |
function configure(list) { | |
if (!list) return; | |
// Map all interactions by slug | |
config = {}; | |
_.each(list, function (item) { | |
config[item.slug] = item.value; | |
}); | |
// Init ix after config | |
init(); | |
} | |
function init() { | |
initIX1Engine(); | |
// Need init IXEvents regardless if IX1 events exist since | |
// IXEvents _also_ dispatch IX2 events. | |
// Trigger queued events, must happen after init | |
IXEvents.init(); | |
// Trigger a redraw to ensure all IX intros play | |
Webflow.redraw.up(); | |
} | |
function initIX1Engine() { | |
// Build each element's interaction keying from data attribute | |
var els = $('[data-ix]'); | |
if (!els.length) { | |
return; | |
} | |
els.each(teardown); | |
els.each(build); | |
// Listen for scroll events if any anchors exist | |
if (anchors.length) { | |
Webflow.scroll.on(scroll); | |
setTimeout(scroll, 1); | |
} | |
// Handle loads or readys if they exist | |
if (loads.length) Webflow.load(runLoads); | |
if (readys.length) setTimeout(runReadys, readyDelay); | |
} | |
function build(i, el) { | |
var $el = $(el); | |
var id = $el.attr('data-ix'); | |
var ix = config[id]; | |
if (!ix) return; | |
var triggers = ix.triggers; | |
if (!triggers) return; | |
// Set styles immediately to provide tram with starting transform values | |
api.style($el, ix.style); | |
_.each(triggers, function (trigger) { | |
var state = {}; | |
var type = trigger.type; | |
var stepsB = trigger.stepsB && trigger.stepsB.length; | |
function runA() { | |
run(trigger, $el, { group: 'A' }); | |
} | |
function runB() { | |
run(trigger, $el, { group: 'B' }); | |
} | |
if (type === 'load') { | |
trigger.preload && !inApp ? loads.push(runA) : readys.push(runA); | |
return; | |
} | |
if (type === 'click') { | |
$el.on('click' + namespace, function (evt) { | |
// Avoid late clicks on touch devices | |
if (!Webflow.validClick(evt.currentTarget)) return; | |
// Prevent default on empty hash urls | |
if ($el.attr('href') === '#') evt.preventDefault(); | |
run(trigger, $el, { group: state.clicked ? 'B' : 'A' }); | |
if (stepsB) state.clicked = !state.clicked; | |
}); | |
$subs = $subs.add($el); | |
return; | |
} | |
if (type === 'hover') { | |
$el.on('mouseenter' + namespace, runA); | |
$el.on('mouseleave' + namespace, runB); | |
$subs = $subs.add($el); | |
return; | |
} | |
if (type === 'scroll') { | |
anchors.push({ | |
el: $el, trigger: trigger, state: { active: false }, | |
offsetTop: convert(trigger.offsetTop), | |
offsetBot: convert(trigger.offsetBot) | |
}); | |
return; | |
} | |
// Check for a proxy component selector | |
// type == [tabs, dropdown, slider, navbar] | |
var proxy = components[type]; | |
if (proxy) { | |
var $proxy = $el.closest(proxy); | |
$proxy.on(IXEvents.types.INTRO, runA).on(IXEvents.types.OUTRO, runB); | |
$subs = $subs.add($proxy); | |
return; | |
} | |
}); | |
} | |
function convert(offset) { | |
if (!offset) return 0; | |
offset = String(offset); | |
var result = parseInt(offset, 10); | |
if (result !== result) return 0; | |
if (offset.indexOf('%') > 0) { | |
result /= 100; | |
if (result >= 1) result = 0.999; | |
} | |
return result; | |
} | |
function teardown(i, el) { | |
$(el).off(namespace); | |
} | |
function scroll() { | |
var viewTop = $win.scrollTop(); | |
var viewHeight = $win.height(); | |
// Check each anchor for a valid scroll trigger | |
var count = anchors.length; | |
for (var i = 0; i < count; i++) { | |
var anchor = anchors[i]; | |
var $el = anchor.el; | |
var trigger = anchor.trigger; | |
var stepsB = trigger.stepsB && trigger.stepsB.length; | |
var state = anchor.state; | |
var top = $el.offset().top; | |
var height = $el.outerHeight(); | |
var offsetTop = anchor.offsetTop; | |
var offsetBot = anchor.offsetBot; | |
if (offsetTop < 1 && offsetTop > 0) offsetTop *= viewHeight; | |
if (offsetBot < 1 && offsetBot > 0) offsetBot *= viewHeight; | |
var active = top + height - offsetTop >= viewTop && top + offsetBot <= viewTop + viewHeight; | |
if (active === state.active) continue; | |
if (active === false && !stepsB) continue; | |
state.active = active; | |
run(trigger, $el, { group: active ? 'A' : 'B' }); | |
} | |
} | |
function runLoads() { | |
var count = loads.length; | |
for (var i = 0; i < count; i++) { | |
loads[i](); | |
} | |
} | |
function runReadys() { | |
var count = readys.length; | |
for (var i = 0; i < count; i++) { | |
readys[i](); | |
} | |
} | |
function run(trigger, $el, opts, replay) { | |
opts = opts || {}; | |
var done = opts.done; | |
var preserve3d = trigger.preserve3d; | |
// Do not run in designer unless forced | |
if (designer && !opts.force) return; | |
// Operate on a set of grouped steps | |
var group = opts.group || 'A'; | |
var loop = trigger['loop' + group]; | |
var steps = trigger['steps' + group]; | |
if (!steps || !steps.length) return; | |
if (steps.length < 2) loop = false; | |
// One-time init before any loops | |
if (!replay) { | |
// Find selector within element descendants, siblings, or query whole document | |
var selector = trigger.selector; | |
if (selector) { | |
if (trigger.descend) { | |
$el = $el.find(selector); | |
} else if (trigger.siblings) { | |
$el = $el.siblings(selector); | |
} else { | |
$el = $(selector); | |
} | |
if (inApp) $el.attr('data-ix-affect', 1); | |
} | |
// Apply empty fix for certain Chrome versions | |
if (emptyFix) $el.addClass('w-ix-emptyfix'); | |
// Set preserve3d for triggers with 3d transforms | |
if (preserve3d) $el.css('transform-style', 'preserve-3d'); | |
} | |
var _tram = tram($el); | |
// Add steps | |
var meta = { omit3d: !preserve3d }; | |
for (var i = 0; i < steps.length; i++) { | |
addStep(_tram, steps[i], meta); | |
} | |
function fin() { | |
// Run trigger again if looped | |
if (loop) return run(trigger, $el, opts, true); | |
// Reset any 'auto' values | |
if (meta.width === 'auto') _tram.set({ width: 'auto' }); | |
if (meta.height === 'auto') _tram.set({ height: 'auto' }); | |
// Run callback | |
done && done(); | |
} | |
// Add final step to queue if tram has started | |
meta.start ? _tram.then(fin) : fin(); | |
} | |
function addStep(_tram, step, meta) { | |
var addMethod = 'add'; | |
var startMethod = 'start'; | |
// Once the transition has started, we will always use then() to add to the queue. | |
if (meta.start) addMethod = startMethod = 'then'; | |
// Parse transitions string on the current step | |
var transitions = step.transition; | |
if (transitions) { | |
transitions = transitions.split(','); | |
for (var i = 0; i < transitions.length; i++) { | |
var transition = transitions[i]; | |
_tram[addMethod](transition); | |
} | |
} | |
// Build a clean object to pass to the tram method | |
var clean = tramify(step, meta) || {}; | |
// Store last width and height values | |
if (clean.width != null) meta.width = clean.width; | |
if (clean.height != null) meta.height = clean.height; | |
// When transitions are not present, set values immediately and continue queue. | |
if (transitions == null) { | |
// If we have started, wrap set() in then() and reset queue | |
if (meta.start) { | |
_tram.then(function () { | |
var queue = this.queue; | |
this.set(clean); | |
if (clean.display) { | |
_tram.redraw(); | |
Webflow.redraw.up(); | |
} | |
this.queue = queue; | |
this.next(); | |
}); | |
} else { | |
_tram.set(clean); | |
// Always redraw after setting display | |
if (clean.display) { | |
_tram.redraw(); | |
Webflow.redraw.up(); | |
} | |
} | |
// Use the wait() method to kick off queue in absence of transitions. | |
var wait = clean.wait; | |
if (wait != null) { | |
_tram.wait(wait); | |
meta.start = true; | |
} | |
// Otherwise, when transitions are present | |
} else { | |
// If display is present, handle it separately | |
if (clean.display) { | |
var display = clean.display; | |
delete clean.display; | |
// If we've already started, we need to wrap it in a then() | |
if (meta.start) { | |
_tram.then(function () { | |
var queue = this.queue; | |
this.set({ display: display }).redraw(); | |
Webflow.redraw.up(); | |
this.queue = queue; | |
this.next(); | |
}); | |
} else { | |
_tram.set({ display: display }).redraw(); | |
Webflow.redraw.up(); | |
} | |
} | |
// Otherwise, start a transition using the current start method. | |
_tram[startMethod](clean); | |
meta.start = true; | |
} | |
} | |
// (In app) Set styles immediately and manage upstream transition | |
function styleApp(el, data) { | |
var _tram = tram(el); | |
// Exit early when data is empty to avoid clearing upstream | |
if ($.isEmptyObject(data)) return; | |
// Get computed transition value | |
el.css('transition', ''); | |
var computed = el.css('transition'); | |
// If computed is set to none, clear upstream | |
if (computed === transNone) computed = _tram.upstream = null; | |
// Set upstream transition to none temporarily | |
_tram.upstream = transNone; | |
// Set values immediately | |
_tram.set(tramify(data)); | |
// Only restore upstream in preview mode | |
_tram.upstream = computed; | |
} | |
// (Published) Set styles immediately on specified jquery element | |
function stylePub(el, data) { | |
tram(el).set(tramify(data)); | |
} | |
// Build a clean object for tram | |
function tramify(obj, meta) { | |
var omit3d = meta && meta.omit3d; | |
var result = {}; | |
var found = false; | |
for (var key in obj) { | |
if (key === 'transition') continue; | |
if (key === 'keysort') continue; | |
if (omit3d) { | |
if (key === 'z' || key === 'rotateX' || key === 'rotateY' || key === 'scaleZ') { | |
continue; | |
} | |
} | |
result[key] = obj[key]; | |
found = true; | |
} | |
// If empty, return null for tram.set/stop compliance | |
return found ? result : null; | |
} | |
// Export module | |
return api; | |
}); | |
/***/ }), | |
/* 89 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
"use strict"; | |
/** | |
* Webflow: IX Event triggers for other modules | |
*/ | |
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; | |
/***/ }), | |
/* 90 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Interactions 2 | |
*/ | |
var Webflow = __webpack_require__(2); | |
var ix2 = __webpack_require__(91); | |
Webflow.define('ix2', module.exports = function () { | |
return ix2; | |
}); | |
/***/ }), | |
/* 91 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "init", function() { return init; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "destroy", function() { return destroy; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "store", function() { return store; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(48); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__reducers_IX2Reducer__ = __webpack_require__(106); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaEngine__ = __webpack_require__(55); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__modules_webflow_lib__ = __webpack_require__(2); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__modules_webflow_lib___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_3__modules_webflow_lib__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__actions_IX2EngineActions__ = __webpack_require__(43); | |
/* harmony reexport (module object) */ __webpack_require__.d(__webpack_exports__, "actions", function() { return __WEBPACK_IMPORTED_MODULE_4__actions_IX2EngineActions__; }); | |
var store = Object(__WEBPACK_IMPORTED_MODULE_0_redux__["b" /* createStore */])(__WEBPACK_IMPORTED_MODULE_1__reducers_IX2Reducer__["a" /* default */]); | |
if (__WEBPACK_IMPORTED_MODULE_3__modules_webflow_lib___default.a.env()) { | |
Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaEngine__["a" /* observeRequests */])(store); | |
} | |
function init(rawData) { | |
destroy(); | |
Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaEngine__["c" /* startEngine */])({ store: store, rawData: rawData, allowEvents: true }); | |
} | |
function destroy() { | |
Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2VanillaEngine__["e" /* stopEngine */])(store); | |
} | |
/***/ }), | |
/* 92 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__ = __webpack_require__(51); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__getRawTag_js__ = __webpack_require__(95); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__objectToString_js__ = __webpack_require__(96); | |
/** `Object#toString` result references. */ | |
var nullTag = '[object Null]', | |
undefinedTag = '[object Undefined]'; | |
/** Built-in value references. */ | |
var symToStringTag = __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* default */] ? __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* 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(__WEBPACK_IMPORTED_MODULE_1__getRawTag_js__["a" /* default */])(value) | |
: Object(__WEBPACK_IMPORTED_MODULE_2__objectToString_js__["a" /* default */])(value); | |
} | |
/* harmony default export */ __webpack_exports__["a"] = (baseGetTag); | |
/***/ }), | |
/* 93 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__ = __webpack_require__(94); | |
/** Detect free variable `self`. */ | |
var freeSelf = typeof self == 'object' && self && self.Object === Object && self; | |
/** Used as a reference to the global object. */ | |
var root = __WEBPACK_IMPORTED_MODULE_0__freeGlobal_js__["a" /* default */] || freeSelf || Function('return this')(); | |
/* harmony default export */ __webpack_exports__["a"] = (root); | |
/***/ }), | |
/* 94 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* 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__["a"] = (freeGlobal); | |
/* WEBPACK VAR INJECTION */}.call(__webpack_exports__, __webpack_require__(22))) | |
/***/ }), | |
/* 95 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__Symbol_js__ = __webpack_require__(51); | |
/** 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 = __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* default */] ? __WEBPACK_IMPORTED_MODULE_0__Symbol_js__["a" /* 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__["a"] = (getRawTag); | |
/***/ }), | |
/* 96 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/** 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__["a"] = (objectToString); | |
/***/ }), | |
/* 97 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__overArg_js__ = __webpack_require__(98); | |
/** Built-in value references. */ | |
var getPrototype = Object(__WEBPACK_IMPORTED_MODULE_0__overArg_js__["a" /* default */])(Object.getPrototypeOf, Object); | |
/* harmony default export */ __webpack_exports__["a"] = (getPrototype); | |
/***/ }), | |
/* 98 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/** | |
* 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__["a"] = (overArg); | |
/***/ }), | |
/* 99 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/** | |
* 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__["a"] = (isObjectLike); | |
/***/ }), | |
/* 100 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
module.exports = __webpack_require__(101); | |
/***/ }), | |
/* 101 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
"use strict"; | |
/* WEBPACK VAR INJECTION */(function(global, module) { | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
var _ponyfill = __webpack_require__(102); | |
var _ponyfill2 = _interopRequireDefault(_ponyfill); | |
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; } | |
var root; /* global window */ | |
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 { | |
root = Function('return this')(); | |
} | |
var result = (0, _ponyfill2['default'])(root); | |
exports['default'] = result; | |
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(22), __webpack_require__(23)(module))) | |
/***/ }), | |
/* 102 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
"use strict"; | |
Object.defineProperty(exports, "__esModule", { | |
value: true | |
}); | |
exports['default'] = 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; | |
}; | |
/***/ }), | |
/* 103 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (immutable) */ __webpack_exports__["a"] = combineReducers; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__createStore__ = __webpack_require__(49); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_es_isPlainObject__ = __webpack_require__(50); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__utils_warning__ = __webpack_require__(52); | |
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 === __WEBPACK_IMPORTED_MODULE_0__createStore__["a" /* 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(__WEBPACK_IMPORTED_MODULE_1_lodash_es_isPlainObject__["a" /* 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: __WEBPACK_IMPORTED_MODULE_0__createStore__["a" /* 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 ' + __WEBPACK_IMPORTED_MODULE_0__createStore__["a" /* 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] === 'undefined') { | |
warning('No reducer provided for key "' + key + '"'); | |
} | |
} | |
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 = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache); | |
if (warningMessage) { | |
warning(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; | |
}; | |
} | |
/***/ }), | |
/* 104 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* unused harmony export default */ | |
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; | |
} | |
/***/ }), | |
/* 105 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* unused harmony export default */ | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__compose__ = __webpack_require__(53); | |
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 = __WEBPACK_IMPORTED_MODULE_0__compose__["a" /* default */].apply(undefined, chain)(store.dispatch); | |
return _extends({}, store, { | |
dispatch: _dispatch | |
}); | |
}; | |
}; | |
} | |
/***/ }), | |
/* 106 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_redux__ = __webpack_require__(48); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__IX2DataReducer__ = __webpack_require__(107); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__IX2RequestReducer__ = __webpack_require__(108); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IX2SessionReducer__ = __webpack_require__(110); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__IX2InstancesReducer__ = __webpack_require__(111); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__IX2ParametersReducer__ = __webpack_require__(114); | |
/* harmony default export */ __webpack_exports__["a"] = (Object(__WEBPACK_IMPORTED_MODULE_0_redux__["a" /* combineReducers */])({ | |
ixData: __WEBPACK_IMPORTED_MODULE_1__IX2DataReducer__["a" /* ixData */], | |
ixRequest: __WEBPACK_IMPORTED_MODULE_2__IX2RequestReducer__["a" /* ixRequest */], | |
ixSession: __WEBPACK_IMPORTED_MODULE_3__IX2SessionReducer__["a" /* ixSession */], | |
ixInstances: __WEBPACK_IMPORTED_MODULE_4__IX2InstancesReducer__["a" /* ixInstances */], | |
ixParameters: __WEBPACK_IMPORTED_MODULE_5__IX2ParametersReducer__["a" /* ixParameters */] | |
})); | |
/***/ }), | |
/* 107 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ixData; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
var ixData = function ixData() { | |
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); | |
var action = arguments[1]; | |
switch (action.type) { | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["l" /* IX2_RAW_DATA_IMPORTED */]: | |
{ | |
return action.payload.ixData || Object.freeze({}); | |
} | |
default: | |
{ | |
return state; | |
} | |
} | |
}; | |
/***/ }), | |
/* 108 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ixRequest; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper__ = __webpack_require__(12); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_immutability_helper__); | |
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; }; | |
var _Object$create; | |
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; } | |
var initialState = { | |
preview: {}, | |
playback: {}, | |
stop: {}, | |
clear: {} | |
}; | |
var stateKeys = Object.create(null, (_Object$create = {}, _defineProperty(_Object$create, __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["k" /* IX2_PREVIEW_REQUESTED */], { value: 'preview' }), _defineProperty(_Object$create, __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["j" /* IX2_PLAYBACK_REQUESTED */], { value: 'playback' }), _defineProperty(_Object$create, __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["o" /* IX2_STOP_REQUESTED */], { value: 'stop' }), _defineProperty(_Object$create, __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["c" /* 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[1]; | |
if (action.type in stateKeys) { | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, _defineProperty({}, stateKeys[action.type], { $set: _extends({}, action.payload) })); | |
} | |
return state; | |
}; | |
/***/ }), | |
/* 109 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
"use strict"; | |
/** | |
* Copyright 2013-2015, Facebook, Inc. | |
* All rights reserved. | |
* | |
* This source code is licensed under the BSD-style license found in the | |
* LICENSE file in the root directory of this source tree. An additional grant | |
* of patent rights can be found in the PATENTS file in the same directory. | |
*/ | |
/** | |
* Use invariant() to assert state which your program assumes to be true. | |
* | |
* Provide sprintf-style format (only %s is supported) and arguments | |
* to provide information about what broke and what you were | |
* expecting. | |
* | |
* The invariant message will be stripped in production, but the invariant | |
* will remain to ensure logic does not differ in production. | |
*/ | |
var invariant = function(condition, format, a, b, c, d, e, f) { | |
if (false) { | |
if (format === undefined) { | |
throw new Error('invariant requires an error message argument'); | |
} | |
} | |
if (!condition) { | |
var error; | |
if (format === undefined) { | |
error = new Error( | |
'Minified exception occurred; use the non-minified dev environment ' + | |
'for the full error message and additional helpful warnings.' | |
); | |
} else { | |
var args = [a, b, c, d, e, f]; | |
var argIndex = 0; | |
error = new Error( | |
format.replace(/%s/g, function() { return args[argIndex++]; }) | |
); | |
error.name = 'Invariant Violation'; | |
} | |
error.framesToPop = 1; // we don't care about invariant's own frame | |
throw error; | |
} | |
}; | |
module.exports = invariant; | |
/***/ }), | |
/* 110 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ixSession; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper__ = __webpack_require__(12); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_immutability_helper__); | |
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; } | |
var initialState = { | |
active: false, | |
eventListeners: [], | |
eventState: {}, | |
playbackState: {}, | |
viewportWidth: 0, | |
mediaQueryKey: null | |
}; | |
var ixSession = function ixSession() { | |
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; | |
var action = arguments[1]; | |
switch (action.type) { | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["m" /* IX2_SESSION_STARTED */]: | |
{ | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
active: { $set: true } | |
}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["n" /* IX2_SESSION_STOPPED */]: | |
{ | |
return initialState; | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["d" /* IX2_EVENT_LISTENER_ADDED */]: | |
{ | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
eventListeners: { $push: [action.payload] } | |
}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["e" /* IX2_EVENT_STATE_CHANGED */]: | |
{ | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
eventState: _defineProperty({}, action.payload.stateKey, { $set: action.payload.newState }) | |
}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["a" /* IX2_ACTION_LIST_PLAYBACK_CHANGED */]: | |
{ | |
var _action$payload = action.payload, | |
actionListId = _action$payload.actionListId, | |
isPlaying = _action$payload.isPlaying; | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
playbackState: _defineProperty({}, actionListId, { $set: isPlaying }) | |
}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["p" /* IX2_VIEWPORT_WIDTH_CHANGED */]: | |
{ | |
var _action$payload2 = action.payload, | |
width = _action$payload2.width, | |
mediaQueries = _action$payload2.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 __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
viewportWidth: { $set: width }, | |
mediaQueryKey: { $set: mediaQueryKey } | |
}); | |
} | |
default: | |
{ | |
return state; | |
} | |
} | |
}; | |
/***/ }), | |
/* 111 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ixInstances; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper__ = __webpack_require__(12); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_immutability_helper__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__ = __webpack_require__(54); | |
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; } | |
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; | |
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 = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["b" /* optimizeFloat */])(nextPosition - lastPosition); | |
var position = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["b" /* optimizeFloat */])(lastPosition + positionDiff * velocity); | |
var keyframePosition = position * 100; | |
if (position === lastPosition && state.current) { | |
return state; | |
} | |
var fromActionItem = void 0; | |
var toActionItem = void 0; | |
var positionOffset = void 0; | |
var positionRange = void 0; | |
for (var i = 0, length = actionGroups.length; i < length; i++) { | |
var _actionGroups$i = actionGroups[i], | |
keyframe = _actionGroups$i.keyframe, | |
actionItems = _actionGroups$i.actionItems; | |
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] = fromActionItem.config[key]; | |
} | |
} else if (fromActionItem && toActionItem) { | |
var localPosition = (position - positionOffset) / positionRange; | |
var easing = fromActionItem.config.easing; | |
var eased = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["a" /* applyEasing */])(easing, localPosition); | |
for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { | |
var _key = destinationKeys[_i2]; | |
var fromVal = fromActionItem.config[_key]; | |
var toVal = toActionItem.config[_key]; | |
var diff = toVal - fromVal; | |
var value = diff * eased + fromVal; | |
current[_key] = value; | |
} | |
} | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
position: { $set: position }, | |
current: { $set: current } | |
}); | |
}; | |
var timedInstance = function timedInstance(state, action) { | |
var _state = state, | |
active = _state.active, | |
origin = _state.origin, | |
start = _state.start, | |
immediate = _state.immediate, | |
isGeneral = _state.isGeneral, | |
verbose = _state.verbose, | |
actionItem = _state.actionItem, | |
destination = _state.destination, | |
destinationKeys = _state.destinationKeys; | |
var easing = actionItem.config.easing; | |
var _actionItem$config = actionItem.config, | |
duration = _actionItem$config.duration, | |
delay = _actionItem$config.delay; | |
if (isGeneral) { | |
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 = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["b" /* optimizeFloat */])(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); | |
state = __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { | |
verboseTimeElapsed: { $set: verboseDuration * verbosePosition } | |
}); | |
} | |
if (delta < 0) { | |
return state; | |
} | |
var position = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["b" /* optimizeFloat */])(Math.min(Math.max(0, delta / duration), 1)); | |
var eased = Object(__WEBPACK_IMPORTED_MODULE_2__logic_IX2EasingUtils__["a" /* applyEasing */])(easing, position); | |
var query = {}; | |
var current = destinationKeys.length ? 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; | |
}, {}) : null; | |
query.current = { $set: current }; | |
query.position = { $set: position }; | |
if (position === 1) { | |
query.active = { $set: false }; | |
query.complete = { $set: true }; | |
} | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, query); | |
} | |
return state; | |
}; | |
var ixInstances = function ixInstances() { | |
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); | |
var action = arguments[1]; | |
switch (action.type) { | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["l" /* IX2_RAW_DATA_IMPORTED */]: | |
{ | |
return action.payload.ixInstances || Object.freeze({}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["n" /* IX2_SESSION_STOPPED */]: | |
{ | |
return Object.freeze({}); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["f" /* IX2_INSTANCE_ADDED */]: | |
{ | |
var _action$payload = action.payload, | |
instanceId = _action$payload.instanceId, | |
actionItem = _action$payload.actionItem, | |
element = _action$payload.element, | |
eventId = _action$payload.eventId, | |
eventTarget = _action$payload.eventTarget, | |
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; | |
var actionTypeId = actionItem.actionTypeId; | |
var typeFound = void 0; | |
var isTransform = typeFound = /^TRANSFORM_/.test(actionTypeId); | |
var isStyle = !typeFound ? typeFound = /^STYLE_/.test(actionTypeId) : false; | |
var isGeneral = !typeFound ? typeFound = /^GENERAL_/.test(actionTypeId) : false; | |
var styleProp = isStyle && actionTypeId.replace('STYLE_', '').toLowerCase(); | |
var destinationKeys = Object.keys(destination).filter(function (key) { | |
return destination[key] != null; | |
}); | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, _defineProperty({}, instanceId, { $set: { | |
id: instanceId, | |
active: false, | |
position: 0, | |
start: 0, | |
origin: origin, | |
destination: destination, | |
destinationKeys: destinationKeys, | |
immediate: immediate, | |
verbose: verbose, | |
current: null, | |
actionItem: actionItem, | |
element: element, | |
eventId: eventId, | |
eventTarget: eventTarget, | |
actionListId: actionListId, | |
groupIndex: groupIndex, | |
isTransform: isTransform, | |
isStyle: isStyle, | |
isGeneral: isGeneral, | |
isCarrier: isCarrier, | |
styleProp: styleProp, | |
continuous: continuous, | |
parameterId: parameterId, | |
actionGroups: actionGroups, | |
smoothing: smoothing, | |
restingValue: restingValue | |
} })); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["h" /* IX2_INSTANCE_STARTED */]: | |
{ | |
var _instanceId = action.payload.instanceId; | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, _defineProperty({}, _instanceId, { $merge: { | |
active: true, | |
complete: false, | |
start: window.performance.now() | |
} })); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["g" /* IX2_INSTANCE_REMOVED */]: | |
{ | |
var _instanceId2 = action.payload.instanceId; | |
return __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(state, { $unset: [_instanceId2] }); | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["b" /* IX2_ANIMATION_FRAME_CHANGED */]: | |
{ | |
var newState = state; | |
var keys = Object.keys(state); | |
var length = keys.length; | |
for (var i = 0; i < length; i++) { | |
var key = keys[i]; | |
var instance = state[key]; | |
var reducer = instance.continuous ? continuousInstance : timedInstance; | |
newState = __WEBPACK_IMPORTED_MODULE_1_immutability_helper___default()(newState, _defineProperty({}, key, { $set: reducer(instance, action) })); | |
} | |
return newState; | |
} | |
default: | |
{ | |
return state; | |
} | |
} | |
}; | |
/***/ }), | |
/* 112 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ease", function() { return ease; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeIn", function() { return easeIn; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeOut", function() { return easeOut; }); | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "easeInOut", function() { return easeInOut; }); | |
/* harmony export (immutable) */ __webpack_exports__["inQuad"] = inQuad; | |
/* harmony export (immutable) */ __webpack_exports__["outQuad"] = outQuad; | |
/* harmony export (immutable) */ __webpack_exports__["inOutQuad"] = inOutQuad; | |
/* harmony export (immutable) */ __webpack_exports__["inCubic"] = inCubic; | |
/* harmony export (immutable) */ __webpack_exports__["outCubic"] = outCubic; | |
/* harmony export (immutable) */ __webpack_exports__["inOutCubic"] = inOutCubic; | |
/* harmony export (immutable) */ __webpack_exports__["inQuart"] = inQuart; | |
/* harmony export (immutable) */ __webpack_exports__["outQuart"] = outQuart; | |
/* harmony export (immutable) */ __webpack_exports__["inOutQuart"] = inOutQuart; | |
/* harmony export (immutable) */ __webpack_exports__["inQuint"] = inQuint; | |
/* harmony export (immutable) */ __webpack_exports__["outQuint"] = outQuint; | |
/* harmony export (immutable) */ __webpack_exports__["inOutQuint"] = inOutQuint; | |
/* harmony export (immutable) */ __webpack_exports__["inSine"] = inSine; | |
/* harmony export (immutable) */ __webpack_exports__["outSine"] = outSine; | |
/* harmony export (immutable) */ __webpack_exports__["inOutSine"] = inOutSine; | |
/* harmony export (immutable) */ __webpack_exports__["inExpo"] = inExpo; | |
/* harmony export (immutable) */ __webpack_exports__["outExpo"] = outExpo; | |
/* harmony export (immutable) */ __webpack_exports__["inOutExpo"] = inOutExpo; | |
/* harmony export (immutable) */ __webpack_exports__["inCirc"] = inCirc; | |
/* harmony export (immutable) */ __webpack_exports__["outCirc"] = outCirc; | |
/* harmony export (immutable) */ __webpack_exports__["inOutCirc"] = inOutCirc; | |
/* harmony export (immutable) */ __webpack_exports__["outBounce"] = outBounce; | |
/* harmony export (immutable) */ __webpack_exports__["inBack"] = inBack; | |
/* harmony export (immutable) */ __webpack_exports__["outBack"] = outBack; | |
/* harmony export (immutable) */ __webpack_exports__["inOutBack"] = inOutBack; | |
/* harmony export (immutable) */ __webpack_exports__["inElastic"] = inElastic; | |
/* harmony export (immutable) */ __webpack_exports__["outElastic"] = outElastic; | |
/* harmony export (immutable) */ __webpack_exports__["inOutElastic"] = inOutElastic; | |
/* harmony export (immutable) */ __webpack_exports__["swingFromTo"] = swingFromTo; | |
/* harmony export (immutable) */ __webpack_exports__["swingFrom"] = swingFrom; | |
/* harmony export (immutable) */ __webpack_exports__["swingTo"] = swingTo; | |
/* harmony export (immutable) */ __webpack_exports__["bounce"] = bounce; | |
/* harmony export (immutable) */ __webpack_exports__["bouncePast"] = bouncePast; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bezier_easing__ = __webpack_require__(113); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_bezier_easing___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_bezier_easing__); | |
// 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 = __WEBPACK_IMPORTED_MODULE_0_bezier_easing___default()(0.250, 0.100, 0.250, 1.000); | |
var easeIn = __WEBPACK_IMPORTED_MODULE_0_bezier_easing___default()(0.420, 0.000, 1.000, 1.000); | |
var easeOut = __WEBPACK_IMPORTED_MODULE_0_bezier_easing___default()(0.000, 0.000, 0.580, 1.000); | |
var easeInOut = __WEBPACK_IMPORTED_MODULE_0_bezier_easing___default()(0.420, 0.000, 0.580, 1.000); | |
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); | |
} | |
} | |
/***/ }), | |
/* 113 */ | |
/***/ (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); | |
}; | |
}; | |
/***/ }), | |
/* 114 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return ixParameters; }); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__ = __webpack_require__(6); | |
var ixParameters = function ixParameters() { | |
var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {/*mutable flat state*/}; | |
var action = arguments[1]; | |
switch (action.type) { | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["l" /* IX2_RAW_DATA_IMPORTED */]: | |
{ | |
return action.payload.ixParameters || {/*mutable flat state*/}; | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["n" /* IX2_SESSION_STOPPED */]: | |
{ | |
return {/*mutable flat state*/}; | |
} | |
case __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineActionTypes__["i" /* IX2_PARAMETER_CHANGED */]: | |
{ | |
var _action$payload = action.payload, | |
key = _action$payload.key, | |
value = _action$payload.value; | |
state[key] = value; | |
return state; | |
} | |
default: | |
{ | |
return state; | |
} | |
} | |
}; | |
/***/ }), | |
/* 115 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIteratee = __webpack_require__(7), | |
isArrayLike = __webpack_require__(9), | |
keys = __webpack_require__(17); | |
/** | |
* 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; | |
/***/ }), | |
/* 116 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsMatch = __webpack_require__(117), | |
getMatchData = __webpack_require__(167), | |
matchesStrictComparable = __webpack_require__(66); | |
/** | |
* 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; | |
/***/ }), | |
/* 117 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Stack = __webpack_require__(57), | |
baseIsEqual = __webpack_require__(61); | |
/** 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; | |
/***/ }), | |
/* 118 */ | |
/***/ (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; | |
/***/ }), | |
/* 119 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var assocIndexOf = __webpack_require__(14); | |
/** 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; | |
/***/ }), | |
/* 120 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var assocIndexOf = __webpack_require__(14); | |
/** | |
* 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; | |
/***/ }), | |
/* 121 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var assocIndexOf = __webpack_require__(14); | |
/** | |
* 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; | |
/***/ }), | |
/* 122 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var assocIndexOf = __webpack_require__(14); | |
/** | |
* 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; | |
/***/ }), | |
/* 123 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var ListCache = __webpack_require__(13); | |
/** | |
* 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; | |
/***/ }), | |
/* 124 */ | |
/***/ (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; | |
/***/ }), | |
/* 125 */ | |
/***/ (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; | |
/***/ }), | |
/* 126 */ | |
/***/ (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; | |
/***/ }), | |
/* 127 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var ListCache = __webpack_require__(13), | |
Map = __webpack_require__(25), | |
MapCache = __webpack_require__(26); | |
/** 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; | |
/***/ }), | |
/* 128 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isFunction = __webpack_require__(58), | |
isMasked = __webpack_require__(131), | |
isObject = __webpack_require__(3), | |
toSource = __webpack_require__(60); | |
/** | |
* 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; | |
/***/ }), | |
/* 129 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Symbol = __webpack_require__(10); | |
/** 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; | |
/***/ }), | |
/* 130 */ | |
/***/ (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; | |
/***/ }), | |
/* 131 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var coreJsData = __webpack_require__(132); | |
/** 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; | |
/***/ }), | |
/* 132 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var root = __webpack_require__(1); | |
/** Used to detect overreaching core-js shims. */ | |
var coreJsData = root['__core-js_shared__']; | |
module.exports = coreJsData; | |
/***/ }), | |
/* 133 */ | |
/***/ (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; | |
/***/ }), | |
/* 134 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Hash = __webpack_require__(135), | |
ListCache = __webpack_require__(13), | |
Map = __webpack_require__(25); | |
/** | |
* 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; | |
/***/ }), | |
/* 135 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var hashClear = __webpack_require__(136), | |
hashDelete = __webpack_require__(137), | |
hashGet = __webpack_require__(138), | |
hashHas = __webpack_require__(139), | |
hashSet = __webpack_require__(140); | |
/** | |
* 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; | |
/***/ }), | |
/* 136 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var nativeCreate = __webpack_require__(15); | |
/** | |
* 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; | |
/***/ }), | |
/* 137 */ | |
/***/ (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; | |
/***/ }), | |
/* 138 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var nativeCreate = __webpack_require__(15); | |
/** 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; | |
/***/ }), | |
/* 139 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var nativeCreate = __webpack_require__(15); | |
/** 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; | |
/***/ }), | |
/* 140 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var nativeCreate = __webpack_require__(15); | |
/** 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; | |
/***/ }), | |
/* 141 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getMapData = __webpack_require__(16); | |
/** | |
* 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; | |
/***/ }), | |
/* 142 */ | |
/***/ (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; | |
/***/ }), | |
/* 143 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getMapData = __webpack_require__(16); | |
/** | |
* 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; | |
/***/ }), | |
/* 144 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getMapData = __webpack_require__(16); | |
/** | |
* 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; | |
/***/ }), | |
/* 145 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getMapData = __webpack_require__(16); | |
/** | |
* 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; | |
/***/ }), | |
/* 146 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Stack = __webpack_require__(57), | |
equalArrays = __webpack_require__(62), | |
equalByTag = __webpack_require__(152), | |
equalObjects = __webpack_require__(156), | |
getTag = __webpack_require__(34), | |
isArray = __webpack_require__(0), | |
isBuffer = __webpack_require__(27), | |
isTypedArray = __webpack_require__(29); | |
/** 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 = arrayTag, | |
othTag = arrayTag; | |
if (!objIsArr) { | |
objTag = getTag(object); | |
objTag = objTag == argsTag ? objectTag : objTag; | |
} | |
if (!othIsArr) { | |
othTag = getTag(other); | |
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; | |
/***/ }), | |
/* 147 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var MapCache = __webpack_require__(26), | |
setCacheAdd = __webpack_require__(148), | |
setCacheHas = __webpack_require__(149); | |
/** | |
* | |
* 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; | |
/***/ }), | |
/* 148 */ | |
/***/ (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; | |
/***/ }), | |
/* 149 */ | |
/***/ (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; | |
/***/ }), | |
/* 150 */ | |
/***/ (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; | |
/***/ }), | |
/* 151 */ | |
/***/ (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; | |
/***/ }), | |
/* 152 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Symbol = __webpack_require__(10), | |
Uint8Array = __webpack_require__(153), | |
eq = __webpack_require__(24), | |
equalArrays = __webpack_require__(62), | |
mapToArray = __webpack_require__(154), | |
setToArray = __webpack_require__(155); | |
/** 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; | |
/***/ }), | |
/* 153 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var root = __webpack_require__(1); | |
/** Built-in value references. */ | |
var Uint8Array = root.Uint8Array; | |
module.exports = Uint8Array; | |
/***/ }), | |
/* 154 */ | |
/***/ (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; | |
/***/ }), | |
/* 155 */ | |
/***/ (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; | |
/***/ }), | |
/* 156 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var keys = __webpack_require__(17); | |
/** 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 = keys(object), | |
objLength = objProps.length, | |
othProps = keys(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; | |
} | |
} | |
// Assume cyclic values are equal. | |
var stacked = stack.get(object); | |
if (stacked && stack.get(other)) { | |
return stacked == other; | |
} | |
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; | |
/***/ }), | |
/* 157 */ | |
/***/ (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; | |
/***/ }), | |
/* 158 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetTag = __webpack_require__(8), | |
isObjectLike = __webpack_require__(5); | |
/** `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; | |
/***/ }), | |
/* 159 */ | |
/***/ (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; | |
/***/ }), | |
/* 160 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetTag = __webpack_require__(8), | |
isLength = __webpack_require__(30), | |
isObjectLike = __webpack_require__(5); | |
/** `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; | |
/***/ }), | |
/* 161 */ | |
/***/ (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; | |
/***/ }), | |
/* 162 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(59); | |
/** Detect free variable `exports`. */ | |
var freeExports = typeof exports == 'object' && 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 { | |
return freeProcess && freeProcess.binding && freeProcess.binding('util'); | |
} catch (e) {} | |
}()); | |
module.exports = nodeUtil; | |
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(23)(module))) | |
/***/ }), | |
/* 163 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var overArg = __webpack_require__(33); | |
/* Built-in method references for those with the same name as other `lodash` methods. */ | |
var nativeKeys = overArg(Object.keys, Object); | |
module.exports = nativeKeys; | |
/***/ }), | |
/* 164 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4), | |
root = __webpack_require__(1); | |
/* Built-in method references that are verified to be native. */ | |
var DataView = getNative(root, 'DataView'); | |
module.exports = DataView; | |
/***/ }), | |
/* 165 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4), | |
root = __webpack_require__(1); | |
/* Built-in method references that are verified to be native. */ | |
var Promise = getNative(root, 'Promise'); | |
module.exports = Promise; | |
/***/ }), | |
/* 166 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var getNative = __webpack_require__(4), | |
root = __webpack_require__(1); | |
/* Built-in method references that are verified to be native. */ | |
var Set = getNative(root, 'Set'); | |
module.exports = Set; | |
/***/ }), | |
/* 167 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isStrictComparable = __webpack_require__(65), | |
keys = __webpack_require__(17); | |
/** | |
* 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; | |
/***/ }), | |
/* 168 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIsEqual = __webpack_require__(61), | |
get = __webpack_require__(19), | |
hasIn = __webpack_require__(172), | |
isKey = __webpack_require__(36), | |
isStrictComparable = __webpack_require__(65), | |
matchesStrictComparable = __webpack_require__(66), | |
toKey = __webpack_require__(11); | |
/** 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; | |
/***/ }), | |
/* 169 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var memoizeCapped = __webpack_require__(170); | |
/** Used to match property names within property paths. */ | |
var reLeadingDot = /^\./, | |
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 (reLeadingDot.test(string)) { | |
result.push(''); | |
} | |
string.replace(rePropName, function(match, number, quote, string) { | |
result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match)); | |
}); | |
return result; | |
}); | |
module.exports = stringToPath; | |
/***/ }), | |
/* 170 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var memoize = __webpack_require__(171); | |
/** 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; | |
/***/ }), | |
/* 171 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var MapCache = __webpack_require__(26); | |
/** 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; | |
/***/ }), | |
/* 172 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseHasIn = __webpack_require__(173), | |
hasPath = __webpack_require__(174); | |
/** | |
* 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; | |
/***/ }), | |
/* 173 */ | |
/***/ (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; | |
/***/ }), | |
/* 174 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var castPath = __webpack_require__(20), | |
isArguments = __webpack_require__(18), | |
isArray = __webpack_require__(0), | |
isIndex = __webpack_require__(28), | |
isLength = __webpack_require__(30), | |
toKey = __webpack_require__(11); | |
/** | |
* 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; | |
/***/ }), | |
/* 175 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseProperty = __webpack_require__(70), | |
basePropertyDeep = __webpack_require__(176), | |
isKey = __webpack_require__(36), | |
toKey = __webpack_require__(11); | |
/** | |
* 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; | |
/***/ }), | |
/* 176 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGet = __webpack_require__(35); | |
/** | |
* 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; | |
/***/ }), | |
/* 177 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseFindIndex = __webpack_require__(178), | |
baseIteratee = __webpack_require__(7), | |
toInteger = __webpack_require__(71); | |
/* 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; | |
/***/ }), | |
/* 178 */ | |
/***/ (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; | |
/***/ }), | |
/* 179 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var toNumber = __webpack_require__(72); | |
/** 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; | |
/***/ }), | |
/* 180 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseKeys = __webpack_require__(31), | |
getTag = __webpack_require__(34), | |
isArrayLike = __webpack_require__(9), | |
isString = __webpack_require__(181), | |
stringSize = __webpack_require__(182); | |
/** `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; | |
/***/ }), | |
/* 181 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetTag = __webpack_require__(8), | |
isArray = __webpack_require__(0), | |
isObjectLike = __webpack_require__(5); | |
/** `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; | |
/***/ }), | |
/* 182 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var asciiSize = __webpack_require__(183), | |
hasUnicode = __webpack_require__(184), | |
unicodeSize = __webpack_require__(185); | |
/** | |
* 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; | |
/***/ }), | |
/* 183 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseProperty = __webpack_require__(70); | |
/** | |
* 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; | |
/***/ }), | |
/* 184 */ | |
/***/ (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; | |
/***/ }), | |
/* 185 */ | |
/***/ (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; | |
/***/ }), | |
/* 186 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseIteratee = __webpack_require__(7), | |
negate = __webpack_require__(187), | |
pickBy = __webpack_require__(188); | |
/** | |
* 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; | |
/***/ }), | |
/* 187 */ | |
/***/ (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; | |
/***/ }), | |
/* 188 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayMap = __webpack_require__(69), | |
baseIteratee = __webpack_require__(7), | |
basePickBy = __webpack_require__(189), | |
getAllKeysIn = __webpack_require__(192); | |
/** | |
* 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; | |
/***/ }), | |
/* 189 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGet = __webpack_require__(35), | |
baseSet = __webpack_require__(190), | |
castPath = __webpack_require__(20); | |
/** | |
* 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; | |
/***/ }), | |
/* 190 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var assignValue = __webpack_require__(191), | |
castPath = __webpack_require__(20), | |
isIndex = __webpack_require__(28), | |
isObject = __webpack_require__(3), | |
toKey = __webpack_require__(11); | |
/** | |
* 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 (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; | |
/***/ }), | |
/* 191 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseAssignValue = __webpack_require__(73), | |
eq = __webpack_require__(24); | |
/** 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; | |
/***/ }), | |
/* 192 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseGetAllKeys = __webpack_require__(193), | |
getSymbolsIn = __webpack_require__(194), | |
keysIn = __webpack_require__(197); | |
/** | |
* 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; | |
/***/ }), | |
/* 193 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayPush = __webpack_require__(38), | |
isArray = __webpack_require__(0); | |
/** | |
* 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; | |
/***/ }), | |
/* 194 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayPush = __webpack_require__(38), | |
getPrototype = __webpack_require__(195), | |
getSymbols = __webpack_require__(196), | |
stubArray = __webpack_require__(75); | |
/* 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; | |
/***/ }), | |
/* 195 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var overArg = __webpack_require__(33); | |
/** Built-in value references. */ | |
var getPrototype = overArg(Object.getPrototypeOf, Object); | |
module.exports = getPrototype; | |
/***/ }), | |
/* 196 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var overArg = __webpack_require__(33), | |
stubArray = __webpack_require__(75); | |
/* 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 ? overArg(nativeGetSymbols, Object) : stubArray; | |
module.exports = getSymbols; | |
/***/ }), | |
/* 197 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayLikeKeys = __webpack_require__(63), | |
baseKeysIn = __webpack_require__(198), | |
isArrayLike = __webpack_require__(9); | |
/** | |
* 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; | |
/***/ }), | |
/* 198 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isObject = __webpack_require__(3), | |
isPrototype = __webpack_require__(32), | |
nativeKeysIn = __webpack_require__(199); | |
/** 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; | |
/***/ }), | |
/* 199 */ | |
/***/ (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; | |
/***/ }), | |
/* 200 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseKeys = __webpack_require__(31), | |
getTag = __webpack_require__(34), | |
isArguments = __webpack_require__(18), | |
isArray = __webpack_require__(0), | |
isArrayLike = __webpack_require__(9), | |
isBuffer = __webpack_require__(27), | |
isPrototype = __webpack_require__(32), | |
isTypedArray = __webpack_require__(29); | |
/** `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; | |
/***/ }), | |
/* 201 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseAssignValue = __webpack_require__(73), | |
baseForOwn = __webpack_require__(76), | |
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; | |
/***/ }), | |
/* 202 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var createBaseFor = __webpack_require__(203); | |
/** | |
* 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; | |
/***/ }), | |
/* 203 */ | |
/***/ (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; | |
/***/ }), | |
/* 204 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayEach = __webpack_require__(205), | |
baseEach = __webpack_require__(77), | |
castFunction = __webpack_require__(207), | |
isArray = __webpack_require__(0); | |
/** | |
* 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; | |
/***/ }), | |
/* 205 */ | |
/***/ (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; | |
/***/ }), | |
/* 206 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var isArrayLike = __webpack_require__(9); | |
/** | |
* 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; | |
/***/ }), | |
/* 207 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var identity = __webpack_require__(37); | |
/** | |
* 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; | |
/***/ }), | |
/* 208 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseClamp = __webpack_require__(78), | |
baseToString = __webpack_require__(68), | |
toInteger = __webpack_require__(71), | |
toString = __webpack_require__(67); | |
/** | |
* Checks if `string` ends with the given target string. | |
* | |
* @static | |
* @memberOf _ | |
* @since 3.0.0 | |
* @category String | |
* @param {string} [string=''] The string to inspect. | |
* @param {string} [target] The string to search for. | |
* @param {number} [position=string.length] The position to search up to. | |
* @returns {boolean} Returns `true` if `string` ends with `target`, | |
* else `false`. | |
* @example | |
* | |
* _.endsWith('abc', 'c'); | |
* // => true | |
* | |
* _.endsWith('abc', 'b'); | |
* // => false | |
* | |
* _.endsWith('abc', 'b', 2); | |
* // => true | |
*/ | |
function endsWith(string, target, position) { | |
string = toString(string); | |
target = baseToString(target); | |
var length = string.length; | |
position = position === undefined | |
? length | |
: baseClamp(toInteger(position), 0, length); | |
var end = position; | |
position -= target.length; | |
return position >= 0 && string.slice(position, end) == target; | |
} | |
module.exports = endsWith; | |
/***/ }), | |
/* 209 */ | |
/***/ (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; | |
/***/ }), | |
/* 210 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayReduce = __webpack_require__(211), | |
baseEach = __webpack_require__(77), | |
baseIteratee = __webpack_require__(7), | |
baseReduce = __webpack_require__(212), | |
isArray = __webpack_require__(0); | |
/** | |
* 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; | |
/***/ }), | |
/* 211 */ | |
/***/ (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; | |
/***/ }), | |
/* 212 */ | |
/***/ (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; | |
/***/ }), | |
/* 213 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
Object.defineProperty(__webpack_exports__, "__esModule", { value: true }); | |
/* harmony export (immutable) */ __webpack_exports__["setStyle"] = setStyle; | |
/* harmony export (immutable) */ __webpack_exports__["getStyle"] = getStyle; | |
/* harmony export (immutable) */ __webpack_exports__["getProperty"] = getProperty; | |
/* harmony export (immutable) */ __webpack_exports__["matchSelector"] = matchSelector; | |
/* harmony export (immutable) */ __webpack_exports__["getQuerySelector"] = getQuerySelector; | |
/* harmony export (immutable) */ __webpack_exports__["getValidDocument"] = getValidDocument; | |
/* harmony export (immutable) */ __webpack_exports__["queryDocument"] = queryDocument; | |
/* harmony export (immutable) */ __webpack_exports__["elementContains"] = elementContains; | |
/* harmony export (immutable) */ __webpack_exports__["isSiblingNode"] = isSiblingNode; | |
/* harmony export (immutable) */ __webpack_exports__["getChildElements"] = getChildElements; | |
/* harmony export (immutable) */ __webpack_exports__["getSiblingElements"] = getSiblingElements; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineConstants__ = __webpack_require__(42); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1__IX2BrowserSupport__ = __webpack_require__(79); | |
function setStyle(element, prop, value) { | |
element.style[prop] = value; | |
} | |
function getStyle(element, prop) { | |
return element.style[prop]; | |
} | |
function getProperty(element, prop) { | |
return element[prop]; | |
} | |
function matchSelector(selector) { | |
return function (element) { | |
return element[__WEBPACK_IMPORTED_MODULE_1__IX2BrowserSupport__["a" /* ELEMENT_MATCHES */]](selector); | |
}; | |
} | |
function getQuerySelector(_ref) { | |
var id = _ref.id, | |
selector = _ref.selector; | |
if (id) { | |
var nodeId = id; | |
if (id.indexOf(__WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineConstants__["n" /* IX2_ID_DELIMITER */]) !== -1) { | |
var pair = id.split(__WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineConstants__["n" /* IX2_ID_DELIMITER */]); | |
var pageId = pair[0]; | |
nodeId = pair[1]; | |
// Short circuit query if we're on the wrong page | |
if (pageId !== document.documentElement.getAttribute(__WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineConstants__["C" /* WF_PAGE */])) { | |
return null; | |
} | |
} | |
return '[data-w-id="' + nodeId + '"]'; | |
} | |
return selector; | |
} | |
function getValidDocument(pageId) { | |
if (pageId == null || pageId === document.documentElement.getAttribute(__WEBPACK_IMPORTED_MODULE_0__constants_IX2EngineConstants__["C" /* 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() { | |
var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; | |
var elements = []; | |
for (var i = 0, length = sourceElements.length; i < length; i++) { | |
var children = sourceElements[i].children; | |
var childCount = children.length; | |
if (!childCount) { | |
continue; | |
} | |
for (var j = 0; j < childCount; j++) { | |
elements.push(children[j]); | |
} | |
} | |
return elements; | |
} | |
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; | |
} | |
/***/ }), | |
/* 214 */ | |
/***/ (function(module, __webpack_exports__, __webpack_require__) { | |
"use strict"; | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_flow__ = __webpack_require__(215); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_0_lodash_flow___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_0_lodash_flow__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get__ = __webpack_require__(19); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_1_lodash_get___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_1_lodash_get__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_clamp__ = __webpack_require__(234); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_2_lodash_clamp___default = __webpack_require__.n(__WEBPACK_IMPORTED_MODULE_2_lodash_clamp__); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_3__IX2VanillaEngine__ = __webpack_require__(55); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_4__IX2VanillaUtils__ = __webpack_require__(39); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_5__actions_IX2EngineActions__ = __webpack_require__(43); | |
/* harmony import */ var __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__ = __webpack_require__(41); | |
var _SLIDER_ACTIVE$SLIDER; | |
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; }; | |
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; }; | |
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; } | |
function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; } | |
var composableFilter = function composableFilter(predicate) { | |
return function (options) { | |
if ((typeof options === 'undefined' ? 'undefined' : _typeof(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 = __WEBPACK_IMPORTED_MODULE_0_lodash_flow___default()([isElement, containsElement]); | |
var actionGroupCreator = function actionGroupCreator(_ref3, state) { | |
var store = _ref3.store, | |
event = _ref3.event, | |
element = _ref3.element; | |
var eventAction = event.action, | |
eventId = event.id; | |
var _eventAction$config = eventAction.config, | |
actionListId = _eventAction$config.actionListId, | |
autoStopEventId = _eventAction$config.autoStopEventId; | |
if (autoStopEventId) { | |
var _store$getState = store.getState(), | |
ixData = _store$getState.ixData; | |
var events = ixData.events; | |
Object(__WEBPACK_IMPORTED_MODULE_3__IX2VanillaEngine__["d" /* stopActionGroup */])({ | |
store: store, | |
eventId: autoStopEventId, | |
actionListId: __WEBPACK_IMPORTED_MODULE_1_lodash_get___default()(events[autoStopEventId], 'action.config.actionListId') | |
}); | |
} | |
Object(__WEBPACK_IMPORTED_MODULE_3__IX2VanillaEngine__["d" /* stopActionGroup */])({ store: store, eventId: eventId, actionListId: actionListId }); | |
Object(__WEBPACK_IMPORTED_MODULE_3__IX2VanillaEngine__["b" /* startActionGroup */])({ store: store, eventId: eventId, eventTarget: element, actionListId: actionListId }); | |
return state; | |
}; | |
var withFilter = function withFilter(filter, handler) { | |
return function (options, state) { | |
return filter(options, state) === true ? handler(options, state) : state; | |
}; | |
}; | |
var baseActionGroupOptions = { | |
handler: withFilter(isOrContainsElement, actionGroupCreator) | |
}; | |
var baseActivityActionGroupOptions = _extends({}, baseActionGroupOptions, { | |
types: [__WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["a" /* COMPONENT_ACTIVE */], __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["b" /* COMPONENT_INACTIVE */]].join(" ") | |
}); | |
var CONTINUOUS_SCROLL_EVENT_TYPES = [{ target: window, types: 'resize orientationchange' }, { target: document, types: 'scroll readystatechange IX2_PREVIEW_LOAD' }]; | |
var TRIGGERED_SCROLL_EVENT_TYPES = [{ target: document, types: 'scroll' }]; | |
var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; | |
var baseScrollActionGroupOptions = { | |
types: TRIGGERED_SCROLL_EVENT_TYPES | |
}; | |
var getDocumentState = function () { | |
var supportOffset = window.pageXOffset !== undefined; | |
var isCSS1Compat = document.compatMode === 'CSS1Compat'; | |
var rootElement = isCSS1Compat ? document.documentElement : document.body; | |
return function () { | |
return { | |
scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, | |
scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, | |
// required to remove elasticity in Safari scrolling. | |
stiffScrollTop: __WEBPACK_IMPORTED_MODULE_2_lodash_clamp___default()(supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, rootElement.scrollHeight - window.innerHeight), | |
scrollWidth: rootElement.scrollWidth, | |
scrollHeight: rootElement.scrollHeight, | |
clientWidth: rootElement.clientWidth, | |
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(_ref4) { | |
var element = _ref4.element, | |
nativeEvent = _ref4.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 isActive = [__WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["a" /* COMPONENT_ACTIVE */], __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["b" /* COMPONENT_INACTIVE */]].indexOf(options.nativeEvent.type) !== -1 ? options.nativeEvent.type === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["a" /* COMPONENT_ACTIVE */] : oldState.isActive; | |
var newState = _extends({}, 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; | |
}; | |
}; | |
var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { | |
return function (options, oldState) { | |
var newState = _extends({}, oldState, { | |
elementVisible: isElementVisible(options) | |
}); | |
if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { | |
return handler(options, newState) || newState; | |
} | |
return newState; | |
}; | |
}; | |
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 = oldState ? percentTop > oldState.percentTop : undefined; | |
var scrollDirectionChanged = oldState ? oldState.scrollingDown !== scrollingDown : undefined; | |
var anchorTop = oldState ? scrollDirectionChanged ? percentTop : oldState.anchorTop : 0; | |
var inBounds = eventTypeId === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["r" /* PAGE_SCROLL_DOWN */] ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; | |
var newState = _extends({}, 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 getComponentActiveOptions = function getComponentActiveOptions() { | |
var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; | |
return _extends({}, 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 _extends({}, baseActivityActionGroupOptions, { | |
handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { | |
return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; | |
})) | |
}); | |
}; | |
var scrollIntoOutOfViewOptions = _extends({}, 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 === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["v" /* SCROLL_INTO_VIEW */] === elementVisible) { | |
actionGroupCreator(options); | |
return _extends({}, state, { | |
triggered: true | |
}); | |
} else { | |
return state; | |
} | |
}) | |
}); | |
var MOUSE_OUT_ROUND_THRESHOLD = 0.05; | |
/* harmony default export */ __webpack_exports__["a"] = (_SLIDER_ACTIVE$SLIDER = {}, _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["x" /* SLIDER_ACTIVE */], getComponentActiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["y" /* SLIDER_INACTIVE */], getComponentInactiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["d" /* DROPDOWN_OPEN */], getComponentActiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["c" /* DROPDOWN_CLOSE */], getComponentInactiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["n" /* NAVBAR_OPEN */], getComponentActiveOptions(false)), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["m" /* NAVBAR_CLOSE */], getComponentInactiveOptions(false)), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["z" /* TAB_ACTIVE */], getComponentActiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["A" /* TAB_INACTIVE */], getComponentInactiveOptions()), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["f" /* MOUSE_CLICK */], _extends({}, baseActionGroupOptions, { | |
types: 'click' | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["k" /* MOUSE_SECOND_CLICK */], _extends({ | |
types: 'click' | |
}, baseActionGroupOptions, { | |
handler: withFilter(isOrContainsElement, function (options) { | |
var _ref5 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { clickCount: 1 }; | |
var clickCount = _ref5.clickCount, | |
restState = _objectWithoutProperties(_ref5, ['clickCount']); | |
if (clickCount % 2 === 0) { | |
clickCount = 0; | |
restState = actionGroupCreator(options, restState); | |
} | |
return _extends({ clickCount: clickCount + 1 }, restState); | |
}) | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["g" /* MOUSE_DOWN */], _extends({}, baseActionGroupOptions, { | |
types: 'mousedown' | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["l" /* MOUSE_UP */], _extends({}, baseActionGroupOptions, { | |
types: 'mouseup' | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["j" /* MOUSE_OVER */], { | |
types: MOUSE_OVER_OUT_TYPES, | |
handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { | |
if (state.elementHovered) { | |
actionGroupCreator(options); | |
} | |
})) | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["i" /* MOUSE_OUT */], { | |
types: MOUSE_OVER_OUT_TYPES, | |
handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { | |
if (!state.elementHovered) { | |
actionGroupCreator(options); | |
} | |
})) | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["h" /* MOUSE_MOVE */], { | |
types: 'mousemove mouseout scroll', | |
handler: function handler(_ref6) { | |
var store = _ref6.store, | |
element = _ref6.element, | |
eventConfig = _ref6.eventConfig, | |
nativeEvent = _ref6.nativeEvent, | |
eventStateKey = _ref6.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 === undefined ? 0 : _eventConfig$restingS; | |
var _nativeEvent$clientX = nativeEvent.clientX, | |
clientX = _nativeEvent$clientX === undefined ? state.clientX : _nativeEvent$clientX, | |
_nativeEvent$clientY = nativeEvent.clientY, | |
clientY = _nativeEvent$clientY === undefined ? state.clientY : _nativeEvent$clientY, | |
_nativeEvent$pageX = nativeEvent.pageX, | |
pageX = _nativeEvent$pageX === undefined ? state.pageX : _nativeEvent$pageX, | |
_nativeEvent$pageY = nativeEvent.pageY, | |
pageY = _nativeEvent$pageY === undefined ? 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 __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["B" /* VIEWPORT */]: | |
{ | |
value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; | |
break; | |
} | |
case __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["o" /* 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 __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["e" /* ELEMENT */]: | |
default: | |
{ | |
namespacedParameterId = Object(__WEBPACK_IMPORTED_MODULE_4__IX2VanillaUtils__["i" /* 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 !== __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["e" /* ELEMENT */] || elementHovered || elementHovered !== state.elementHovered) { | |
value = reverse ? 1 - value : value; | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_IX2EngineActions__["parameterChanged"])(namespacedParameterId, value)); | |
} | |
return { | |
elementHovered: elementHovered, | |
clientX: clientX, | |
clientY: clientY, | |
pageX: pageX, | |
pageY: pageY | |
}; | |
} | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["q" /* PAGE_SCROLL */], { | |
types: CONTINUOUS_SCROLL_EVENT_TYPES, | |
handler: function handler(_ref7) { | |
var store = _ref7.store, | |
eventConfig = _ref7.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(Object(__WEBPACK_IMPORTED_MODULE_5__actions_IX2EngineActions__["parameterChanged"])(continuousParameterGroupId, value)); | |
} | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["u" /* SCROLLING_IN_VIEW */], { | |
types: CONTINUOUS_SCROLL_EVENT_TYPES, | |
handler: function handler(_ref8) { | |
var element = _ref8.element, | |
store = _ref8.store, | |
eventConfig = _ref8.eventConfig, | |
eventStateKey = _ref8.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, | |
visibleWidth = _getDocumentState5.clientWidth, | |
visibleHeight = _getDocumentState5.clientHeight; | |
var viewportWidth = scrollWidth - visibleWidth; | |
var viewportHeight = scrollHeight - visibleHeight; | |
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 === undefined ? 0 : _eventConfig$addOffse, | |
_eventConfig$endOffse = eventConfig.endOffsetValue, | |
endOffsetValue = _eventConfig$endOffse === undefined ? 0 : _eventConfig$endOffse; | |
var isXAxis = selectedAxis === 'X_AXIS'; | |
if (basedOn === __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["B" /* VIEWPORT */]) { | |
var value = isXAxis ? scrollLeft / viewportWidth : scrollTop / viewportHeight; | |
if (value !== state.scrollPercent) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_IX2EngineActions__["parameterChanged"])(continuousParameterGroupId, value)); | |
} | |
return { | |
scrollPercent: value | |
}; | |
} else { | |
var namespacedParameterId = Object(__WEBPACK_IMPORTED_MODULE_4__IX2VanillaUtils__["i" /* 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, viewportHeight); | |
var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); | |
var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; | |
if (fixedScrollPerc !== state.scrollPercent) { | |
store.dispatch(Object(__WEBPACK_IMPORTED_MODULE_5__actions_IX2EngineActions__["parameterChanged"])(namespacedParameterId, fixedScrollPerc)); | |
} | |
return { | |
scrollPercent: fixedScrollPerc | |
}; | |
} | |
} | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["v" /* SCROLL_INTO_VIEW */], scrollIntoOutOfViewOptions), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["w" /* SCROLL_OUT_OF_VIEW */], scrollIntoOutOfViewOptions), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["r" /* PAGE_SCROLL_DOWN */], _extends({}, baseScrollActionGroupOptions, { | |
handler: whenScrollDirectionChange(function (options, state) { | |
if (state.scrollingDown) { | |
actionGroupCreator(options); | |
} | |
}) | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["s" /* PAGE_SCROLL_UP */], _extends({}, baseScrollActionGroupOptions, { | |
handler: whenScrollDirectionChange(function (options, state) { | |
if (!state.scrollingDown) { | |
actionGroupCreator(options); | |
} | |
}) | |
})), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["p" /* PAGE_FINISH */], { | |
types: 'readystatechange IX2_PREVIEW_LOAD', | |
handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) | |
}), _defineProperty(_SLIDER_ACTIVE$SLIDER, __WEBPACK_IMPORTED_MODULE_6__constants_IX2EngineEventTypes__["t" /* PAGE_START */], { | |
types: 'readystatechange IX2_PREVIEW_LOAD', | |
handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) | |
}), _SLIDER_ACTIVE$SLIDER); | |
/***/ }), | |
/* 215 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var createFlow = __webpack_require__(216); | |
/** | |
* 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; | |
/***/ }), | |
/* 216 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var LodashWrapper = __webpack_require__(44), | |
flatRest = __webpack_require__(217), | |
getData = __webpack_require__(81), | |
getFuncName = __webpack_require__(82), | |
isArray = __webpack_require__(0), | |
isLaziable = __webpack_require__(230); | |
/** Used as the size to enable large array optimizations. */ | |
var LARGE_ARRAY_SIZE = 200; | |
/** 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) && value.length >= LARGE_ARRAY_SIZE) { | |
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; | |
/***/ }), | |
/* 217 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var flatten = __webpack_require__(218), | |
overRest = __webpack_require__(221), | |
setToString = __webpack_require__(223); | |
/** | |
* 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; | |
/***/ }), | |
/* 218 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseFlatten = __webpack_require__(219); | |
/** | |
* 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; | |
/***/ }), | |
/* 219 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var arrayPush = __webpack_require__(38), | |
isFlattenable = __webpack_require__(220); | |
/** | |
* 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; | |
/***/ }), | |
/* 220 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var Symbol = __webpack_require__(10), | |
isArguments = __webpack_require__(18), | |
isArray = __webpack_require__(0); | |
/** 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; | |
/***/ }), | |
/* 221 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var apply = __webpack_require__(222); | |
/* 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; | |
/***/ }), | |
/* 222 */ | |
/***/ (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; | |
/***/ }), | |
/* 223 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseSetToString = __webpack_require__(224), | |
shortOut = __webpack_require__(226); | |
/** | |
* 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; | |
/***/ }), | |
/* 224 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var constant = __webpack_require__(225), | |
defineProperty = __webpack_require__(74), | |
identity = __webpack_require__(37); | |
/** | |
* 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; | |
/***/ }), | |
/* 225 */ | |
/***/ (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; | |
/***/ }), | |
/* 226 */ | |
/***/ (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; | |
/***/ }), | |
/* 227 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var WeakMap = __webpack_require__(64); | |
/** Used to store function metadata. */ | |
var metaMap = WeakMap && new WeakMap; | |
module.exports = metaMap; | |
/***/ }), | |
/* 228 */ | |
/***/ (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; | |
/***/ }), | |
/* 229 */ | |
/***/ (function(module, exports) { | |
/** Used to lookup unminified function names. */ | |
var realNames = {}; | |
module.exports = realNames; | |
/***/ }), | |
/* 230 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var LazyWrapper = __webpack_require__(46), | |
getData = __webpack_require__(81), | |
getFuncName = __webpack_require__(82), | |
lodash = __webpack_require__(231); | |
/** | |
* 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; | |
/***/ }), | |
/* 231 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var LazyWrapper = __webpack_require__(46), | |
LodashWrapper = __webpack_require__(44), | |
baseLodash = __webpack_require__(45), | |
isArray = __webpack_require__(0), | |
isObjectLike = __webpack_require__(5), | |
wrapperClone = __webpack_require__(232); | |
/** 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 of at least `200` elements | |
* and any 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; | |
/***/ }), | |
/* 232 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var LazyWrapper = __webpack_require__(46), | |
LodashWrapper = __webpack_require__(44), | |
copyArray = __webpack_require__(233); | |
/** | |
* 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; | |
/***/ }), | |
/* 233 */ | |
/***/ (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; | |
/***/ }), | |
/* 234 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
var baseClamp = __webpack_require__(78), | |
toNumber = __webpack_require__(72); | |
/** | |
* 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; | |
/***/ }), | |
/* 235 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Auto-select links to current page or section | |
*/ | |
var Webflow = __webpack_require__(2); | |
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 validHash = /^#[\w:.-]+$/; | |
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 valid hash links w/ sections and use scroll anchor | |
if (href.indexOf('#') === 0 && validHash.test(href)) { | |
var $section = $(href); | |
$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; | |
}); | |
/***/ }), | |
/* 236 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Smooth scroll | |
*/ | |
var Webflow = __webpack_require__(2); | |
Webflow.define('scroll', module.exports = function ($) { | |
var $doc = $(document); | |
var win = window; | |
var loc = win.location; | |
var history = inIframe() ? null : win.history; | |
var validHash = /^[a-zA-Z0-9][\w:.-]*$/; | |
function inIframe() { | |
try { | |
return Boolean(win.frameElement); | |
} catch (e) { | |
return true; | |
} | |
} | |
function ready() { | |
// If hash is already present on page load, scroll to it right away | |
if (loc.hash) { | |
findEl(loc.hash.substring(1)); | |
} | |
// The current page url without the hash part. | |
var locHref = loc.href.split('#')[0]; | |
// When clicking on a link, check if it links to another part of the page | |
$doc.on('click', 'a', function (e) { | |
if (Webflow.env('design')) { | |
return; | |
} | |
// Ignore links being used by jQuery mobile | |
if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) return; | |
// Ignore empty # links | |
if (this.getAttribute('href') === '#') { | |
e.preventDefault(); | |
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; | |
} | |
// Export module | |
return { ready: ready }; | |
}); | |
/***/ }), | |
/* 237 */ | |
/***/ (function(module, exports, __webpack_require__) { | |
/** | |
* Webflow: Touch events | |
*/ | |
var Webflow = __webpack_require__(2); | |
Webflow.define('touch', module.exports = function ($) { | |
var api = {}; | |
var fallback = !document.addEventListener; | |
var getSelection = window.getSelection; | |
// Fallback to click events in old IE | |
if (fallback) { | |
$.event.special.tap = { bindType: 'click', delegateType: 'click' }; | |
} | |
api.init = function (el) { | |
if (fallback) return null; | |
el = typeof el === 'string' ? $(el).get(0) : el; | |
return el ? new Touch(el) : null; | |
}; | |
function Touch(el) { | |
var active = false; | |
var dirty = false; | |
var useTouch = false; | |
var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); | |
var startX; | |
var startY; | |
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; | |
dirty = false; | |
if (touches) { | |
useTouch = true; | |
startX = touches[0].clientX; | |
startY = touches[0].clientY; | |
} else { | |
startX = evt.clientX; | |
startY = evt.clientY; | |
} | |
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 y = touches ? touches[0].clientY : evt.clientY; | |
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(); | |
} | |
// If pointer moves more than 10px flag to cancel tap | |
if (Math.abs(x - startX) > 10 || Math.abs(y - startY) > 10) { | |
dirty = true; | |
} | |
} | |
function end(evt) { | |
if (!active) return; | |
active = false; | |
if (useTouch && evt.type === 'mouseup') { | |
evt.preventDefault(); | |
evt.stopPropagation(); | |
useTouch = false; | |
return; | |
} | |
if (!dirty) triggerEvent('tap', evt); | |
} | |
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; | |
}); | |
/***/ }) | |
/******/ ]);/** | |
* ---------------------------------------------------------------------- | |
* Webflow: Interactions: Init | |
*/ | |
Webflow.require('ix').init([ | |
{"slug":"glitchslide1","name":"Glitchslide1","value":{"style":{},"triggers":[{"type":"hover","selector":".glitch-grid-overflow-hidden-left","preserve3d":true,"stepsA":[{"transition":"transform 250ms ease 0","x":"-50px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-grid-overflow-hidden","preserve3d":true,"stepsA":[{"transition":"transform 250ms ease 0","x":"25px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-image-part-left","preserve3d":true,"stepsA":[{"transition":"transform 1s ease 0","x":"-50px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-img-part-div-right","preserve3d":true,"stepsA":[{"transition":"transform 1s ease 0","x":"30px","y":"0px","z":"0px"}],"stepsB":[]}]}}, | |
{"slug":"glitchslide-2","name":"Glitchslide 2","value":{"style":{},"triggers":[{"type":"hover","selector":".glitch-grid-overflow-hidden-left","preserve3d":true,"stepsA":[{"transition":"transform 250ms ease 0","x":"0px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-grid-overflow-hidden","preserve3d":true,"stepsA":[{"transition":"transform 250ms ease 0","x":"0px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-image-part-left","preserve3d":true,"stepsA":[{"transition":"transform 500ms ease 0","x":"0px","y":"0px","z":"0px"}],"stepsB":[]},{"type":"hover","selector":".glitch-img-part-div-right","preserve3d":true,"stepsA":[{"transition":"transform 500ms ease 0","x":"0px","y":"0px","z":"0px"}],"stepsB":[]}]}} | |
]); | |
/** | |
* ---------------------------------------------------------------------- | |
* Webflow: Interactions 2.0: Init | |
*/ | |
Webflow.require('ix2').init( | |
{"events":{"e-41":{"id":"e-41","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-36","affectedElements":{"5a892cc8a6e0f90001b3d69a|1801294c-5959-362f-da8d-13f0bac332a3":{"selector":".glitch-grid-overflow-hidden-left","selectorGuids":["562f699d-36f3-970a-5826-a2dab494e9da"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9d65d9e8-c9ff-60b5-feb0-7fd96cbcaf97":{"selector":".glitch-grid-overflow-hidden","selectorGuids":["7cb5a60a-aa02-20a8-5302-81b3739cdc71"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9":{"selector":".glitch-outer-block-inner-1","selectorGuids":["3dd3ee8b-c32a-91bf-dbb1-65362192c3e4"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee":{"selector":".glitch-outer-block-inner","selectorGuids":["e60fbccf-89c7-6c0e-71a4-a15265bac84b"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|ea495679-8476-d7d5-8d37-1cee25bd9440":{"selector":".glitch-img-part-div-right","selectorGuids":["e8a2fd72-6f19-8f8d-99a5-8c3e1300027d"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|08c0c5fd-1fe3-1dda-9f6b-bd1f38333fc0":{"selector":".glitch-image-part-left","selectorGuids":["1f306f0e-43c5-a374-25c9-e9afa3c8b91e"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|71c01221-e281-f69b-4509-ec6f64df7dcd":{"selector":".glitch-outer-block","selectorGuids":["15351209-aaa5-52f4-bb10-224b9326ce6e"],"limitAffectedElements":null}},"playInReverse":false,"autoStopEventId":"e-42"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","id":"5a892cc8a6e0f90001b3d69a|1cf617cf-c694-8110-f3b3-6fdfaddc6cd4"},"config":{"loop":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1518723197027},"e-43":{"id":"e-43","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-37","affectedElements":{"5a892cc8a6e0f90001b3d69a|ea495679-8476-d7d5-8d37-1cee25bd9440":{"selector":".glitch-img-part-div-right","selectorGuids":["e8a2fd72-6f19-8f8d-99a5-8c3e1300027d"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|71c01221-e281-f69b-4509-ec6f64df7dcd":{"selector":".glitch-outer-block","selectorGuids":["15351209-aaa5-52f4-bb10-224b9326ce6e"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee":{"selector":".glitch-outer-block-inner","selectorGuids":["e60fbccf-89c7-6c0e-71a4-a15265bac84b"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|1801294c-5959-362f-da8d-13f0bac332a3":{"selector":".glitch-grid-overflow-hidden-left","selectorGuids":["562f699d-36f3-970a-5826-a2dab494e9da"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9d65d9e8-c9ff-60b5-feb0-7fd96cbcaf97":{"selector":".glitch-grid-overflow-hidden","selectorGuids":["7cb5a60a-aa02-20a8-5302-81b3739cdc71"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|08c0c5fd-1fe3-1dda-9f6b-bd1f38333fc0":{"selector":".glitch-image-part-left","selectorGuids":["1f306f0e-43c5-a374-25c9-e9afa3c8b91e"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9":{"selector":".glitch-outer-block-inner-1","selectorGuids":["3dd3ee8b-c32a-91bf-dbb1-65362192c3e4"],"limitAffectedElements":null}},"playInReverse":false,"autoStopEventId":"e-44"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","id":"5a892cc8a6e0f90001b3d69a|95a96fd6-8c12-a1a5-83f9-985d2dac6d6f"},"config":{"loop":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1518731100648},"e-45":{"id":"e-45","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-37","affectedElements":{"5a892cc8a6e0f90001b3d69a|ea495679-8476-d7d5-8d37-1cee25bd9440":{"selector":".glitch-img-part-div-right","selectorGuids":["e8a2fd72-6f19-8f8d-99a5-8c3e1300027d"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|71c01221-e281-f69b-4509-ec6f64df7dcd":{"selector":".glitch-outer-block","selectorGuids":["15351209-aaa5-52f4-bb10-224b9326ce6e"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee":{"selector":".glitch-outer-block-inner","selectorGuids":["e60fbccf-89c7-6c0e-71a4-a15265bac84b"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|1801294c-5959-362f-da8d-13f0bac332a3":{"selector":".glitch-grid-overflow-hidden-left","selectorGuids":["562f699d-36f3-970a-5826-a2dab494e9da"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9d65d9e8-c9ff-60b5-feb0-7fd96cbcaf97":{"selector":".glitch-grid-overflow-hidden","selectorGuids":["7cb5a60a-aa02-20a8-5302-81b3739cdc71"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|08c0c5fd-1fe3-1dda-9f6b-bd1f38333fc0":{"selector":".glitch-image-part-left","selectorGuids":["1f306f0e-43c5-a374-25c9-e9afa3c8b91e"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9":{"selector":".glitch-outer-block-inner-1","selectorGuids":["3dd3ee8b-c32a-91bf-dbb1-65362192c3e4"],"limitAffectedElements":null}},"playInReverse":false,"autoStopEventId":"e-46"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","id":"5a892cc8a6e0f90001b3d69a|01308059-7775-0eff-d879-c34fcd623db5"},"config":{"loop":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1518737784610},"e-47":{"id":"e-47","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-36","affectedElements":{"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9":{"selector":".glitch-outer-block-inner-1","selectorGuids":["3dd3ee8b-c32a-91bf-dbb1-65362192c3e4"],"limitAffectedElements":null},"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee":{"selector":".glitch-outer-block-inner","selectorGuids":["e60fbccf-89c7-6c0e-71a4-a15265bac84b"],"limitAffectedElements":null}},"playInReverse":false,"autoStopEventId":"e-48"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","id":"5a892cc8a6e0f90001b3d69a|b82d2d1e-9797-147a-b043-b60dd76e992b"},"config":{"loop":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1518737830783}},"actionLists":{"a-36":{"id":"a-36","title":"glitch image slide","actionItemGroups":[{"actionItems":[{"id":"a-36-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9"},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-12","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|a5a0f5e1-62fa-6bdd-1a5c-33796ad99e92"},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-11","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|8a3f7208-421f-94f1-953e-7b88d39f8888"},"xValue":-100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee"},"xValue":-100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-36-n-13","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|a5a0f5e1-62fa-6bdd-1a5c-33796ad99e92"},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-14","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|8a3f7208-421f-94f1-953e-7b88d39f8888"},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":100,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9"},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":100,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee"},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-36-n-10","actionTypeId":"TRANSFORM_MOVE","config":{"delay":100,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|c051df8b-c628-3d27-b716-509c570e9c25"},"yValue":-50,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-36-n-9","actionTypeId":"TRANSFORM_MOVE","config":{"delay":100,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|56e1e4b4-9056-aa7f-0c74-6d8b7964917e"},"yValue":50,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"createdOn":1518723203385,"useFirstGroupAsInitialState":true},"a-37":{"id":"a-37","title":"glitch image slide 2","actionItemGroups":[{"actionItems":[{"id":"a-37-n-9","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|a5a0f5e1-62fa-6bdd-1a5c-33796ad99e92"},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-37-n-10","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|8a3f7208-421f-94f1-953e-7b88d39f8888"},"xValue":-100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-37-n-11","actionTypeId":"TRANSFORM_MOVE","config":{"delay":250,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|9f053ec2-0eda-89c1-7d96-d56e49a1a3f9"},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-37-n-15","actionTypeId":"TRANSFORM_MOVE","config":{"delay":250,"easing":"ease","duration":500,"target":{"id":"5a892cc8a6e0f90001b3d69a|7033510e-f2a1-cdbe-8312-ae3b4c81cbee"},"xValue":-100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-37-n-13","actionTypeId":"TRANSFORM_MOVE","config":{"delay":250,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|c051df8b-c628-3d27-b716-509c570e9c25"},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-37-n-14","actionTypeId":"TRANSFORM_MOVE","config":{"delay":250,"easing":"ease","duration":700,"target":{"id":"5a892cc8a6e0f90001b3d69a|56e1e4b4-9056-aa7f-0c74-6d8b7964917e"},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"createdOn":1518723203385,"useFirstGroupAsInitialState":false}},"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}]}} | |
); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment