vendor: 4,813 bytes, lines 1-153
1/*! 2 * Webflow: Front-end site library 3 * @license MIT 4 * Inline scripts may access the api using an async handler: 5 * var Webflow = Webflow || []; 6 * Webflow.push(readyFunction); 7 */ 8/******/ (function(modules) { // webpackBootstrap 9/******/ // The module cache 10/******/ var installedModules = {}; 11/******/ 12/******/ // The require function 13/******/ function __webpack_require__(moduleId) { 14/******/ 15/******/ // Check if module is in cache 16/******/ if(installedModules[moduleId]) { 17/******/ return installedModules[moduleId].exports; 18/******/ } 19/******/ // Create a new module (and put it into the cache) 20/******/ var module = installedModules[moduleId] = { 21/******/ i: moduleId, 22/******/ l: false, 23/******/ exports: {} 24/******/ }; 25/******/ 26/******/ // Execute the module function 27/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 28/******/ 29/******/ // Flag the module as loaded 30/******/ module.l = true; 31/******/ 32/******/ // Return the exports of the module 33/******/ return module.exports; 34/******/ } 35/******/ 36/******/ 37/******/ // expose the modules object (__webpack_modules__) 38/******/ __webpack_require__.m = modules; 39/******/ 40/******/ // expose the module cache 41/******/ __webpack_require__.c = installedModules; 42/******/ 43/******/ // define getter function for harmony exports 44/******/ __webpack_require__.d = function(exports, name, getter) { 45/******/ if(!__webpack_require__.o(exports, name)) { 46/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 47/******/ } 48/******/ }; 49/******/ 50/******/ // define __esModule on exports 51/******/ __webpack_require__.r = function(exports) { 52/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 53/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 54/******/ } 55/******/ Object.defineProperty(exports, '__esModule', { value: true }); 56/******/ }; 57/******/ 58/******/ // create a fake namespace object 59/******/ // mode & 1: value is a module id, require it 60/******/ // mode & 2: merge all properties of value into the ns 61/******/ // mode & 4: return value when already ns object 62/******/ // mode & 8|1: behave like require 63/******/ __webpack_require__.t = function(value, mode) { 64/******/ if(mode & 1) value = __webpack_require__(value); 65/******/ if(mode & 8) return value; 66/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 67/******/ var ns = Object.create(null); 68/******/ __webpack_require__.r(ns); 69/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 70/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 71/******/ return ns; 72/******/ }; 73/******/ 74/******/ // getDefaultExport function for compatibility with non-harmony modules 75/******/ __webpack_require__.n = function(module) { 76/******/ var getter = module && module.__esModule ? 77/******/ function getDefault() { return module['default']; } : 78/******/ function getModuleExports() { return module; }; 79/******/ __webpack_require__.d(getter, 'a', getter); 80/******/ return getter; 81/******/ }; 82/******/ 83/******/ // Object.prototype.hasOwnProperty.call 84/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 85/******/ 86/******/ // __webpack_public_path__ 87/******/ __webpack_require__.p = ""; 88/******/ 89/******/ 90/******/ // Load entry module and return exports 91/******/ return __webpack_require__(__webpack_require__.s = 120); 92/******/ }) 93/************************************************************************/ 94/******/ ([ 95/* 0 */ 96/***/ (function(module, exports) { 97 98function _interopRequireDefault(obj) { 99 return obj && obj.__esModule ? obj : { 100 "default": obj 101 }; 102} 103 104module.exports = _interopRequireDefault; 105 106/***/ }), 107/* 1 */ 108/***/ (function(module, exports) { 109 110/** 111 * Checks if `value` is classified as an `Array` object. 112 * 113 * @static 114 * @memberOf _ 115 * @since 0.1.0 116 * @category Lang 117 * @param {*} value The value to check. 118 * @returns {boolean} Returns `true` if `value` is an array, else `false`. 119 * @example 120 * 121 * _.isArray([1, 2, 3]); 122 * // => true 123 * 124 * _.isArray(document.body.children); 125 * // => false 126 * 127 * _.isArray('abc'); 128 * // => false 129 * 130 * _.isArray(_.noop); 131 * // => false 132 */ 133var isArray = Array.isArray; 134 135module.exports = isArray; 136 137 138/***/ }), 139/* 2 */ 140/***/ (function(module, exports, __webpack_require__) { 141 142"use strict"; 143 144 145var _interopRequireWildcard = __webpack_require__(14); 146 147Object.defineProperty(exports, "__esModule", { 148 value: true 149}); 150var _exportNames = { 151 IX2EngineActionTypes: true, 152 IX2EngineConstants: true 153};
154exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; 155 156var _triggerEvents = __webpack_require__(170); 157 158Object.keys(_triggerEvents).forEach(function (key) { 159 if (key === "default" || key === "__esModule") return; 160 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 161 Object.defineProperty(exports, key, { 162 enumerable: true, 163 get: function get() { 164 return _triggerEvents[key]; 165 } 166 }); 167}); 168 169var _animationActions = __webpack_require__(171); 170 171Object.keys(_animationActions).forEach(function (key) { 172 if (key === "default" || key === "__esModule") return; 173 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 174 Object.defineProperty(exports, key, { 175 enumerable: true, 176 get: function get() { 177 return _animationActions[key]; 178 } 179 }); 180}); 181 182var _triggerInteractions = __webpack_require__(172); 183 184Object.keys(_triggerInteractions).forEach(function (key) { 185 if (key === "default" || key === "__esModule") return; 186 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 187 Object.defineProperty(exports, key, { 188 enumerable: true, 189 get: function get() { 190 return _triggerInteractions[key]; 191 } 192 }); 193}); 194 195var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(173)); 196 197exports.IX2EngineActionTypes = IX2EngineActionTypes; 198 199var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(174)); 200 201exports.IX2EngineConstants = IX2EngineConstants; 202 203/***/ }), 204/* 3 */ 205/***/ (function(module, exports, __webpack_require__) { 206 207/* WEBPACK VAR INJECTION */(function(global) {var O = 'object'; 208var check = function (it) { 209 return it && it.Math == Math && it; 210}; 211 212// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 213module.exports = 214 // eslint-disable-next-line no-undef 215 check(typeof globalThis == O && globalThis) || 216 check(typeof window == O && window) || 217 check(typeof self == O && self) || 218 check(typeof global == O && global) || 219 // eslint-disable-next-line no-new-func 220 Function('return this')(); 221 222/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 223 224/***/ }), 225/* 4 */ 226/***/ (function(module, exports, __webpack_require__) { 227 228var freeGlobal = __webpack_require__(89); 229 230/** Detect free variable `self`. */ 231var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 232 233/** Used as a reference to the global object. */ 234var root = freeGlobal || freeSelf || Function('return this')(); 235 236module.exports = root; 237 238 239/***/ }), 240/* 5 */ 241/***/ (function(module, exports) { 242 243/** 244 * Checks if `value` is the 245 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 246 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 247 * 248 * @static 249 * @memberOf _ 250 * @since 0.1.0 251 * @category Lang 252 * @param {*} value The value to check. 253 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 254 * @example 255 * 256 * _.isObject({}); 257 * // => true 258 * 259 * _.isObject([1, 2, 3]); 260 * // => true 261 * 262 * _.isObject(_.noop); 263 * // => true 264 * 265 * _.isObject(null); 266 * // => false 267 */ 268function isObject(value) { 269 var type = typeof value; 270 return value != null && (type == 'object' || type == 'function'); 271} 272 273module.exports = isObject; 274 275 276/***/ }), 277/* 6 */ 278/***/ (function(module, exports, __webpack_require__) { 279 280"use strict"; 281 // @wf-will-never-add-flow-to-this-file 282 283/* globals window, document, navigator, WEBFLOW_ENV_TEST */ 284 285/* eslint-disable no-var */ 286 287/** 288 * Webflow: Core site library 289 */ 290 291var Webflow = {}; 292var modules = {}; 293var primary = []; 294var secondary = window.Webflow || []; 295var $ = window.jQuery; 296var $win = $(window); 297var $doc = $(document); 298var isFunction = $.isFunction; 299 300var _ = Webflow._ = __webpack_require__(123); 301 302var tram = Webflow.tram = __webpack_require__(64) && $.tram; 303var domready = false; 304var destroyed = false; 305tram.config.hideBackface = false; 306tram.config.keepInherited = true; 307/** 308 * Webflow.define - Define a named module 309 * @param {string} name 310 * @param {function} factory 311 * @param {object} options 312 * @return {object} 313 */ 314 315Webflow.define = function (name, factory, options) { 316 if (modules[name]) { 317 unbindModule(modules[name]); 318 } 319 320 var instance = modules[name] = factory($, _, options) || {}; 321 bindModule(instance); 322 return instance; 323}; 324/** 325 * Webflow.require - Require a named module 326 * @param {string} name 327 * @return {object} 328 */ 329 330 331Webflow.require = function (name) { 332 return modules[name]; 333}; 334 335function bindModule(module) {
336 // If running in Webflow app, subscribe to design/preview events 337 if (Webflow.env()) { 338 isFunction(module.design) && $win.on('__wf_design', module.design); 339 isFunction(module.preview) && $win.on('__wf_preview', module.preview); 340 } // Subscribe to front-end destroy event 341 342 343 isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module 344 345 if (module.ready && isFunction(module.ready)) { 346 addReady(module); 347 } 348} 349 350function addReady(module) { 351 // If domready has already happened, run ready method 352 if (domready) { 353 module.ready(); 354 return; 355 } // Otherwise add ready method to the primary queue (only once) 356 357 358 if (_.contains(primary, module.ready)) { 359 return; 360 } 361 362 primary.push(module.ready); 363} 364 365function unbindModule(module) { 366 // Unsubscribe module from window events 367 isFunction(module.design) && $win.off('__wf_design', module.design); 368 isFunction(module.preview) && $win.off('__wf_preview', module.preview); 369 isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue 370 371 if (module.ready && isFunction(module.ready)) { 372 removeReady(module); 373 } 374} 375 376function removeReady(module) { 377 primary = _.filter(primary, function (readyFn) { 378 return readyFn !== module.ready; 379 }); 380} 381/** 382 * Webflow.push - Add a ready handler into secondary queue 383 * @param {function} ready Callback to invoke on domready 384 */ 385 386 387Webflow.push = function (ready) { 388 // If domready has already happened, invoke handler 389 if (domready) { 390 isFunction(ready) && ready(); 391 return; 392 } // Otherwise push into secondary queue 393 394 395 secondary.push(ready); 396}; 397/** 398 * Webflow.env - Get the state of the Webflow app 399 * @param {string} mode [optional] 400 * @return {boolean} 401 */ 402 403 404Webflow.env = function (mode) { 405 var designFlag = window.__wf_design; 406 var inApp = typeof designFlag !== 'undefined'; 407 408 if (!mode) { 409 return inApp; 410 } 411 412 if (mode === 'design') { 413 return inApp && designFlag; 414 } 415 416 if (mode === 'preview') { 417 return inApp && !designFlag; 418 } 419 420 if (mode === 'slug') { 421 return inApp && window.__wf_slug; 422 } 423 424 if (mode === 'editor') { 425 return window.WebflowEditor; 426 } 427 428 if (mode === 'test') { 429 return false || window.__wf_test; 430 } 431 432 if (mode === 'frame') { 433 return window !== window.top; 434 } 435}; // Feature detects + browser sniffs ಠ_ಠ436 437 438var userAgent = navigator.userAgent.toLowerCase(); 439var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; 440var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); 441var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); 442Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices 443 444var touchTarget; // Listen for both events to support touch/mouse hybrid devices 445 446touch && $doc.on('touchstart mousedown', function (evt) { 447 touchTarget = evt.target; 448}); 449/** 450 * Webflow.validClick - validate click target against current touch target 451 * @param {HTMLElement} clickTarget Element being clicked 452 * @return {Boolean} True if click target is valid (always true on non-touch) 453 */ 454 455Webflow.validClick = touch ? function (clickTarget) { 456 return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); 457} : function () { 458 return true; 459}; 460/** 461 * Webflow.resize, Webflow.scroll - throttled event proxies 462 */ 463 464var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow'; 465var scrollEvents = 'scroll.webflow ' + resizeEvents; 466Webflow.resize = eventProxy($win, resizeEvents); 467Webflow.scroll = eventProxy($win, scrollEvents); 468Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events 469 470function eventProxy(target, types) { 471 // Set up throttled method (using custom frame-based _.throttle) 472 var handlers = []; 473 var proxy = {}; 474 proxy.up = _.throttle(function (evt) { 475 _.each(handlers, function (h) { 476 h(evt); 477 }); 478 }); // Bind events to target 479 480 if (target && types) { 481 target.on(types, proxy.up); 482 } 483 /** 484 * Add an event handler 485 * @param {function} handler 486 */ 487 488 489 proxy.on = function (handler) { 490 if (typeof handler !== 'function') { 491 return; 492 } 493 494 if (_.contains(handlers, handler)) { 495 return; 496 } 497 498 handlers.push(handler); 499 }; 500 /** 501 * Remove an event handler 502 * @param {function} handler 503 */ 504 505 506 proxy.off = function (handler) { 507 // If no arguments supplied, clear all handlers 508 if (!arguments.length) { 509 handlers = []; 510 return; 511 } // Otherwise, remove handler from the list 512 513 514 handlers = _.filter(handlers, function (h) { 515 return h !== handler; 516 }); 517 }; 518 519 return proxy; 520} // Webflow.location - Wrap window.location in api 521 522 523Webflow.location = function (url) { 524 window.location = url; 525}; 526 527if (Webflow.env()) { 528 // Ignore redirects inside a Webflow design/edit environment 529 Webflow.location = function () {}; 530} // Webflow.ready - Call primary and secondary handlers 531 532 533Webflow.ready = function () { 534 domready = true; // Restore modules after destroy 535 536 if (destroyed) { 537 restoreModules(); // Otherwise run primary ready methods 538 } else {
539 _.each(primary, callReady); 540 } // Run secondary ready methods 541 542 543 _.each(secondary, callReady); // Trigger resize 544 545 546 Webflow.resize.up(); 547}; 548 549function callReady(readyFn) { 550 isFunction(readyFn) && readyFn(); 551} 552 553function restoreModules() { 554 destroyed = false; 555 556 _.each(modules, bindModule); 557} 558/** 559 * Webflow.load - Add a window load handler that will run even if load event has already happened 560 * @param {function} handler 561 */ 562 563 564var deferLoad; 565 566Webflow.load = function (handler) { 567 deferLoad.then(handler); 568}; 569 570function bindLoad() { 571 // Reject any previous deferred (to support destroy) 572 if (deferLoad) { 573 deferLoad.reject(); 574 $win.off('load', deferLoad.resolve); 575 } // Create deferred and bind window load event 576 577 578 deferLoad = new $.Deferred(); 579 $win.on('load', deferLoad.resolve); 580} // Webflow.destroy - Trigger a destroy event for all modules 581 582 583Webflow.destroy = function (options) { 584 options = options || {}; 585 destroyed = true; 586 $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests 587 588 if (options.domready != null) { 589 domready = options.domready; 590 } // Unbind modules 591 592 593 _.each(modules, unbindModule); // Clear any proxy event handlers 594 595 596 Webflow.resize.off(); 597 Webflow.scroll.off(); 598 Webflow.redraw.off(); // Clear any queued ready methods 599 600 primary = []; 601 secondary = []; // If load event has not yet fired, replace the deferred 602 603 if (deferLoad.state() === 'pending') { 604 bindLoad(); 605 } 606}; // Listen for domready 607 608 609$(Webflow.ready); // Listen for window.onload and resolve deferred 610 611bindLoad(); // Export commonjs module 612 613module.exports = window.Webflow = Webflow; 614 615/***/ }), 616/* 7 */ 617/***/ (function(module, exports, __webpack_require__) { 618 619var baseMatches = __webpack_require__(177), 620 baseMatchesProperty = __webpack_require__(231), 621 identity = __webpack_require__(58), 622 isArray = __webpack_require__(1), 623 property = __webpack_require__(240); 624 625/** 626 * The base implementation of `_.iteratee`. 627 * 628 * @private 629 * @param {*} [value=_.identity] The value to convert to an iteratee. 630 * @returns {Function} Returns the iteratee. 631 */ 632function baseIteratee(value) { 633 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. 634 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. 635 if (typeof value == 'function') { 636 return value; 637 } 638 if (value == null) { 639 return identity; 640 } 641 if (typeof value == 'object') { 642 return isArray(value) 643 ? baseMatchesProperty(value[0], value[1]) 644 : baseMatches(value); 645 } 646 return property(value); 647} 648 649module.exports = baseIteratee; 650 651 652/***/ }), 653/* 8 */ 654/***/ (function(module, exports, __webpack_require__) { 655 656var baseIsNative = __webpack_require__(189), 657 getValue = __webpack_require__(194); 658 659/** 660 * Gets the native function at `key` of `object`. 661 * 662 * @private 663 * @param {Object} object The object to query. 664 * @param {string} key The key of the method to get. 665 * @returns {*} Returns the function if it's native, else `undefined`. 666 */ 667function getNative(object, key) { 668 var value = getValue(object, key); 669 return baseIsNative(value) ? value : undefined; 670} 671 672module.exports = getNative; 673 674 675/***/ }), 676/* 9 */ 677/***/ (function(module, exports) { 678 679/** 680 * Checks if `value` is object-like. A value is object-like if it's not `null` 681 * and has a `typeof` result of "object". 682 * 683 * @static 684 * @memberOf _ 685 * @since 4.0.0 686 * @category Lang 687 * @param {*} value The value to check. 688 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 689 * @example 690 * 691 * _.isObjectLike({}); 692 * // => true 693 * 694 * _.isObjectLike([1, 2, 3]); 695 * // => true 696 * 697 * _.isObjectLike(_.noop); 698 * // => false 699 * 700 * _.isObjectLike(null); 701 * // => false 702 */ 703function isObjectLike(value) { 704 return value != null && typeof value == 'object'; 705} 706 707module.exports = isObjectLike; 708 709 710/***/ }), 711/* 10 */ 712/***/ (function(module, exports, __webpack_require__) { 713 714"use strict"; 715 716 717var _interopRequireWildcard = __webpack_require__(14); 718 719Object.defineProperty(exports, "__esModule", { 720 value: true 721}); 722exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exp
722orts.IX2BrowserSupport = void 0; 723 724var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(43)); 725 726exports.IX2BrowserSupport = IX2BrowserSupport; 727 728var IX2Easings = _interopRequireWildcard(__webpack_require__(106)); 729 730exports.IX2Easings = IX2Easings; 731 732var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(108)); 733 734exports.IX2EasingUtils = IX2EasingUtils; 735 736var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(247)); 737 738exports.IX2ElementsReducer = IX2ElementsReducer; 739 740var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(110)); 741 742exports.IX2VanillaPlugins = IX2VanillaPlugins; 743 744var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(249)); 745 746exports.IX2VanillaUtils = IX2VanillaUtils; 747 748/***/ }), 749/* 11 */ 750/***/ (function(module, exports, __webpack_require__) { 751 752var Symbol = __webpack_require__(20), 753 getRawTag = __webpack_require__(190), 754 objectToString = __webpack_require__(191); 755 756/** `Object#toString` result references. */ 757var nullTag = '[object Null]', 758 undefinedTag = '[object Undefined]'; 759 760/** Built-in value references. */ 761var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 762 763/** 764 * The base implementation of `getTag` without fallbacks for buggy environments. 765 * 766 * @private 767 * @param {*} value The value to query. 768 * @returns {string} Returns the `toStringTag`. 769 */ 770function baseGetTag(value) { 771 if (value == null) { 772 return value === undefined ? undefinedTag : nullTag; 773 } 774 return (symToStringTag && symToStringTag in Object(value)) 775 ? getRawTag(value) 776 : objectToString(value); 777} 778 779module.exports = baseGetTag; 780 781 782/***/ }), 783/* 12 */ 784/***/ (function(module, exports, __webpack_require__) { 785 786var isFunction = __webpack_require__(88), 787 isLength = __webpack_require__(51); 788 789/** 790 * Checks if `value` is array-like. A value is considered array-like if it's 791 * not a function and has a `value.length` that's an integer greater than or 792 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. 793 * 794 * @static 795 * @memberOf _ 796 * @since 4.0.0 797 * @category Lang 798 * @param {*} value The value to check. 799 * @returns {boolean} Returns `true` if `value` is array-like, else `false`. 800 * @example 801 * 802 * _.isArrayLike([1, 2, 3]); 803 * // => true 804 * 805 * _.isArrayLike(document.body.children); 806 * // => true 807 * 808 * _.isArrayLike('abc'); 809 * // => true 810 * 811 * _.isArrayLike(_.noop); 812 * // => false 813 */ 814function isArrayLike(value) { 815 return value != null && isLength(value.length) && !isFunction(value); 816} 817 818module.exports = isArrayLike; 819 820 821/***/ }), 822/* 13 */ 823/***/ (function(module, exports) { 824 825function _typeof2(obj) { if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof2(obj); } 826 827function _typeof(obj) { 828 if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { 829 module.exports = _typeof = function _typeof(obj) { 830 return _typeof2(obj); 831 }; 832 } else { 833 module.exports = _typeof = function _typeof(obj) { 834 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 835 }; 836 } 837 838 return _typeof(obj); 839} 840 841module.exports = _typeof; 842 843/***/ }), 844/* 14 */ 845/***/ (function(module, exports) { 846 847function _interopRequireWildcard(obj) { 848 if (obj && obj.__esModule) { 849 return obj; 850 } else { 851 var newObj = {}; 852 853 if (obj != null) { 854 for (var key in obj) { 855 if (Object.prototype.hasOwnProperty.call(obj, key)) { 856 var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; 857 858 if (desc.get || desc.set) { 859 Object.defineProperty(newObj, key, desc); 860 } else { 861 newObj[key] = obj[key]; 862 } 863 } 864 } 865 } 866 867 newObj["default"] = obj; 868 return newObj; 869 } 870} 871 872module.exports = _interopRequireWildcard; 873 874/***/ }), 875/* 15 */ 876/***/ (function(module, exports, __webpack_require__) { 877 878var fails = __webpack_require__(16); 879 880// Thank's IE8 for his funny defineProperty 881module.exports = !fails(function () { 882 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; 883}); 884 885 886/***/ }), 887/* 16 */
888/***/ (function(module, exports) { 889 890module.exports = function (exec) { 891 try { 892 return !!exec(); 893 } catch (error) { 894 return true; 895 } 896}; 897 898 899/***/ }), 900/* 17 */ 901/***/ (function(module, exports) { 902 903var hasOwnProperty = {}.hasOwnProperty; 904 905module.exports = function (it, key) { 906 return hasOwnProperty.call(it, key); 907}; 908 909 910/***/ }), 911/* 18 */ 912/***/ (function(module, exports, __webpack_require__) { 913 914var DESCRIPTORS = __webpack_require__(15); 915var definePropertyModule = __webpack_require__(37); 916var createPropertyDescriptor = __webpack_require__(67); 917 918module.exports = DESCRIPTORS ? function (object, key, value) { 919 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 920} : function (object, key, value) { 921 object[key] = value; 922 return object; 923}; 924 925 926/***/ }), 927/* 19 */ 928/***/ (function(module, exports, __webpack_require__) { 929 930"use strict"; 931 932 933Object.defineProperty(exports, "__esModule", { 934 value: true 935}); 936 937var _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; }; 938 939exports.clone = clone; 940exports.addLast = addLast; 941exports.addFirst = addFirst; 942exports.removeLast = removeLast; 943exports.removeFirst = removeFirst; 944exports.insert = insert; 945exports.removeAt = removeAt; 946exports.replaceAt = replaceAt; 947exports.getIn = getIn; 948exports.set = set; 949exports.setIn = setIn; 950exports.update = update; 951exports.updateIn = updateIn; 952exports.merge = merge; 953exports.mergeDeep = mergeDeep; 954exports.mergeIn = mergeIn; 955exports.omit = omit; 956exports.addDefaults = addDefaults; 957 958 959/*! 960 * Timm 961 * 962 * Immutability helpers with fast reads and acceptable writes. 963 * 964 * @copyright Guillermo Grau Panea 2016 965 * @license MIT 966 */ 967 968var INVALID_ARGS = 'INVALID_ARGS'; 969 970// =============================================== 971// ### Helpers 972// =============================================== 973 974 975function throwStr(msg) { 976 throw new Error(msg); 977} 978 979function getKeysAndSymbols(obj) { 980 var keys = Object.keys(obj); 981 if (Object.getOwnPropertySymbols) { 982 return keys.concat(Object.getOwnPropertySymbols(obj)); 983 } 984 return keys; 985} 986 987var hasOwnProperty = {}.hasOwnProperty; 988 989function clone(obj) { 990 if (Array.isArray(obj)) return obj.slice(); 991 var keys = getKeysAndSymbols(obj); 992 var out = {}; 993 for (var i = 0; i < keys.length; i++) { 994 var key = keys[i]; 995 out[key] = obj[key]; 996 } 997 return out; 998} 999 1000function doMerge(fAddDefaults, fDeep, first) { 1001 var out = first; 1002 !(out != null) && throwStr( false ? undefined : INVALID_ARGS); 1003 var fChanged = false; 1004 1005 for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { 1006 rest[_key - 3] = arguments[_key]; 1007 } 1008 1009 for (var idx = 0; idx < rest.length; idx++) { 1010 var obj = rest[idx]; 1011 if (obj == null) continue; 1012 var keys = getKeysAndSymbols(obj); 1013 if (!keys.length) continue; 1014 for (var j = 0; j <= keys.length; j++) { 1015 var key = keys[j]; 1016 if (fAddDefaults && out[key] !== undefined) continue; 1017 var nextVal = obj[key]; 1018 if (fDeep && isObject(out[key]) && isObject(nextVal)) { 1019 nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); 1020 }
1021 if (nextVal === undefined || nextVal === out[key]) continue; 1022 if (!fChanged) { 1023 fChanged = true; 1024 out = clone(out); 1025 } 1026 out[key] = nextVal; 1027 } 1028 } 1029 return out; 1030} 1031 1032function isObject(o) { 1033 var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); 1034 return o != null && (type === 'object' || type === 'function'); 1035} 1036 1037// _deepFreeze = (obj) -> 1038// Object.freeze obj 1039// for key in Object.getOwnPropertyNames obj 1040// val = obj[key] 1041// if isObject(val) and not Object.isFrozen val 1042// _deepFreeze val 1043// obj 1044 1045// =============================================== 1046// -- ### Arrays 1047// =============================================== 1048 1049// -- #### addLast() 1050// -- Returns a new array with an appended item or items. 1051// -- 1052// -- Usage: `addLast<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1053// -- 1054// -- ```js 1055// -- arr = ['a', 'b'] 1056// -- arr2 = addLast(arr, 'c') 1057// -- // ['a', 'b', 'c'] 1058// -- arr2 === arr 1059// -- // false 1060// -- arr3 = addLast(arr, ['c', 'd']) 1061// -- // ['a', 'b', 'c', 'd'] 1062// -- ``` 1063// `array.concat(val)` also handles the scalar case, 1064// but is apparently very slow 1065function addLast(array, val) { 1066 if (Array.isArray(val)) return array.concat(val); 1067 return array.concat([val]); 1068} 1069 1070// -- #### addFirst() 1071// -- Returns a new array with a prepended item or items. 1072// -- 1073// -- Usage: `addFirst<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1074// -- 1075// -- ```js 1076// -- arr = ['a', 'b'] 1077// -- arr2 = addFirst(arr, 'c') 1078// -- // ['c', 'a', 'b'] 1079// -- arr2 === arr 1080// -- // false 1081// -- arr3 = addFirst(arr, ['c', 'd']) 1082// -- // ['c', 'd', 'a', 'b'] 1083// -- ``` 1084function addFirst(array, val) { 1085 if (Array.isArray(val)) return val.concat(array); 1086 return [val].concat(array); 1087} 1088 1089// -- #### removeLast() 1090// -- Returns a new array removing the last item. 1091// -- 1092// -- Usage: `removeLast<T>(array: Array<T>): Array<T>` 1093// -- 1094// -- ```js 1095// -- arr = ['a', 'b'] 1096// -- arr2 = removeLast(arr) 1097// -- // ['a'] 1098// -- arr2 === arr 1099// -- // false 1100// -- 1101// -- // The same array is returned if there are no changes: 1102// -- arr3 = [] 1103// -- removeLast(arr3) === arr3 1104// -- // true 1105// -- ``` 1106function removeLast(array) { 1107 if (!array.length) return array; 1108 return array.slice(0, array.length - 1); 1109} 1110 1111// -- #### removeFirst() 1112// -- Returns a new array removing the first item. 1113// -- 1114// -- Usage: `removeFirst<T>(array: Array<T>): Array<T>` 1115// -- 1116// -- ```js 1117// -- arr = ['a', 'b'] 1118// -- arr2 = removeFirst(arr) 1119// -- // ['b'] 1120// -- arr2 === arr 1121// -- // false 1122// -- 1123// -- // The same array is returned if there are no changes: 1124// -- arr3 = [] 1125// -- removeFirst(arr3) === arr3 1126// -- // true 1127// -- ``` 1128function removeFirst(array) { 1129 if (!array.length) return array; 1130 return array.slice(1); 1131} 1132 1133// -- #### insert() 1134// -- Returns a new array obtained by inserting an item or items 1135// -- at a specified index. 1136// -- 1137// -- Usage: `insert<T>(array: Array<T>, idx: number, val: Array<T>|T): Array<T>` 1138// -- 1139// -- ```js 1140// -- arr = ['a', 'b', 'c'] 1141// -- arr2 = insert(arr, 1, 'd') 1142// -- // ['a', 'd', 'b', 'c'] 1143// -- arr2 === arr 1144// -- // false 1145// -- insert(arr, 1, ['d', 'e']) 1146// -- // ['a', 'd', 'e', 'b', 'c'] 1147// -- ``` 1148function insert(array, idx, val) { 1149 return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); 1150} 1151 1152// -- #### removeAt() 1153// -- Returns a new array obtained by removing an item at 1154// -- a specified index. 1155// -- 1156// -- Usage: `removeAt<T>(array: Array<T>, idx: number): Array<T>` 1157// -- 1158// -- ```js 1159// -- arr = ['a', 'b', 'c'] 1160// -- arr2 = removeAt(arr, 1) 1161// -- // ['a', 'c'] 1162// -- arr2 === arr 1163// -- // false 1164// -- 1165// -- // The same array is returned if there are no changes: 1166// -- removeAt(arr, 4) === arr 1167// -- // true 1168// -- ``` 1169function removeAt(array, idx) { 1170 if (idx >= array.length || idx < 0) return array; 1171 return array.slice(0, idx).concat(array.slice(idx + 1)); 1172} 1173 1174// -- #### replaceAt() 1175// -- Returns a new array obtained by replacing an item at 1176// -- a specified index. If the provided item is the same as 1177// -- (*referentially equal to*) the previous item at that position, 1178// -- the original array is returned. 1179// -- 1180// -- Usage: `replaceAt<T>(array: Array<T>, idx: number, newItem: T): Array<T>` 1181// -- 1182// -- ```js 1183// -- arr = ['a', 'b', 'c']
1184// -- arr2 = replaceAt(arr, 1, 'd') 1185// -- // ['a', 'd', 'c'] 1186// -- arr2 === arr 1187// -- // false 1188// -- 1189// -- // The same object is returned if there are no changes: 1190// -- replaceAt(arr, 1, 'b') === arr 1191// -- // true 1192// -- ``` 1193function replaceAt(array, idx, newItem) { 1194 if (array[idx] === newItem) return array; 1195 var len = array.length; 1196 var result = Array(len); 1197 for (var i = 0; i < len; i++) { 1198 result[i] = array[i]; 1199 } 1200 result[idx] = newItem; 1201 return result; 1202} 1203 1204// =============================================== 1205// -- ### Collections (objects and arrays) 1206// =============================================== 1207// -- The following types are used throughout this section 1208// -- ```js 1209// -- type ArrayOrObject = Array<any>|Object; 1210// -- type Key = number|string; 1211// -- ``` 1212 1213// -- #### getIn() 1214// -- Returns a value from an object at a given path. Works with 1215// -- nested arrays and objects. If the path does not exist, it returns 1216// -- `undefined`. 1217// -- 1218// -- Usage: `getIn(obj: ?ArrayOrObject, path: Array<Key>): any` 1219// -- 1220// -- ```js 1221// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } 1222// -- getIn(obj, ['d', 'd1']) 1223// -- // 3 1224// -- getIn(obj, ['e', 1]) 1225// -- // 'b' 1226// -- ``` 1227function getIn(obj, path) { 1228 !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); 1229 if (obj == null) return undefined; 1230 var ptr = obj; 1231 for (var i = 0; i < path.length; i++) { 1232 var key = path[i]; 1233 ptr = ptr != null ? ptr[key] : undefined; 1234 if (ptr === undefined) return ptr; 1235 } 1236 return ptr; 1237} 1238 1239// -- #### set() 1240// -- Returns a new object with a modified attribute. 1241// -- If the provided value is the same as (*referentially equal to*) 1242// -- the previous value, the original object is returned. 1243// -- 1244// -- Usage: `set<T>(obj: ?T, key: Key, val: any): T` 1245// -- 1246// -- ```js 1247// -- obj = { a: 1, b: 2, c: 3 } 1248// -- obj2 = set(obj, 'b', 5) 1249// -- // { a: 1, b: 5, c: 3 } 1250// -- obj2 === obj 1251// -- // false 1252// -- 1253// -- // The same object is returned if there are no changes: 1254// -- set(obj, 'b', 2) === obj 1255// -- // true 1256// -- ``` 1257function set(obj, key, val) { 1258 var fallback = typeof key === 'number' ? [] : {}; 1259 var finalObj = obj == null ? fallback : obj; 1260 if (finalObj[key] === val) return finalObj; 1261 var obj2 = clone(finalObj); 1262 obj2[key] = val; 1263 return obj2; 1264} 1265 1266// -- #### setIn() 1267// -- Returns a new object with a modified **nested** attribute. 1268// -- 1269// -- Notes: 1270// -- 1271// -- * If the provided value is the same as (*referentially equal to*) 1272// -- the previous value, the original object is returned. 1273// -- * If the path does not exist, it will be created before setting 1274// -- the new value. 1275// -- 1276// -- Usage: `setIn<T: ArrayOrObject>(obj: T, path: Array<Key>, val: any): T` 1277// -- 1278// -- ```js 1279// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1280// -- obj2 = setIn(obj, ['d', 'd1'], 4) 1281// -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1282// -- obj2 === obj 1283// -- // false 1284// -- obj2.d === obj.d 1285// -- // false 1286// -- obj2.e === obj.e 1287// -- // true 1288// -- 1289// -- // The same object is returned if there are no changes: 1290// -- obj3 = setIn(obj, ['d', 'd1'], 3) 1291// -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1292// -- obj3 === obj 1293// -- // true 1294// -- obj3.d === obj.d 1295// -- // true 1296// -- obj3.e === obj.e 1297// -- // true 1298// -- 1299// -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: 1300// -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) 1301// -- // { a: 3, unknown: [{ path: 4 }] } 1302// -- ``` 1303function doSetIn(obj, path, val, idx) { 1304 var newValue = void 0; 1305 var key = path[idx]; 1306 if (idx === path.length - 1) { 1307 newValue = val; 1308 } else { 1309 var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; 1310 newValue = doSetIn(nestedObj, path, val, idx + 1); 1311 } 1312 return set(obj, key, newValue); 1313} 1314 1315function setIn(obj, path, val) { 1316 if (!path.length) return val; 1317 return doSetIn(obj, path, val, 0); 1318} 1319 1320// -- #### update() 1321// -- Returns a new object with a modified attribute,
1322// -- calculated via a user-provided callback based on the current value. 1323// -- If the calculated value is the same as (*referentially equal to*) 1324// -- the previous value, the original object is returned. 1325// -- 1326// -- Usage: `update<T: ArrayOrObject>(obj: T, key: Key, 1327// -- fnUpdate: (prevValue: any) => any): T` 1328// -- 1329// -- ```js 1330// -- obj = { a: 1, b: 2, c: 3 } 1331// -- obj2 = update(obj, 'b', (val) => val + 1) 1332// -- // { a: 1, b: 3, c: 3 } 1333// -- obj2 === obj 1334// -- // false 1335// -- 1336// -- // The same object is returned if there are no changes: 1337// -- update(obj, 'b', (val) => val) === obj 1338// -- // true 1339// -- ``` 1340function update(obj, key, fnUpdate) { 1341 var prevVal = obj == null ? undefined : obj[key]; 1342 var nextVal = fnUpdate(prevVal); 1343 return set(obj, key, nextVal); 1344} 1345 1346// -- #### updateIn() 1347// -- Returns a new object with a modified **nested** attribute, 1348// -- calculated via a user-provided callback based on the current value. 1349// -- If the calculated value is the same as (*referentially equal to*) 1350// -- the previous value, the original object is returned. 1351// -- 1352// -- Usage: `updateIn<T: ArrayOrObject>(obj: T, path: Array<Key>, 1353// -- fnUpdate: (prevValue: any) => any): T` 1354// -- 1355// -- ```js 1356// -- obj = { a: 1, d: { d1: 3, d2: 4 } } 1357// -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) 1358// -- // { a: 1, d: { d1: 4, d2: 4 } } 1359// -- obj2 === obj 1360// -- // false 1361// -- 1362// -- // The same object is returned if there are no changes: 1363// -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) 1364// -- // { a: 1, d: { d1: 3, d2: 4 } } 1365// -- obj3 === obj 1366// -- // true 1367// -- ``` 1368function updateIn(obj, path, fnUpdate) { 1369 var prevVal = getIn(obj, path); 1370 var nextVal = fnUpdate(prevVal); 1371 return setIn(obj, path, nextVal); 1372} 1373 1374// -- #### merge() 1375// -- Returns a new object built as follows: the overlapping keys from the 1376// -- second one overwrite the corresponding entries from the first one. 1377// -- Similar to `Object.assign()`, but immutable. 1378// -- 1379// -- Usage: 1380// -- 1381// -- * `merge(obj1: Object, obj2: ?Object): Object` 1382// -- * `merge(obj1: Object, ...objects: Array<?Object>): Object` 1383// -- 1384// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1385// -- new to* `obj1`, i.e. if either of the following 1386// -- conditions are true: 1387// -- 1388// -- * `obj2` is `null` or `undefined` 1389// -- * `obj2` is an object, but it is empty 1390// -- * All attributes of `obj2` are `undefined` 1391// -- * All attributes of `obj2` are referentially equal to the 1392// -- corresponding attributes of `obj1` 1393// -- 1394// -- Note that `undefined` attributes in `obj2` do not modify the 1395// -- corresponding attributes in `obj1`. 1396// -- 1397// -- ```js 1398// -- obj1 = { a: 1, b: 2, c: 3 } 1399// -- obj2 = { c: 4, d: 5 } 1400// -- obj3 = merge(obj1, obj2) 1401// -- // { a: 1, b: 2, c: 4, d: 5 } 1402// -- obj3 === obj1 1403// -- // false 1404// -- 1405// -- // The same object is returned if there are no changes: 1406// -- merge(obj1, { c: 3 }) === obj1 1407// -- // true 1408// -- ``` 1409function merge(a, b, c, d, e, f) { 1410 for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { 1411 rest[_key2 - 6] = arguments[_key2]; 1412 } 1413 1414 return rest.length ? doMerge.call.apply(doMerge, [null, false, false, a, b, c, d, e, f].concat(rest)) : doMerge(false, false, a, b, c, d, e, f); 1415} 1416 1417// -- #### mergeDeep() 1418// -- Returns a new object built as follows: the overlapping keys from the 1419// -- second one overwrite the corresponding entries from the first one. 1420// -- If both the first and second entries are objects they are merged recursively. 1421// -- Similar to `Object.assign()`, but immutable, and deeply merging. 1422// -- 1423// -- Usage: 1424// -- 1425// -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` 1426// -- * `mergeDeep(obj1: Object, ...objects: Array<?Object>): Object` 1427// -- 1428// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1429// -- new to* `obj1`, i.e. if either of the following 1430// -- conditions are true: 1431// -- 1432// -- * `obj2` is `null` or `undefined` 1433// -- * `obj2` is an object, but it is empty 1434// -- * All attributes of `obj2` are `undefined` 1435// -- * All attributes of `obj2` are referentially equal to the
1436// -- corresponding attributes of `obj1` 1437// -- 1438// -- Note that `undefined` attributes in `obj2` do not modify the 1439// -- corresponding attributes in `obj1`. 1440// -- 1441// -- ```js 1442// -- obj1 = { a: 1, b: 2, c: { a: 1 } } 1443// -- obj2 = { b: 3, c: { b: 2 } } 1444// -- obj3 = mergeDeep(obj1, obj2) 1445// -- // { a: 1, b: 3, c: { a: 1, b: 2 } } 1446// -- obj3 === obj1 1447// -- // false 1448// -- 1449// -- // The same object is returned if there are no changes: 1450// -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 1451// -- // true 1452// -- ``` 1453function mergeDeep(a, b, c, d, e, f) { 1454 for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { 1455 rest[_key3 - 6] = arguments[_key3]; 1456 } 1457 1458 return rest.length ? doMerge.call.apply(doMerge, [null, false, true, a, b, c, d, e, f].concat(rest)) : doMerge(false, true, a, b, c, d, e, f); 1459} 1460 1461// -- #### mergeIn() 1462// -- Similar to `merge()`, but merging the value at a given nested path. 1463// -- Note that the returned type is the same as that of the first argument. 1464// -- 1465// -- Usage: 1466// -- 1467// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, obj2: ?Object): T` 1468// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, 1469// -- ...objects: Array<?Object>): T` 1470// -- 1471// -- ```js 1472// -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } 1473// -- obj2 = { d3: 5 } 1474// -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) 1475// -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } 1476// -- obj3 === obj1 1477// -- // false 1478// -- 1479// -- // The same object is returned if there are no changes: 1480// -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 1481// -- // true 1482// -- ``` 1483function mergeIn(a, path, b, c, d, e, f) { 1484 var prevVal = getIn(a, path); 1485 if (prevVal == null) prevVal = {}; 1486 var nextVal = void 0; 1487 1488 for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { 1489 rest[_key4 - 7] = arguments[_key4]; 1490 } 1491 1492 if (rest.length) { 1493 nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); 1494 } else { 1495 nextVal = doMerge(false, false, prevVal, b, c, d, e, f); 1496 } 1497 return setIn(a, path, nextVal); 1498} 1499 1500// -- #### omit() 1501// -- Returns an object excluding one or several attributes. 1502// -- 1503// -- Usage: `omit(obj: Object, attrs: Array<string>|string): Object` 1504// 1505// -- ```js 1506// -- obj = { a: 1, b: 2, c: 3, d: 4 } 1507// -- omit(obj, 'a') 1508// -- // { b: 2, c: 3, d: 4 } 1509// -- omit(obj, ['b', 'c']) 1510// -- // { a: 1, d: 4 } 1511// -- 1512// -- // The same object is returned if there are no changes: 1513// -- omit(obj, 'z') === obj1 1514// -- // true 1515// -- ``` 1516function omit(obj, attrs) { 1517 var omitList = Array.isArray(attrs) ? attrs : [attrs]; 1518 var fDoSomething = false; 1519 for (var i = 0; i < omitList.length; i++) { 1520 if (hasOwnProperty.call(obj, omitList[i])) { 1521 fDoSomething = true; 1522 break; 1523 } 1524 } 1525 if (!fDoSomething) return obj; 1526 var out = {}; 1527 var keys = getKeysAndSymbols(obj); 1528 for (var _i = 0; _i < keys.length; _i++) { 1529 var key = keys[_i]; 1530 if (omitList.indexOf(key) >= 0) continue; 1531 out[key] = obj[key]; 1532 } 1533 return out; 1534} 1535 1536// -- #### addDefaults() 1537// -- Returns a new object built as follows: `undefined` keys in the first one 1538// -- are filled in with the corresponding values from the second one 1539// -- (even if they are `null`). 1540// -- 1541// -- Usage: 1542// -- 1543// -- * `addDefaults(obj: Object, defaults: Object): Object` 1544// -- * `addDefaults(obj: Object, ...defaultObjects: Array<?Object>): Object` 1545// -- 1546// -- ```js 1547// -- obj1 = { a: 1, b: 2, c: 3 } 1548// -- obj2 = { c: 4, d: 5, e: null } 1549// -- obj3 = addDefaults(obj1, obj2) 1550// -- // { a: 1, b: 2, c: 3, d: 5, e: null } 1551// -- obj3 === obj1 1552// -- // false 1553// -- 1554// -- // The same object is returned if there are no changes: 1555// -- addDefaults(obj1, { c: 4 }) === obj1 1556// -- // true 1557// -- ``` 1558function addDefaults(a, b, c, d, e, f) { 1559 for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { 1560 rest[_key5 - 6] = arguments[_key5]; 1561 } 1562 1563 return rest.length ? doMerge.call.apply(doMerge, [null, true, false, a, b, c, d, e, f].concat(rest)) : doMerge(true, false, a, b, c, d, e, f); 1564} 1565 1566// =============================================== 1567// ### Public API 1568// =============================================== 1569var timm = { 1570 clone: clone, 1571 addLast: addLast, 1572 addFirst: addFirst, 1573 removeLast: removeLast, 1574 removeFirst: removeFirst, 1575 insert: insert, 1576 removeAt: removeAt, 1577 replaceAt: replaceAt, 1578 1579 getIn: getIn, 1580 // eslint-disable-next-line object-shorthand 1581 set: set, // so that flow doesn't complain 1582 setIn: setIn, 1583 update: update, 1584 updateIn: updateIn, 1585 merge: merge, 1586 mergeDeep: mergeDeep, 1587 mergeIn: mergeIn, 1588 omit: omit, 1589 addDefaults: addDefaults 1590}; 1591 1592exports.default = timm; 1593 1594 1595/***/ }), 1596/* 20 */ 1597/***/ (function(module, exports, __webpack_require__) { 1598 1599var root = __webpack_require__(4); 1600 1601/** Built-in value references. */ 1602var Symbol = root.Symbol; 1603 1604module.exports = Symbol; 1605 1606 1607/***/ }), 1608/* 21 */ 1609/***/ (function(module, exports, __webpack_require__) { 1610 1611var isSymbol = __webpack_require__(35); 1612 1613/** Used as references for various `Number` constants. */ 1614var INFINITY = 1 / 0; 1615 1616/** 1617 * Converts `value` to a string key if it's not a string or symbol. 1618 * 1619 * @private 1620 * @param {*} value The value to inspect. 1621 * @returns {string|symbol} Returns the key. 1622 */ 1623function toKey(value) { 1624 if (typeof value == 'string' || isSymbol(value)) { 1625 return value; 1626 } 1627 var result = (value + ''); 1628 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 1629} 1630 1631module.exports = toKey; 1632 1633 1634/***/ }), 1635/* 22 */
1636/***/ (function(module, exports) { 1637 1638var g; 1639 1640// This works in non-strict mode 1641g = (function() { 1642 return this; 1643})(); 1644 1645try { 1646 // This works if eval is allowed (see CSP) 1647 g = g || new Function("return this")(); 1648} catch (e) { 1649 // This works if the window reference is available 1650 if (typeof window === "object") g = window; 1651} 1652 1653// g can still be undefined, but nothing to do about it... 1654// We return undefined, instead of nothing here, so it's 1655// easier to handle this case. if(!global) { ...} 1656 1657module.exports = g; 1658 1659 1660/***/ }), 1661/* 23 */ 1662/***/ (function(module, exports) { 1663 1664module.exports = function (it) { 1665 return typeof it === 'object' ? it !== null : typeof it === 'function'; 1666}; 1667 1668 1669/***/ }), 1670/* 24 */ 1671/***/ (function(module, exports, __webpack_require__) { 1672 1673var isObject = __webpack_require__(23); 1674 1675module.exports = function (it) { 1676 if (!isObject(it)) { 1677 throw TypeError(String(it) + ' is not an object'); 1678 } return it; 1679}; 1680 1681 1682/***/ }), 1683/* 25 */ 1684/***/ (function(module, exports, __webpack_require__) { 1685 1686var global = __webpack_require__(3); 1687var setGlobal = __webpack_require__(38); 1688var IS_PURE = __webpack_require__(136); 1689 1690var SHARED = '__core-js_shared__'; 1691var store = global[SHARED] || setGlobal(SHARED, {}); 1692 1693(module.exports = function (key, value) { 1694 return store[key] || (store[key] = value !== undefined ? value : {}); 1695})('versions', []).push({ 1696 version: '3.1.3', 1697 mode: IS_PURE ? 'pure' : 'global', 1698 copyright: '© 2019 Denis Pushkarev (zloirock.ru)' 1699}); 1700 1701 1702/***/ }), 1703/* 26 */ 1704/***/ (function(module, exports) { 1705 1706function _defineProperty(obj, key, value) { 1707 if (key in obj) { 1708 Object.defineProperty(obj, key, { 1709 value: value, 1710 enumerable: true, 1711 configurable: true, 1712 writable: true 1713 }); 1714 } else { 1715 obj[key] = value; 1716 } 1717 1718 return obj; 1719} 1720 1721module.exports = _defineProperty; 1722 1723/***/ }), 1724/* 27 */ 1725/***/ (function(module, exports) { 1726 1727function _extends() { 1728 module.exports = _extends = Object.assign || function (target) { 1729 for (var i = 1; i < arguments.length; i++) { 1730 var source = arguments[i]; 1731 1732 for (var key in source) { 1733 if (Object.prototype.hasOwnProperty.call(source, key)) { 1734 target[key] = source[key]; 1735 } 1736 } 1737 } 1738 1739 return target; 1740 }; 1741 1742 return _extends.apply(this, arguments); 1743} 1744 1745module.exports = _extends; 1746 1747/***/ }), 1748/* 28 */ 1749/***/ (function(module, exports, __webpack_require__) { 1750 1751var listCacheClear = __webpack_require__(179), 1752 listCacheDelete = __webpack_require__(180), 1753 listCacheGet = __webpack_require__(181), 1754 listCacheHas = __webpack_require__(182), 1755 listCacheSet = __webpack_require__(183); 1756 1757/** 1758 * Creates an list cache object. 1759 * 1760 * @private 1761 * @constructor 1762 * @param {Array} [entries] The key-value pairs to cache. 1763 */ 1764function ListCache(entries) { 1765 var index = -1, 1766 length = entries == null ? 0 : entries.length; 1767 1768 this.clear(); 1769 while (++index < length) { 1770 var entry = entries[index]; 1771 this.set(entry[0], entry[1]); 1772 } 1773} 1774 1775// Add methods to `ListCache`. 1776ListCache.prototype.clear = listCacheClear; 1777ListCache.prototype['delete'] = listCacheDelete; 1778ListCache.prototype.get = listCacheGet; 1779ListCache.prototype.has = listCacheHas; 1780ListCache.prototype.set = listCacheSet; 1781 1782module.exports = ListCache; 1783 1784 1785/***/ }), 1786/* 29 */ 1787/***/ (function(module, exports, __webpack_require__) { 1788 1789var eq = __webpack_require__(44); 1790 1791/** 1792 * Gets the index at which the `key` is found in `array` of key-value pairs. 1793 * 1794 * @private 1795 * @param {Array} array The array to inspect. 1796 * @param {*} key The key to search for. 1797 * @returns {number} Returns the index of the matched value, else `-1`. 1798 */ 1799function assocIndexOf(array, key) { 1800 var length = array.length; 1801 while (length--) { 1802 if (eq(array[length][0], key)) { 1803 return length; 1804 } 1805 } 1806 return -1; 1807} 1808 1809module.exports = assocIndexOf; 1810 1811 1812/***/ }), 1813/* 30 */ 1814/***/ (function(module, exports, __webpack_require__) { 1815 1816var getNative = __webpack_require__(8); 1817 1818/* Built-in method references that are verified to be native. */ 1819var nativeCreate = getNative(Object, 'create'); 1820 1821module.exports = nativeCreate; 1822 1823 1824/***/ }), 1825/* 31 */ 1826/***/ (function(module, exports, __webpack_require__) { 1827 1828var isKeyable = __webpack_require__(203); 1829 1830/** 1831 * Gets the data for `map`. 1832 * 1833 * @private 1834 * @param {Object} map The map to query. 1835 * @param {string} key The reference key. 1836 * @returns {*} Returns the map data. 1837 */ 1838function getMapData(map, key) { 1839 var data = map.__data__;
vendor: 5,067 bytes, lines 1840-2051
1840 return isKeyable(key) 1841 ? data[typeof key == 'string' ? 'string' : 'hash'] 1842 : data.map; 1843} 1844 1845module.exports = getMapData; 1846 1847 1848/***/ }), 1849/* 32 */ 1850/***/ (function(module, exports, __webpack_require__) { 1851 1852var arrayLikeKeys = __webpack_require__(96), 1853 baseKeys = __webpack_require__(52), 1854 isArrayLike = __webpack_require__(12); 1855 1856/** 1857 * Creates an array of the own enumerable property names of `object`. 1858 * 1859 * **Note:** Non-object values are coerced to objects. See the 1860 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 1861 * for more details. 1862 * 1863 * @static 1864 * @since 0.1.0 1865 * @memberOf _ 1866 * @category Object 1867 * @param {Object} object The object to query. 1868 * @returns {Array} Returns the array of property names. 1869 * @example 1870 * 1871 * function Foo() { 1872 * this.a = 1; 1873 * this.b = 2; 1874 * } 1875 * 1876 * Foo.prototype.c = 3; 1877 * 1878 * _.keys(new Foo); 1879 * // => ['a', 'b'] (iteration order is not guaranteed) 1880 * 1881 * _.keys('hi'); 1882 * // => ['0', '1'] 1883 */ 1884function keys(object) { 1885 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 1886} 1887 1888module.exports = keys; 1889 1890 1891/***/ }), 1892/* 33 */ 1893/***/ (function(module, exports, __webpack_require__) { 1894 1895var baseIsArguments = __webpack_require__(221), 1896 isObjectLike = __webpack_require__(9); 1897 1898/** Used for built-in method references. */ 1899var objectProto = Object.prototype; 1900 1901/** Used to check objects for own properties. */ 1902var hasOwnProperty = objectProto.hasOwnProperty; 1903 1904/** Built-in value references. */ 1905var propertyIsEnumerable = objectProto.propertyIsEnumerable; 1906 1907/** 1908 * Checks if `value` is likely an `arguments` object. 1909 * 1910 * @static 1911 * @memberOf _ 1912 * @since 0.1.0 1913 * @category Lang 1914 * @param {*} value The value to check. 1915 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 1916 * else `false`. 1917 * @example 1918 * 1919 * _.isArguments(function() { return arguments; }()); 1920 * // => true 1921 * 1922 * _.isArguments([1, 2, 3]); 1923 * // => false 1924 */ 1925var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { 1926 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && 1927 !propertyIsEnumerable.call(value, 'callee'); 1928}; 1929 1930module.exports = isArguments; 1931 1932 1933/***/ }), 1934/* 34 */ 1935/***/ (function(module, exports, __webpack_require__) { 1936 1937var isArray = __webpack_require__(1), 1938 isKey = __webpack_require__(57), 1939 stringToPath = __webpack_require__(232), 1940 toString = __webpack_require__(235); 1941 1942/** 1943 * Casts `value` to a path array if it's not one. 1944 * 1945 * @private 1946 * @param {*} value The value to inspect. 1947 * @param {Object} [object] The object to query keys on. 1948 * @returns {Array} Returns the cast property path array. 1949 */ 1950function castPath(value, object) { 1951 if (isArray(value)) { 1952 return value; 1953 } 1954 return isKey(value, object) ? [value] : stringToPath(toString(value)); 1955} 1956 1957module.exports = castPath; 1958 1959 1960/***/ }), 1961/* 35 */ 1962/***/ (function(module, exports, __webpack_require__) { 1963 1964var baseGetTag = __webpack_require__(11), 1965 isObjectLike = __webpack_require__(9); 1966 1967/** `Object#toString` result references. */ 1968var symbolTag = '[object Symbol]'; 1969 1970/** 1971 * Checks if `value` is classified as a `Symbol` primitive or object. 1972 * 1973 * @static 1974 * @memberOf _ 1975 * @since 4.0.0 1976 * @category Lang 1977 * @param {*} value The value to check. 1978 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 1979 * @example 1980 * 1981 * _.isSymbol(Symbol.iterator); 1982 * // => true 1983 * 1984 * _.isSymbol('abc'); 1985 * // => false 1986 */ 1987function isSymbol(value) { 1988 return typeof value == 'symbol' || 1989 (isObjectLike(value) && baseGetTag(value) == symbolTag); 1990} 1991 1992module.exports = isSymbol; 1993 1994 1995/***/ }), 1996/* 36 */ 1997/***/ (function(module, exports, __webpack_require__) { 1998 1999// toObject with fallback for non-array-like ES3 strings 2000var IndexedObject = __webpack_require__(132); 2001var requireObjectCoercible = __webpack_require__(134); 2002 2003module.exports = function (it) { 2004 return IndexedObject(requireObjectCoercible(it)); 2005}; 2006 2007 2008/***/ }), 2009/* 37 */ 2010/***/ (function(module, exports, __webpack_require__) { 2011 2012var DESCRIPTORS = __webpack_require__(15); 2013var IE8_DOM_DEFINE = __webpack_require__(69); 2014var anObject = __webpack_require__(24); 2015var toPrimitive = __webpack_require__(68); 2016 2017var nativeDefineProperty = Object.defineProperty; 2018 2019// `Object.defineProperty` method 2020// https://tc39.github.io/ecma262/#sec-object.defineproperty 2021exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { 2022 anObject(O); 2023 P = toPrimitive(P, true); 2024 anObject(Attributes); 2025 if (IE8_DOM_DEFINE) try { 2026 return nativeDefineProperty(O, P, Attributes); 2027 } catch (error) { /* empty */ } 2028 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 2029 if ('value' in Attributes) O[P] = Attributes.value; 2030 return O; 2031}; 2032 2033 2034/***/ }), 2035/* 38 */ 2036/***/ (function(module, exports, __webpack_require__) { 2037 2038var global = __webpack_require__(3); 2039var hide = __webpack_require__(18); 2040 2041module.exports = function (key, value) { 2042 try { 2043 hide(global, key, value); 2044 } catch (error) { 2045 global[key] = value; 2046 } return value; 2047}; 2048 2049 2050/***/ }), 2051/* 39 */
2052/***/ (function(module, exports) { 2053 2054module.exports = {}; 2055 2056 2057/***/ }), 2058/* 40 */ 2059/***/ (function(module, exports) { 2060 2061// IE8- don't enum bug keys 2062module.exports = [ 2063 'constructor', 2064 'hasOwnProperty', 2065 'isPrototypeOf', 2066 'propertyIsEnumerable', 2067 'toLocaleString', 2068 'toString', 2069 'valueOf' 2070]; 2071 2072 2073/***/ }), 2074/* 41 */ 2075/***/ (function(module, __webpack_exports__, __webpack_require__) { 2076 2077"use strict"; 2078__webpack_require__.r(__webpack_exports__); 2079/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); 2080/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); 2081/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79); 2082/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(165); 2083 2084 2085 2086/** 2087 * These are private action types reserved by Redux. 2088 * For any unknown actions, you must return the current state. 2089 * If the current state is undefined, you must return the initial state. 2090 * Do not reference these action types directly in your code. 2091 */ 2092var ActionTypes = { 2093 INIT: '@@redux/INIT' 2094}; 2095 2096/** 2097 * Creates a Redux store that holds the state tree. 2098 * The only way to change the data in the store is to call `dispatch()` on it. 2099 *
2100 * There should only be a single store in your app. To specify how different 2101 * parts of the state tree respond to actions, you may combine several reducers 2102 * into a single reducer function by using `combineReducers`. 2103 * 2104 * @param {Function} reducer A function that returns the next state tree, given 2105 * the current state tree and the action to handle. 2106 * 2107 * @param {any} [preloadedState] The initial state. You may optionally specify it 2108 * to hydrate the state from the server in universal apps, or to restore a 2109 * previously serialized user session. 2110 * If you use `combineReducers` to produce the root reducer function, this must be 2111 * an object with the same shape as `combineReducers` keys. 2112 * 2113 * @param {Function} enhancer The store enhancer. You may optionally specify it 2114 * to enhance the store with third-party capabilities such as middleware, 2115 * time travel, persistence, etc. The only store enhancer that ships with Redux 2116 * is `applyMiddleware()`. 2117 * 2118 * @returns {Store} A Redux store that lets you read the state, dispatch actions 2119 * and subscribe to changes. 2120 */ 2121function createStore(reducer, preloadedState, enhancer) { 2122 var _ref2; 2123 2124 if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { 2125 enhancer = preloadedState; 2126 preloadedState = undefined; 2127 } 2128 2129 if (typeof enhancer !== 'undefined') { 2130 if (typeof enhancer !== 'function') { 2131 throw new Error('Expected the enhancer to be a function.'); 2132 } 2133 2134 return enhancer(createStore)(reducer, preloadedState); 2135 } 2136 2137 if (typeof reducer !== 'function') { 2138 throw new Error('Expected the reducer to be a function.'); 2139 } 2140 2141 var currentReducer = reducer; 2142 var currentState = preloadedState; 2143 var currentListeners = []; 2144 var nextListeners = currentListeners; 2145 var isDispatching = false; 2146 2147 function ensureCanMutateNextListeners() { 2148 if (nextListeners === currentListeners) { 2149 nextListeners = currentListeners.slice(); 2150 } 2151 } 2152 2153 /** 2154 * Reads the state tree managed by the store. 2155 * 2156 * @returns {any} The current state tree of your application. 2157 */ 2158 function getState() { 2159 return currentState; 2160 } 2161 2162 /** 2163 * Adds a change listener. It will be called any time an action is dispatched, 2164 * and some part of the state tree may potentially have changed. You may then 2165 * call `getState()` to read the current state tree inside the callback. 2166 * 2167 * You may call `dispatch()` from a change listener, with the following 2168 * caveats: 2169 * 2170 * 1. The subscriptions are snapshotted just before every `dispatch()` call. 2171 * If you subscribe or unsubscribe while the listeners are being invoked, this 2172 * will not have any effect on the `dispatch()` that is currently in progress. 2173 * However, the next `dispatch()` call, whether nested or not, will use a more 2174 * recent snapshot of the subscription list. 2175 * 2176 * 2. The listener should not expect to see all state changes, as the state 2177 * might have been updated multiple times during a nested `dispatch()` before 2178 * the listener is called. It is, however, guaranteed that all subscribers 2179 * registered before the `dispatch()` started will be called with the latest 2180 * state by the time it exits. 2181 * 2182 * @param {Function} listener A callback to be invoked on every dispatch. 2183 * @returns {Function} A function to remove this change listener. 2184 */ 2185 function subscribe(listener) { 2186 if (typeof listener !== 'function') { 2187 throw new Error('Expected listener to be a function.'); 2188 } 2189 2190 var isSubscribed = true; 2191 2192 ensureCanMutateNextListeners(); 2193 nextListeners.push(listener); 2194 2195 return function unsubscribe() { 2196 if (!isSubscribed) { 2197 return; 2198 } 2199 2200 isSubscribed = false; 2201 2202 ensureCanMutateNextListeners(); 2203 var index = nextListeners.indexOf(listener); 2204 nextListeners.splice(index, 1); 2205 }; 2206 } 2207 2208 /** 2209 * Dispatches an action. It is the only way to trigger a state change. 2210 * 2211 * The `reducer` function, used to create the store, will be called with the 2212 * current state tree and the given `action`. Its return value will 2213 * be considered the **next** state of the tree, and the change listeners 2214 * will be notified. 2215 * 2216 * The base implementation only supports plain object actions. If you want to 2217 * dispatch a Promise, an Observable, a thunk, or something else, you need to 2218 * wrap your store creating function into the corresponding middleware. For 2219 * example, see the documentation for the `redux-thunk` package. Even the 2220 * middleware will eventually dispatch plain object actions using this method. 2221 * 2222 * @param {Object} action A plain object representing âwhat changedâ. It is 2223 * a good idea to keep actions serializable so you can record and replay user 2224 * sessions, or use the time travelling `redux-devtools`. An action must have 2225 * a `type` property which may not be `undefined`. It is a good idea to use 2226 * string constants for action types. 2227 * 2228 * @returns {Object} For convenience, the same action object you dispatched. 2229 * 2230 * Note that, if you use a custom middleware, it may wrap `dispatch()` to 2231 * return something else (for example, a Promise you can await). 2232 */ 2233 function dispatch(action) { 2234 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { 2235 throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); 2236 } 2237 2238 if (typeof action.type === 'undefined') { 2239 throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); 2240 } 2241 2242 if (isDispatching) { 2243 throw new Error('Reducers may not dispatch actions.'); 2244 } 2245 2246 try { 2247 isDispatching = true; 2248 currentState = currentReducer(currentState, action); 2249 } finally { 2250 isDispatching = false;
2251 } 2252 2253 var listeners = currentListeners = nextListeners; 2254 for (var i = 0; i < listeners.length; i++) { 2255 listeners[i](); 2256 } 2257 2258 return action; 2259 } 2260 2261 /** 2262 * Replaces the reducer currently used by the store to calculate the state. 2263 * 2264 * You might need this if your app implements code splitting and you want to 2265 * load some of the reducers dynamically. You might also need this if you 2266 * implement a hot reloading mechanism for Redux. 2267 * 2268 * @param {Function} nextReducer The reducer for the store to use instead. 2269 * @returns {void} 2270 */ 2271 function replaceReducer(nextReducer) { 2272 if (typeof nextReducer !== 'function') { 2273 throw new Error('Expected the nextReducer to be a function.'); 2274 } 2275 2276 currentReducer = nextReducer; 2277 dispatch({ type: ActionTypes.INIT }); 2278 } 2279 2280 /** 2281 * Interoperability point for observable/reactive libraries. 2282 * @returns {observable} A minimal observable of state changes. 2283 * For more information, see the observable proposal: 2284 * https://github.com/zenparsing/es-observable 2285 */ 2286 function observable() { 2287 var _ref; 2288 2289 var outerSubscribe = subscribe; 2290 return _ref = { 2291 /** 2292 * The minimal observable subscription method. 2293 * @param {Object} observer Any object that can be used as an observer. 2294 * The observer object should have a `next` method. 2295 * @returns {subscription} An object with an `unsubscribe` method that can 2296 * be used to unsubscribe the observable from the store, and prevent further 2297 * emission of values from the observable. 2298 */ 2299 subscribe: function subscribe(observer) { 2300 if (typeof observer !== 'object') { 2301 throw new TypeError('Expected the observer to be an object.'); 2302 } 2303 2304 function observeState() { 2305 if (observer.next) { 2306 observer.next(getState()); 2307 } 2308 } 2309 2310 observeState(); 2311 var unsubscribe = outerSubscribe(observeState); 2312 return { unsubscribe: unsubscribe }; 2313 } 2314 }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { 2315 return this; 2316 }, _ref; 2317 } 2318 2319 // When a store is created, an "INIT" action is dispatched so that every 2320 // reducer returns their initial state. This effectively populates 2321 // the initial state tree. 2322 dispatch({ type: ActionTypes.INIT }); 2323 2324 return _ref2 = { 2325 dispatch: dispatch, 2326 subscribe: subscribe, 2327 getState: getState, 2328 replaceReducer: replaceReducer 2329 }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; 2330} 2331 2332/***/ }), 2333/* 42 */ 2334/***/ (function(module, __webpack_exports__, __webpack_require__) { 2335 2336"use strict"; 2337__webpack_require__.r(__webpack_exports__); 2338/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); 2339/** 2340 * Composes single-argument functions from right to left. The rightmost 2341 * function can take multiple arguments as it provides the signature for 2342 * the resulting composite function. 2343 * 2344 * @param {...Function} funcs The functions to compose. 2345 * @returns {Function} A function obtained by composing the argument functions 2346 * from right to left. For example, compose(f, g, h) is identical to doing 2347 * (...args) => f(g(h(...args))). 2348 */ 2349 2350function compose() { 2351 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { 2352 funcs[_key] = arguments[_key]; 2353 } 2354 2355 if (funcs.length === 0) { 2356 return function (arg) { 2357 return arg; 2358 }; 2359 } 2360 2361 if (funcs.length === 1) { 2362 return funcs[0]; 2363 } 2364 2365 var last = funcs[funcs.length - 1]; 2366 var rest = funcs.slice(0, -1); 2367 return function () { 2368 return rest.reduceRight(function (composed, f) { 2369 return f(composed); 2370 }, last.apply(undefined, arguments)); 2371 }; 2372} 2373 2374/***/ }), 2375/* 43 */ 2376/***/ (function(module, exports, __webpack_require__) { 2377 2378"use strict"; 2379 2380 2381var _interopRequireDefault = __webpack_require__(0); 2382 2383Object.defineProperty(exports, "__esModule", { 2384 value: true 2385}); 2386exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROW
2386SER_ENV = void 0; 2387 2388var _find = _interopRequireDefault(__webpack_require__(85)); 2389/* eslint-env browser */ 2390 2391 2392var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe 2393 2394exports.IS_BROWSER_ENV = IS_BROWSER_ENV; 2395 2396var withBrowser = function withBrowser(fn, fallback) { 2397 if (IS_BROWSER_ENV) { 2398 return fn(); 2399 } 2400 2401 return fallback; 2402}; 2403 2404exports.withBrowser = withBrowser; 2405var ELEMENT_MATCHES = withBrowser(function () { 2406 return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { 2407 return key in Element.prototype; 2408 }); 2409}); 2410exports.ELEMENT_MATCHES = ELEMENT_MATCHES; 2411var FLEX_PREFIXED = withBrowser(function () { 2412 var el = document.createElement('i'); 2413 var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; 2414 var none = ''; 2415 2416 try { 2417 var length = values.length; 2418 2419 for (var i = 0; i < length; i++) { 2420 var value = values[i]; 2421 el.style.display = value; 2422 2423 if (el.style.display === value) { 2424 return value; 2425 } 2426 } 2427 2428 return none; 2429 } catch (err) { 2430 return none; 2431 } 2432}, 'flex'); 2433exports.FLEX_PREFIXED = FLEX_PREFIXED; 2434var TRANSFORM_PREFIXED = withBrowser(function () { 2435 var el = document.createElement('i'); 2436 2437 if (el.style.transform == null) { 2438 var prefixes = ['Webkit', 'Moz', 'ms']; 2439 var suffix = 'Transform'; 2440 var length = prefixes.length; 2441 2442 for (var i = 0; i < length; i++) { 2443 var prop = prefixes[i] + suffix; // $FlowFixMe 2444 2445 if (el.style[prop] !== undefined) { 2446 return prop; 2447 } 2448 } 2449 } 2450 2451 return 'transform'; 2452}, 'transform'); // $FlowFixMe 2453 2454exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; 2455var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; 2456var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; 2457exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; 2458 2459/***/ }), 2460/* 44 */ 2461/***/ (function(module, exports) { 2462 2463/** 2464 * Performs a 2465 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 2466 * comparison between two values to determine if they are equivalent. 2467 * 2468 * @static 2469 * @memberOf _ 2470 * @since 4.0.0 2471 * @category Lang 2472 * @param {*} value The value to compare. 2473 * @param {*} other The other value to compare. 2474 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 2475 * @example 2476 * 2477 * var object = { 'a': 1 }; 2478 * var other = { 'a': 1 }; 2479 * 2480 * _.eq(object, object); 2481 * // => true 2482 * 2483 * _.eq(object, other); 2484 * // => false 2485 * 2486 * _.eq('a', 'a'); 2487 * // => true 2488 * 2489 * _.eq('a', Object('a')); 2490 * // => false 2491 * 2492 * _.eq(NaN, NaN); 2493 * // => true 2494 */ 2495function eq(value, other) { 2496 return value === other || (value !== value && other !== other); 2497} 2498 2499module.exports = eq; 2500 2501 2502/***/ }), 2503/* 45 */ 2504/***/ (function(module, exports, __webpack_require__) { 2505 2506var getNative = __webpack_require__(8), 2507 root = __webpack_require__(4); 2508 2509/* Built-in method references that are verified to be native. */ 2510var Map = getNative(root, 'Map'); 2511 2512module.exports = Map; 2513 2514 2515/***/ }), 2516/* 46 */ 2517/***/ (function(module, exports, __webpack_require__) { 2518 2519var mapCacheClear = __webpack_require__(195), 2520 mapCacheDelete = __webpack_require__(202), 2521 mapCacheGet = __webpack_require__(204), 2522 mapCacheHas = __webpack_require__(205), 2523 mapCacheSet = __webpack_require__(206); 2524 2525/** 2526 * Creates a map cache object to store key-value pairs. 2527 * 2528 * @private 2529 * @constructor 2530 * @param {Array} [entries] The key-value pairs to cache. 2531 */ 2532function MapCache(entries) { 2533 var index = -1, 2534 length = entries == null ? 0 : entries.length; 2535 2536 this.clear(); 2537 while (++index < length) { 2538 var entry = entries[index]; 2539 this.set(entry[0], entry[1]); 2540 } 2541} 2542 2543// Add methods to `MapCache`. 2544MapCache.prototype.clear = mapCacheClear; 2545MapCache.prototype['delete'] = mapCacheDelete; 2546MapCache.prototype.get = mapCacheGet; 2547MapCache.prototype.has = mapCacheHas; 2548MapCache.prototype.set = mapCacheSet; 2549 2550module.exports = MapCache; 2551 2552 2553/***/ }), 2554/* 47 */ 2555/***/ (function(module, exports) { 2556 2557/** 2558 * Appends the elements of `values` to `array`. 2559 * 2560 * @private 2561 * @param {Array} array The array to modify. 2562 * @param {Array} values The values to append. 2563 * @returns {Array} Returns `array`. 2564 */ 2565function arrayPush(array, values) { 2566 var index = -1, 2567 length = values.length, 2568 offset = array.length; 2569 2570 while (++index < length) { 2571 array[offset + index] = values[index]; 2572 } 2573 return array; 2574} 2575 2576module.exports = arrayPush; 2577 2578 2579/***/ }), 2580/* 48 */ 2581/***/ (function(module, exports, __webpack_require__) { 2582 2583/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(4), 2584 stubFalse = __webpack_require__(222); 2585 2586/** Detect free variable `exports`. */ 2587var freeExports = true && exports && !exports.nodeType && exports; 2588 2589/** Detect free variable `module`. */ 2590var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 2591 2592/** Detect the popular CommonJS extension `module.exports`. */ 2593var moduleExports = freeModule && freeModule.exports === freeExports; 2594 2595/** Built-in value references. */ 2596var Buffer = moduleExports ? root.Buffer : undefined; 2597 2598/* Built-in method references for those with the same name as other `lodash` methods. */ 2599var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; 2600 2601/** 2602 * Checks if `value` is a buffer. 2603 * 2604 * @static 2605 * @memberOf _ 2606 * @since 4.3.0 2607 * @category Lang 2608 * @param {*} value The value to check. 2609 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. 2610 * @example 2611 * 2612 * _.isBuffer(new Buffer(2)); 2613 * // => true 2614 * 2615 * _.isBuffer(new Uint8Array(2)); 2616 * // => false 2617 */ 2618var isBuffer = nativeIsBuffer || stubFalse; 2619 2620module.exports = isBuffer; 2621 2622/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) 2623 2624/***/ }), 2625/* 49 */
vendor: 5,342 bytes, lines 2626-2834
2626/***/ (function(module, exports) { 2627 2628/** Used as references for various `Number` constants. */ 2629var MAX_SAFE_INTEGER = 9007199254740991; 2630 2631/** Used to detect unsigned integer values. */ 2632var reIsUint = /^(?:0|[1-9]\d*)$/; 2633 2634/** 2635 * Checks if `value` is a valid array-like index. 2636 * 2637 * @private 2638 * @param {*} value The value to check. 2639 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 2640 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 2641 */ 2642function isIndex(value, length) { 2643 var type = typeof value; 2644 length = length == null ? MAX_SAFE_INTEGER : length; 2645 2646 return !!length && 2647 (type == 'number' || 2648 (type != 'symbol' && reIsUint.test(value))) && 2649 (value > -1 && value % 1 == 0 && value < length); 2650} 2651 2652module.exports = isIndex; 2653 2654 2655/***/ }), 2656/* 50 */ 2657/***/ (function(module, exports, __webpack_require__) { 2658 2659var baseIsTypedArray = __webpack_require__(223), 2660 baseUnary = __webpack_require__(224), 2661 nodeUtil = __webpack_require__(225); 2662 2663/* Node.js helper references. */ 2664var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 2665 2666/** 2667 * Checks if `value` is classified as a typed array. 2668 * 2669 * @static 2670 * @memberOf _ 2671 * @since 3.0.0 2672 * @category Lang 2673 * @param {*} value The value to check. 2674 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 2675 * @example 2676 * 2677 * _.isTypedArray(new Uint8Array); 2678 * // => true 2679 * 2680 * _.isTypedArray([]); 2681 * // => false 2682 */ 2683var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 2684 2685module.exports = isTypedArray; 2686 2687 2688/***/ }), 2689/* 51 */ 2690/***/ (function(module, exports) { 2691 2692/** Used as references for various `Number` constants. */ 2693var MAX_SAFE_INTEGER = 9007199254740991; 2694 2695/** 2696 * Checks if `value` is a valid array-like length. 2697 * 2698 * **Note:** This method is loosely based on 2699 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 2700 * 2701 * @static 2702 * @memberOf _ 2703 * @since 4.0.0 2704 * @category Lang 2705 * @param {*} value The value to check. 2706 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 2707 * @example 2708 * 2709 * _.isLength(3); 2710 * // => true 2711 * 2712 * _.isLength(Number.MIN_VALUE); 2713 * // => false 2714 * 2715 * _.isLength(Infinity); 2716 * // => false 2717 * 2718 * _.isLength('3'); 2719 * // => false 2720 */ 2721function isLength(value) { 2722 return typeof value == 'number' && 2723 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 2724} 2725 2726module.exports = isLength; 2727 2728 2729/***/ }), 2730/* 52 */ 2731/***/ (function(module, exports, __webpack_require__) { 2732 2733var isPrototype = __webpack_require__(53), 2734 nativeKeys = __webpack_require__(226); 2735 2736/** Used for built-in method references. */ 2737var objectProto = Object.prototype; 2738 2739/** Used to check objects for own properties. */ 2740var hasOwnProperty = objectProto.hasOwnProperty; 2741 2742/** 2743 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. 2744 * 2745 * @private 2746 * @param {Object} object The object to query. 2747 * @returns {Array} Returns the array of property names. 2748 */ 2749function baseKeys(object) { 2750 if (!isPrototype(object)) { 2751 return nativeKeys(object); 2752 } 2753 var result = []; 2754 for (var key in Object(object)) { 2755 if (hasOwnProperty.call(object, key) && key != 'constructor') { 2756 result.push(key); 2757 } 2758 } 2759 return result; 2760} 2761 2762module.exports = baseKeys; 2763 2764 2765/***/ }), 2766/* 53 */ 2767/***/ (function(module, exports) { 2768 2769/** Used for built-in method references. */ 2770var objectProto = Object.prototype; 2771 2772/** 2773 * Checks if `value` is likely a prototype object. 2774 * 2775 * @private 2776 * @param {*} value The value to check. 2777 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 2778 */ 2779function isPrototype(value) { 2780 var Ctor = value && value.constructor, 2781 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 2782 2783 return value === proto; 2784} 2785 2786module.exports = isPrototype; 2787 2788 2789/***/ }), 2790/* 54 */ 2791/***/ (function(module, exports, __webpack_require__) { 2792 2793var DataView = __webpack_require__(227), 2794 Map = __webpack_require__(45), 2795 Promise = __webpack_require__(228), 2796 Set = __webpack_require__(229), 2797 WeakMap = __webpack_require__(99), 2798 baseGetTag = __webpack_require__(11), 2799 toSource = __webpack_require__(90); 2800 2801/** `Object#toString` result references. */ 2802var mapTag = '[object Map]', 2803 objectTag = '[object Object]', 2804 promiseTag = '[object Promise]', 2805 setTag = '[object Set]', 2806 weakMapTag = '[object WeakMap]'; 2807 2808var dataViewTag = '[object DataView]'; 2809 2810/** Used to detect maps, sets, and weakmaps. */ 2811var dataViewCtorString = toSource(DataView), 2812 mapCtorString = toSource(Map), 2813 promiseCtorString = toSource(Promise), 2814 setCtorString = toSource(Set), 2815 weakMapCtorString = toSource(WeakMap); 2816 2817/** 2818 * Gets the `toStringTag` of `value`. 2819 * 2820 * @private 2821 * @param {*} value The value to query. 2822 * @returns {string} Returns the `toStringTag`. 2823 */ 2824var getTag = baseGetTag; 2825 2826// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. 2827if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || 2828 (Map && getTag(new Map) != mapTag) || 2829 (Promise && getTag(Promise.resolve()) != promiseTag) || 2830 (Set && getTag(new Set) != setTag) || 2831 (WeakMap && getTag(new WeakMap) != weakMapTag)) { 2832 getTag = function(value) { 2833 var result = baseGetTag(value), 2834 Ctor = result == objectTag ? value.constructor : undefined,
vendor: 6,099 bytes, lines 2835-3076
2835 ctorString = Ctor ? toSource(Ctor) : ''; 2836 2837 if (ctorString) { 2838 switch (ctorString) { 2839 case dataViewCtorString: return dataViewTag; 2840 case mapCtorString: return mapTag; 2841 case promiseCtorString: return promiseTag; 2842 case setCtorString: return setTag; 2843 case weakMapCtorString: return weakMapTag; 2844 } 2845 } 2846 return result; 2847 }; 2848} 2849 2850module.exports = getTag; 2851 2852 2853/***/ }), 2854/* 55 */ 2855/***/ (function(module, exports, __webpack_require__) { 2856 2857var baseGet = __webpack_require__(56); 2858 2859/** 2860 * Gets the value at `path` of `object`. If the resolved value is 2861 * `undefined`, the `defaultValue` is returned in its place. 2862 * 2863 * @static 2864 * @memberOf _ 2865 * @since 3.7.0 2866 * @category Object 2867 * @param {Object} object The object to query. 2868 * @param {Array|string} path The path of the property to get. 2869 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 2870 * @returns {*} Returns the resolved value. 2871 * @example 2872 * 2873 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 2874 * 2875 * _.get(object, 'a[0].b.c'); 2876 * // => 3 2877 * 2878 * _.get(object, ['a', '0', 'b', 'c']); 2879 * // => 3 2880 * 2881 * _.get(object, 'a.b.c', 'default'); 2882 * // => 'default' 2883 */ 2884function get(object, path, defaultValue) { 2885 var result = object == null ? undefined : baseGet(object, path); 2886 return result === undefined ? defaultValue : result; 2887} 2888 2889module.exports = get; 2890 2891 2892/***/ }), 2893/* 56 */ 2894/***/ (function(module, exports, __webpack_require__) { 2895 2896var castPath = __webpack_require__(34), 2897 toKey = __webpack_require__(21); 2898 2899/** 2900 * The base implementation of `_.get` without support for default values. 2901 * 2902 * @private 2903 * @param {Object} object The object to query. 2904 * @param {Array|string} path The path of the property to get. 2905 * @returns {*} Returns the resolved value. 2906 */ 2907function baseGet(object, path) { 2908 path = castPath(path, object); 2909 2910 var index = 0, 2911 length = path.length; 2912 2913 while (object != null && index < length) { 2914 object = object[toKey(path[index++])]; 2915 } 2916 return (index && index == length) ? object : undefined; 2917} 2918 2919module.exports = baseGet; 2920 2921 2922/***/ }), 2923/* 57 */ 2924/***/ (function(module, exports, __webpack_require__) { 2925 2926var isArray = __webpack_require__(1), 2927 isSymbol = __webpack_require__(35); 2928 2929/** Used to match property names within property paths. */ 2930var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, 2931 reIsPlainProp = /^\w*$/; 2932 2933/** 2934 * Checks if `value` is a property name and not a property path. 2935 * 2936 * @private 2937 * @param {*} value The value to check. 2938 * @param {Object} [object] The object to query keys on. 2939 * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 2940 */ 2941function isKey(value, object) { 2942 if (isArray(value)) { 2943 return false; 2944 } 2945 var type = typeof value; 2946 if (type == 'number' || type == 'symbol' || type == 'boolean' || 2947 value == null || isSymbol(value)) { 2948 return true; 2949 } 2950 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || 2951 (object != null && value in Object(object)); 2952} 2953 2954module.exports = isKey; 2955 2956 2957/***/ }), 2958/* 58 */ 2959/***/ (function(module, exports) { 2960 2961/** 2962 * This method returns the first argument it receives. 2963 * 2964 * @static 2965 * @since 0.1.0 2966 * @memberOf _ 2967 * @category Util 2968 * @param {*} value Any value. 2969 * @returns {*} Returns `value`. 2970 * @example 2971 * 2972 * var object = { 'a': 1 }; 2973 * 2974 * console.log(_.identity(object) === object); 2975 * // => true 2976 */ 2977function identity(value) { 2978 return value; 2979} 2980 2981module.exports = identity; 2982 2983 2984/***/ }), 2985/* 59 */ 2986/***/ (function(module, exports, __webpack_require__) { 2987 2988var isObject = __webpack_require__(5), 2989 isSymbol = __webpack_require__(35); 2990 2991/** Used as references for various `Number` constants. */ 2992var NAN = 0 / 0; 2993 2994/** Used to match leading and trailing whitespace. */ 2995var reTrim = /^\s+|\s+$/g; 2996 2997/** Used to detect bad signed hexadecimal string values. */ 2998var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 2999 3000/** Used to detect binary string values. */ 3001var reIsBinary = /^0b[01]+$/i; 3002 3003/** Used to detect octal string values. */ 3004var reIsOctal = /^0o[0-7]+$/i; 3005 3006/** Built-in method references without a dependency on `root`. */ 3007var freeParseInt = parseInt; 3008 3009/** 3010 * Converts `value` to a number. 3011 * 3012 * @static 3013 * @memberOf _ 3014 * @since 4.0.0 3015 * @category Lang 3016 * @param {*} value The value to process. 3017 * @returns {number} Returns the number. 3018 * @example 3019 * 3020 * _.toNumber(3.2); 3021 * // => 3.2 3022 * 3023 * _.toNumber(Number.MIN_VALUE); 3024 * // => 5e-324 3025 * 3026 * _.toNumber(Infinity); 3027 * // => Infinity 3028 * 3029 * _.toNumber('3.2'); 3030 * // => 3.2 3031 */ 3032function toNumber(value) { 3033 if (typeof value == 'number') { 3034 return value; 3035 } 3036 if (isSymbol(value)) { 3037 return NAN; 3038 } 3039 if (isObject(value)) { 3040 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 3041 value = isObject(other) ? (other + '') : other; 3042 } 3043 if (typeof value != 'string') { 3044 return value === 0 ? value : +value; 3045 } 3046 value = value.replace(reTrim, ''); 3047 var isBinary = reIsBinary.test(value); 3048 return (isBinary || reIsOctal.test(value)) 3049 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 3050 : (reIsBadHex.test(value) ? NAN : +value); 3051} 3052 3053module.exports = toNumber; 3054 3055 3056/***/ }), 3057/* 60 */ 3058/***/ (function(module, exports, __webpack_require__) { 3059 3060"use strict"; 3061 3062 3063var _interopRequireDefault = __webpack_require__(0); 3064 3065Object.defineProperty(exports, "__esModule", { 3066 value: true 3067}); 3068exports.mediaQueriesDefined = exports.viewportWidthChanged = exports.actionListPlaybackChanged = exports.elementStateChanged = exports.instanceRemoved = exports.instanceStarted = exports.instanceAdded = exports.parameterChanged = exports.animationFrameChanged = exports.eventStateChanged = exports.testFrameRendered = exports.eventListenerAdded = exports.clearRequested = exports.stopRequested = exports.playbackRequested = exports.previewRequested = exports.sessionStopped = exports.sessionStarted = exports.sessionInitialized = exports.rawDataImported = void 0; 3069 3070var _extends2 = _interopRequireDefault(__webpack_require__(27)); 3071 3072var _constants = __webpack_require__(2); 3073 3074var _shared = __webpack_require__(10); 3075 3076var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
3077 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 3078 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 3079 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 3080 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 3081 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 3082 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 3083 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 3084 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, 3085 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 3086 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 3087 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 3088 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 3089 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, 3090 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 3091 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 3092 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 3093 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, 3094 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 3095 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 3096 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 3097var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it 3098 3099var rawDataImported = function rawDataImported(rawData) { 3100 return { 3101 type: IX2_RAW_DATA_IMPORTED, 3102 payload: (0, _extends2["default"])({}, reifyState(rawData)) 3103 }; 3104}; 3105 3106exports.rawDataImported = rawDataImported; 3107 3108var sessionInitialized = function sessionInitialized(_ref) { 3109 var hasBoundaryNodes = _ref.hasBoundaryNodes; 3110 return { 3111 type: IX2_SESSION_INITIALIZED, 3112 payload: { 3113 hasBoundaryNodes: hasBoundaryNodes 3114 } 3115 }; 3116}; 3117 3118exports.sessionInitialized = sessionInitialized; 3119 3120var sessionStarted = function sessionStarted() { 3121 return { 3122 type: IX2_SESSION_STARTED 3123 }; 3124}; 3125 3126exports.sessionStarted = sessionStarted; 3127 3128var sessionStopped = function sessionStopped() { 3129 return { 3130 type: IX2_SESSION_STOPPED 3131 }; 3132}; 3133 3134exports.sessionStopped = sessionStopped; 3135 3136var previewRequested = function previewRequested(_ref2) { 3137 var rawData = _ref2.rawData, 3138 defer = _ref2.defer; 3139 return { 3140 type: IX2_PREVIEW_REQUESTED, 3141 payload: { 3142 defer: defer, 3143 rawData: rawData 3144 } 3145 }; 3146}; 3147 3148exports.previewRequested = previewRequested; 3149 3150var playbackRequested = function playbackRequested(_ref3) { 3151 var _ref3$actionTypeId = _ref3.actionTypeId, 3152 actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, 3153 actionListId = _ref3.actionListId, 3154 actionItemId = _ref3.actionItemId, 3155 eventId = _ref3.eventId, 3156 allowEvents = _ref3.allowEvents, 3157 immediate = _ref3.immediate, 3158 testManual = _ref3.testManual, 3159 verbose = _ref3.verbose, 3160 rawData = _ref3.rawData; 3161 return { 3162 type: IX2_PLAYBACK_REQUESTED, 3163 payload: { 3164 actionTypeId: actionTypeId, 3165 actionListId: actionListId, 3166 actionItemId: actionItemId, 3167 testManual: testManual, 3168 eventId: eventId, 3169 allowEvents: allowEvents, 3170 immediate: immediate, 3171 verbose: verbose, 3172 rawData: rawData 3173 } 3174 }; 3175}; 3176 3177exports.playbackRequested = playbackRequested; 3178 3179var stopRequested = function stopRequested(actionListId) { 3180 return { 3181 type: IX2_STOP_REQUESTED, 3182 payload: { 3183 actionListId: actionListId 3184 } 3185 }; 3186}; 3187 3188exports.stopRequested = stopRequested; 3189 3190var clearRequested = function clearRequested() { 3191 return { 3192 type: IX2_CLEAR_REQUESTED 3193 }; 3194}; 3195 3196exports.clearRequested = clearRequested; 3197 3198var eventListenerAdded = function eventListenerAdded(target, listenerParams) { 3199 return { 3200 type: IX2_EVENT_LISTENER_ADDED, 3201 payload: { 3202 target: target, 3203 listenerParams: listenerParams 3204 } 3205 }; 3206}; 3207 3208exports.eventListenerAdded = eventListenerAdded; 3209 3210var testFrameRendered = function testFrameRendered() { 3211 var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; 3212 return { 3213 type: IX2_TEST_FRAME_RENDERED, 3214 payload: { 3215 step: step 3216 } 3217 }; 3218}; 3219 3220exports.testFrameRendered = testFrameRendered; 3221 3222var eventStateChanged = function eventStateChanged(stateKey, newState) { 3223 return { 3224 type: IX2_EVENT_STATE_CHANGED, 3225 payload: { 3226 stateKey: stateKey, 3227 newState: newState 3228 } 3229 }; 3230}; 3231 3232exports.eventStateChanged = eventStateChanged; 3233 3234var animationFrameChanged = function animationFrameChanged(now, parameters) { 3235 return { 3236 type: IX2_ANIMATION_FRAME_CHANGED, 3237 payload: { 3238 now: now, 3239 parameters: parameters 3240 } 3241 }; 3242}; 3243 3244exports.animationFrameChanged = animationFrameChanged; 3245 3246var parameterChanged = function parameterChanged(key, value) { 3247 return { 3248 type: IX2_PARAMETER_CHANGED, 3249 payload: { 3250 key: key, 3251 value: value 3252 } 3253 }; 3254}; 3255 3256exports.parameterChanged = parameterChanged; 3257 3258var instanceAdded = function instanceAdded(options) { 3259 return { 3260 type: IX2_INSTANCE_ADDED, 3261 payload: (0, _extends2["default"])({}, options) 3262 }; 3263}; 3264 3265exports.instanceAdded = instanceAdded; 3266 3267var instanceStarted = function instanceStarted(instanceId, time) { 3268 return { 3269 type: IX2_INSTANCE_STARTED, 3270 payload: { 3271 instanceId: instanceId, 3272 time: time 3273 } 3274 }; 3275}; 3276 3277exports.instanceStarted = instanceStarted; 3278 3279var instanceRemoved = function instanceRemoved(instanceId) { 3280 return { 3281 type: IX2_INSTANCE_REMOVED, 3282 payload: { 3283 instanceId: instanceId 3284 } 3285 }; 3286}; 3287 3288exports.instanceRemoved = instanceRemoved; 3289 3290var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { 3291 return { 3292 type: IX2_ELEMENT_STATE_CHANGED, 3293 payload: { 3294 elementId: elementId, 3295 actionTypeId: actionTypeId, 3296 current: current, 3297 actionItem: actionItem 3298 } 3299 }; 3300}; 3301 3302exports.elementStateChanged = elementStateChanged; 3303 3304var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { 3305 var actionListId = _ref4.actionListId, 3306 isPlaying = _ref4.isPlaying; 3307 return { 3308 type: IX2_ACTION_LIST_PLAYBACK_CHANGED, 3309 payload: { 3310 actionListId: actionListId, 3311 isPlaying: isPlaying 3312 } 3313 }; 3314}; 3315 3316exports.actionListPlaybackChanged = actionListPlaybackChanged; 3317 3318var viewportWidthChanged = function viewportWidthChanged(_ref5) { 3319 var width = _ref5.width, 3320 mediaQueries = _ref5.mediaQueries; 3321 return { 3322 type: IX2_VIEWPORT_WIDTH_CHANGED, 3323 payload: { 3324 width: width, 3325 mediaQueries: mediaQueries 3326 } 3327 }; 3328}; 3329 3330exports.viewportWidthChanged = viewportWidthChanged; 3331 3332var mediaQueriesDefined = function mediaQueriesDefined() { 3333 return { 3334 type: IX2_MEDIA_QUERIES_DEFINED 3335 }; 3336}; 3337 3338exports.mediaQueriesDefined = mediaQueriesDefined; 3339 3340/***/ }), 3341/* 61 */ 3342/***/ (function(module, exports, __webpack_require__) { 3343 3344var baseCreate = __webpack_require__(117), 3345 baseLodash = __webpack_require__(62); 3346 3347/** 3348 * The base constructor for creating `lodash` wrapper objects. 3349 * 3350 * @private 3351 * @param {*} value The value to wrap. 3352 * @param {boolean} [chainAll] Enable explicit method chain sequences. 3353 */ 3354function LodashWrapper(value, chainAll) { 3355 this.__wrapped__ = value; 3356 this.__actions__ = []; 3357 this.__chain__ = !!chainAll; 3358 this.__index__ = 0; 3359 this.__values__ = undefined; 3360} 3361
3362LodashWrapper.prototype = baseCreate(baseLodash.prototype); 3363LodashWrapper.prototype.constructor = LodashWrapper; 3364 3365module.exports = LodashWrapper; 3366 3367 3368/***/ }), 3369/* 62 */ 3370/***/ (function(module, exports) { 3371 3372/** 3373 * The function whose prototype chain sequence wrappers inherit from. 3374 * 3375 * @private 3376 */ 3377function baseLodash() { 3378 // No operation performed. 3379} 3380 3381module.exports = baseLodash; 3382 3383 3384/***/ }), 3385/* 63 */ 3386/***/ (function(module, exports, __webpack_require__) { 3387 3388var baseCreate = __webpack_require__(117), 3389 baseLodash = __webpack_require__(62); 3390 3391/** Used as references for the maximum length and index of an array. */ 3392var MAX_ARRAY_LENGTH = 4294967295; 3393 3394/** 3395 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 3396 * 3397 * @private 3398 * @constructor 3399 * @param {*} value The value to wrap. 3400 */ 3401function LazyWrapper(value) { 3402 this.__wrapped__ = value; 3403 this.__actions__ = []; 3404 this.__dir__ = 1; 3405 this.__filtered__ = false; 3406 this.__iteratees__ = []; 3407 this.__takeCount__ = MAX_ARRAY_LENGTH; 3408 this.__views__ = []; 3409} 3410 3411// Ensure `LazyWrapper` is an instance of `baseLodash`. 3412LazyWrapper.prototype = baseCreate(baseLodash.prototype); 3413LazyWrapper.prototype.constructor = LazyWrapper; 3414 3415module.exports = LazyWrapper; 3416 3417 3418/***/ }), 3419/* 64 */ 3420/***/ (function(module, exports, __webpack_require__) { 3421 3422"use strict"; 3423 // @wf-will-never-add-flow-to-this-file 3424 3425/* eslint-disable eslint-comments/no-unlimited-disable */ 3426 3427/* eslint-disable */ 3428 3429/*! 3430 * tram.js v0.8.2-global 3431 * Cross-browser CSS3 transitions in JavaScript 3432 * https://github.com/bkwld/tram 3433 * MIT License 3434 */ 3435 3436/* prettier-ignore */ 3437 3438var _interopRequireDefault = __webpack_require__(0); 3439 3440var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 3441 3442window.tram = function (a) { 3443 function b(a, b) { 3444 var c = new M.Bare(); 3445 return c.init(a, b); 3446 } 3447 3448 function c(a) { 3449 return a.replace(/[A-Z]/g, function (a) { 3450 return "-" + a.toLowerCase(); 3451 }); 3452 } 3453 3454 function d(a) { 3455 var b = parseInt(a.slice(1), 16), 3456 c = b >> 16 & 255, 3457 d = b >> 8 & 255, 3458 e = 255 & b; 3459 return [c, d, e]; 3460 } 3461 3462 function e(a, b, c) { 3463 return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); 3464 } 3465 3466 function f() {} 3467 3468 function g(a, b) { 3469 j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); 3470 } 3471 3472 function h(a, b, c) { 3473 j("Units do not match [" + a + "]: " + b + ", " + c); 3474 } 3475 3476 function i(a, b, c) { 3477 if (void 0 !== b && (c = b), void 0 === a) return c; 3478 var d = c; 3479 return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; 3480 } 3481 3482 function j(a) { 3483 U.debug && window && window.console.warn(a); 3484 } 3485 3486 function k(a) { 3487 for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { 3488 var e = a[b]; 3489 e && d.push(e); 3490 } 3491 3492 return d; 3493 } 3494 3495 var l = function (a, b, c) { 3496 function d(a) { 3497 return "object" == (0, _typeof2["default"])(a); 3498 } 3499 3500 function e(a) { 3501 return "function" == typeof a; 3502 } 3503 3504 function f() {} 3505 3506 function g(h, i) { 3507 function j() { 3508 var a = new k(); 3509 return e(a.init) && a.init.apply(a, arguments), a; 3510 } 3511 3512 function k() {} 3513 3514 i === c && (i = h, h = Object), j.Bare = k; 3515 var l, 3516 m = f[a] = h[a], 3517 n = k[a] = j[a] = new f(); 3518 return n.constructor = j, j.mixin = function (b) { 3519 return k[a] = j[a] = g(j, b)[a], j; 3520 }, j.open = function (a) { 3521 if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { 3522 b.call(l, c) && (n[c] = l[c]); 3523 } 3524 return e(n.init) || (n.init = h), j; 3525 }, j.open(i); 3526 } 3527 3528 return g; 3529 }("prototype", {}.hasOwnProperty), 3530 m = { 3531 ease: ["ease", function (a, b, c, d) { 3532 var e = (a /= d) * a, 3533 f = e * a; 3534 return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); 3535 }], 3536 "ease-in": ["ease-in", function (a, b, c, d) { 3537 var e = (a /= d) * a, 3538 f = e * a; 3539 return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); 3540 }], 3541 "ease-out": ["ease-out", function (a, b, c, d) { 3542 var e = (a /= d) * a, 3543 f = e * a; 3544 return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); 3545 }], 3546 "ease-in-out": ["ease-in-out", function (a, b, c, d) { 3547 var e = (a /= d) * a, 3548 f = e * a; 3549 return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); 3550 }], 3551 linear: ["linear", function (a, b, c, d) { 3552 return c * a / d + b; 3553 }], 3554 "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { 3555 return c * (a /= d) * a + b; 3556 }], 3557 "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { 3558 return -c * (a /= d) * (a - 2) + b; 3559 }], 3560 "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { 3561 return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; 3562 }], 3563 "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { 3564 return c * (a /= d) * a * a + b; 3565 }], 3566 "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { 3567 return c * ((a = a / d - 1) * a * a + 1) + b; 3568 }], 3569 "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { 3570 return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; 3571 }], 3572 "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { 3573 return c * (a /= d) * a * a * a + b; 3574 }], 3575 "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { 3576 return -c * ((a = a / d - 1) * a * a * a - 1) + b; 3577 }], 3578 "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { 3579 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; 3580 }], 3581 "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { 3582 return c * (a /= d) * a * a * a * a + b; 3583 }], 3584 "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { 3585 return c * ((a = a / d - 1) * a * a * a * a + 1) + b; 3586 }], 3587 "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { 3588 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; 3589 }], 3590 "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { 3591 return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; 3592 }], 3593 "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { 3594 return c * Math.sin(a / d * (Math.PI / 2)) + b; 3595 }], 3596 "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { 3597 return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; 3598 }], 3599 "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { 3600 return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; 3601 }], 3602 "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { 3603 return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; 3604 }], 3605 "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { 3606 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; 3607 }], 3608 "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { 3609 return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; 3610 }], 3611 "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { 3612 return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; 3613 }], 3614 "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { 3615 return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; 3616 }], 3617 "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { 3618 return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; 3619 }], 3620 "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { 3621 return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; 3622 }], 3623 "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { 3624 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; 3625 }] 3626 }, 3627 n = { 3628 "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", 3629 "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", 3630 "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" 3631 }, 3632 o = document, 3633 p = window, 3634 q = "bkwld-tram", 3635 r = /[\-\.0-9]/g, 3636 s = /[A-Z]/, 3637 t = "number", 3638 u = /^(rgb|#)/, 3639 v = /(em|cm|mm|in|pt|pc|px)$/, 3640 w = /(em|cm|mm|in|pt|pc|px|%)$/, 3641 x = /(deg|rad|turn)$/, 3642 y = "unitless", 3643 z = /(all|none) 0s ease 0s/, 3644 A = /^(width|height)$/, 3645 B = " ", 3646 C = o.createElement("a"), 3647 D = ["Webkit", "Moz", "O", "ms"], 3648 E = ["-webkit-", "-moz-", "-o-", "-ms-"], 3649 F = function F(a) { 3650 if (a in C.style) return { 3651 dom: a, 3652 css: a 3653 }; 3654 var b, 3655 c, 3656 d = "", 3657 e = a.split("-"); 3658 3659 for (b = 0; b < e.length; b++) { 3660 d += e[b].charAt(0).toUpperCase() + e[b].slice(1); 3661 } 3662 3663 for (b = 0; b < D.length; b++) { 3664 if (c = D[b] + d, c in C.style) return { 3665 dom: c, 3666 css: E[b] + a 3667 }; 3668 } 3669 }, 3670 G = b.support = { 3671 bind: Function.prototype.bind, 3672 transform: F("transform"), 3673 transition: F("transition"), 3674 backface: F("backface-visibility"), 3675 timing: F("transition-timing-function") 3676 }; 3677 3678 if (G.transition) { 3679 var H = G.timing.dom; 3680 if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { 3681 m[I][0] = n[I]; 3682 } 3683 } 3684 3685 var J = b.frame = function () { 3686 var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; 3687 return a && G.bind ? a.bind(p) : function (a) { 3688 p.setTimeout(a, 16); 3689 }; 3690 }(), 3691 K = b.now = function () { 3692 var a = p.performance, 3693 b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); 3694 return b && G.bind ? b.bind(a) : Date.now || function () { 3695 return +new Date(); 3696 }; 3697 }(), 3698 L = l(function (b) { 3699 function d(a, b) { 3700 var c = k(("" + a).split(B)), 3701 d = c[0]; 3702 b = b || {}; 3703 var e = Y[d]; 3704 if (!e) return j("Unsupported property: " + d); 3705 3706 if (!b.weak || !this.props[d]) { 3707 var f = e[0], 3708 g = this.props[d]; 3709 return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; 3710 } 3711 } 3712 3713 function e(a, b, c) { 3714 if (a) { 3715 var e = (0, _typeof2["default"])(a); 3716 if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ 3717 duration: a, 3718 context: this, 3719 complete: h 3720 }), void (this.active = !0); 3721 3722 if ("string" == e && b) { 3723 switch (a) { 3724 case "hide": 3725 o.call(this); 3726 break; 3727 3728 case "stop": 3729 l.call(this); 3730 break; 3731 3732 case "redraw": 3733 p.call(this); 3734 break; 3735 3736 default: 3737 d.call(this, a, c && c[1]); 3738 } 3739 3740 return h.call(this); 3741 } 3742 3743 if ("function" == e) return void a.call(this, this); 3744 3745 if ("object" == e) { 3746 var f = 0; 3747 u.call(this, a, function (a, b) { 3748 a.span > f && (f = a.span), a.stop(), a.animate(b); 3749 }, function (a) { 3750 "wait" in a && (f = i(a.wait, 0)); 3751 }), t.call(this), f > 0 && (this.timer = new S({ 3752 duration: f, 3753 context: this 3754 }), this.active = !0, b && (this.timer.complete = h)); 3755 var g = this, 3756 j = !1, 3757 k = {}; 3758 J(function () { 3759 u.call(g, a, function (a) { 3760 a.active && (j = !0, k[a.name] = a.nextStyle); 3761 }), j && g.$el.css(k); 3762 }); 3763 } 3764 } 3765 } 3766 3767 function f(a) { 3768 a = i(a, 0), this.active ? this.queue.push({ 3769 options: a 3770 }) : (this.timer = new S({ 3771 duration: a, 3772 context: this, 3773 complete: h 3774 }), this.active = !0); 3775 } 3776
3777 function g(a) { 3778 return this.active ? (this.queue.push({ 3779 options: a, 3780 args: arguments 3781 }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); 3782 } 3783 3784 function h() { 3785 if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { 3786 var a = this.queue.shift(); 3787 e.call(this, a.options, !0, a.args); 3788 } 3789 } 3790 3791 function l(a) { 3792 this.timer && this.timer.destroy(), this.queue = [], this.active = !1; 3793 var b; 3794 "string" == typeof a ? (b = {}, b[a] = 1) : b = "object" == (0, _typeof2["default"])(a) && null != a ? a : this.props, u.call(this, b, v), t.call(this); 3795 } 3796 3797 function m(a) { 3798 l.call(this, a), u.call(this, a, w, x); 3799 } 3800 3801 function n(a) { 3802 "string" != typeof a && (a = "block"), this.el.style.display = a; 3803 } 3804 3805 function o() { 3806 l.call(this), this.el.style.display = "none"; 3807 } 3808 3809 function p() { 3810 this.el.offsetHeight; 3811 } 3812 3813 function r() { 3814 l.call(this), a.removeData(this.el, q), this.$el = this.el = null; 3815 } 3816 3817 function t() { 3818 var a, 3819 b, 3820 c = []; 3821 this.upstream && c.push(this.upstream); 3822 3823 for (a in this.props) { 3824 b = this.props[a], b.active && c.push(b.string); 3825 } 3826 3827 c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); 3828 } 3829 3830 function u(a, b, e) { 3831 var f, 3832 g, 3833 h, 3834 i, 3835 j = b !== v, 3836 k = {}; 3837 3838 for (f in a) { 3839 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)); 3840 } 3841 3842 for (f in k) { 3843 if (h = k[f], g = this.props[f], !g) { 3844 if (!j) continue; 3845 g = d.call(this, f); 3846 } 3847 3848 b.call(this, g, h); 3849 } 3850 3851 e && i && e.call(this, i); 3852 } 3853 3854 function v(a) { 3855 a.stop(); 3856 } 3857 3858 function w(a, b) { 3859 a.set(b); 3860 } 3861 3862 function x(a) { 3863 this.$el.css(a); 3864 } 3865 3866 function y(a, c) { 3867 b[a] = function () { 3868 return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); 3869 }; 3870 } 3871 3872 function A(a, b) { 3873 var c, 3874 d = this.children.length; 3875 3876 for (c = 0; d > c; c++) { 3877 a.apply(this.children[c], b); 3878 } 3879 3880 return this; 3881 } 3882 3883 b.init = function (b) { 3884 if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { 3885 var c = W(this.el, "transition"); 3886 c && !z.test(c) && (this.upstream = c); 3887 } 3888 3889 G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); 3890 }, 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); 3891 }), 3892 M = l(L, function (b) { 3893 function c(b, c) { 3894 var d = a.data(b, q) || a.data(b, q, new L.Bare()); 3895 return d.el || d.init(b), c ? d.start(c) : d; 3896 } 3897 3898 b.init = function (b, d) { 3899 var e = a(b); 3900 if (!e.length) return this; 3901 if (1 === e.length) return c(e[0], d); 3902 var f = []; 3903 return e.each(function (a, b) { 3904 f.push(c(b, d)); 3905 }), this.children = f, this; 3906 }; 3907 }), 3908 N = l(function (a) { 3909 function b() { 3910 var a = this.get(); 3911 this.update("auto"); 3912 var b = this.get(); 3913 return this.update(a), b; 3914 } 3915 3916 function c(a, b, c) { 3917 return void 0 !== b && (c = b), a in m ? a : c; 3918 } 3919 3920 function d(a) { 3921 var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); 3922 return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); 3923 } 3924 3925 var f = { 3926 duration: 500, 3927 ease: "ease", 3928 delay: 0 3929 }; 3930 a.init = function (a, b, d, e) { 3931 this.$el = a, this.el = a[0]; 3932 var g = b[0]; 3933 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" : "")); 3934 }, a.set = function (a) { 3935 a = this.convert(a, this.type), this.update(a), this.redraw(); 3936 }, a.transition = function (a) { 3937 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; 3938 }, a.fallback = function (a) { 3939 var c = this.el.style[this.name] || this.convert(this.get(), this.type); 3940 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({ 3941 from: c, 3942 to: a, 3943 duration: this.duration, 3944 delay: this.delay, 3945 ease: this.ease, 3946 update: this.update, 3947 context: this 3948 }); 3949 }, a.get = function () { 3950 return W(this.el, this.name); 3951 }, a.update = function (a) { 3952 V(this.el, this.name, a); 3953 }, a.stop = function () { 3954 (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); 3955 var a = this.tween; 3956 a && a.context && a.destroy(); 3957 }, a.convert = function (a, b) { 3958 if ("auto" == a && this.auto) return a; 3959 var c, 3960 e = "number" == typeof a, 3961 f = "string" == typeof a; 3962 3963 switch (b) { 3964 case t: 3965 if (e) return a; 3966 if (f && "" === a.replace(r, "")) return +a; 3967 c = "number(unitless)"; 3968 break; 3969 3970 case u: 3971 if (f) { 3972 if ("" === a && this.original) return this.original; 3973 if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); 3974 } 3975 3976 c = "hex or rgb string"; 3977 break; 3978 3979 case v: 3980 if (e) return a + this.unit; 3981 if (f && b.test(a)) return a; 3982 c = "number(px) or string(unit)"; 3983 break; 3984 3985 case w: 3986 if (e) return a + this.unit; 3987 if (f && b.test(a)) return a; 3988 c = "number(px) or string(unit or %)"; 3989 break; 3990 3991 case x: 3992 if (e) return a + this.angle; 3993 if (f && b.test(a)) return a; 3994 c = "number(deg) or string(angle)"; 3995 break; 3996 3997 case y: 3998 if (e) return a; 3999 if (f && w.test(a)) return a; 4000 c = "number(unitless) or string(unit or %)"; 4001 } 4002 4003 return g(c, a), a; 4004 }, a.redraw = function () { 4005 this.el.offsetHeight; 4006 }; 4007 }), 4008 O = l(N, function (a, b) { 4009 a.init = function () {
4010 b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); 4011 }; 4012 }), 4013 P = l(N, function (a, b) { 4014 a.init = function () { 4015 b.init.apply(this, arguments), this.animate = this.fallback; 4016 }, a.get = function () { 4017 return this.$el[this.name](); 4018 }, a.update = function (a) { 4019 this.$el[this.name](a); 4020 }; 4021 }), 4022 Q = l(N, function (a, b) { 4023 function c(a, b) { 4024 var c, d, e, f, g; 4025 4026 for (c in a) { 4027 f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); 4028 } 4029 } 4030 4031 a.init = function () { 4032 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())); 4033 }, a.set = function (a) { 4034 c.call(this, a, function (a, b) { 4035 this.current[a] = b; 4036 }), V(this.el, this.name, this.style(this.current)), this.redraw(); 4037 }, a.transition = function (a) { 4038 var b = this.values(a); 4039 this.tween = new T({ 4040 current: this.current, 4041 values: b, 4042 duration: this.duration, 4043 delay: this.delay, 4044 ease: this.ease 4045 }); 4046 var c, 4047 d = {}; 4048 4049 for (c in this.current) { 4050 d[c] = c in b ? b[c] : this.current[c]; 4051 } 4052 4053 this.active = !0, this.nextStyle = this.style(d); 4054 }, a.fallback = function (a) { 4055 var b = this.values(a); 4056 this.tween = new T({ 4057 current: this.current, 4058 values: b, 4059 duration: this.duration, 4060 delay: this.delay, 4061 ease: this.ease, 4062 update: this.update, 4063 context: this 4064 }); 4065 }, a.update = function () { 4066 V(this.el, this.name, this.style(this.current)); 4067 }, a.style = function (a) { 4068 var b, 4069 c = ""; 4070 4071 for (b in a) { 4072 c += b + "(" + a[b] + ") "; 4073 } 4074 4075 return c; 4076 }, a.values = function (a) { 4077 var b, 4078 d = {}; 4079 return c.call(this, a, function (a, c, e) { 4080 d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); 4081 }), d; 4082 }; 4083 }), 4084 R = l(function (b) { 4085 function c(a) { 4086 1 === n.push(a) && J(g); 4087 } 4088 4089 function g() { 4090 var a, 4091 b, 4092 c, 4093 d = n.length; 4094 if (d) for (J(g), b = K(), a = d; a--;) { 4095 c = n[a], c && c.render(b); 4096 } 4097 } 4098 4099 function i(b) { 4100 var c, 4101 d = a.inArray(b, n); 4102 d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); 4103 } 4104 4105 function j(a) { 4106 return Math.round(a * o) / o; 4107 } 4108 4109 function k(a, b, c) { 4110 return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); 4111 } 4112 4113 var l = { 4114 ease: m.ease[1], 4115 from: 0, 4116 to: 1 4117 }; 4118 b.init = function (a) { 4119 this.duration = a.duration || 0, this.delay = a.delay || 0; 4120 var b = a.ease || l.ease; 4121 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; 4122 var c = a.from, 4123 d = a.to; 4124 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(); 4125 }, b.play = function () { 4126 this.active || (this.start || (this.start = K()), this.active = !0, c(this)); 4127 }, b.stop = function () { 4128 this.active && (this.active = !1, i(this)); 4129 }, b.render = function (a) { 4130 var b, 4131 c = a - this.start; 4132 4133 if (this.delay) { 4134 if (c <= this.delay) return; 4135 c -= this.delay; 4136 } 4137 4138 if (c < this.duration) { 4139 var d = this.ease(c, 0, 1, this.duration); 4140 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); 4141 } 4142 4143 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(); 4144 }, b.format = function (a, b) { 4145 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); 4146 4147 if (!this.unit) { 4148 var c = b.replace(r, ""), 4149 e = a.replace(r, ""); 4150 c !== e && h("tween", b, a), this.unit = c; 4151 } 4152 4153 b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; 4154 }, b.destroy = function () { 4155 this.stop(), this.context = null, this.ease = this.update = this.complete = f; 4156 }; 4157 var n = [], 4158 o = 1e3; 4159 }),
4160 S = l(R, function (a) { 4161 a.init = function (a) { 4162 this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); 4163 }, a.render = function (a) { 4164 var b = a - this.start; 4165 b < this.duration || (this.complete.call(this.context), this.destroy()); 4166 }; 4167 }), 4168 T = l(R, function (a, b) { 4169 a.init = function (a) { 4170 this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; 4171 var b, c; 4172 4173 for (b in a.values) { 4174 c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ 4175 name: b, 4176 from: this.current[b], 4177 to: c, 4178 duration: a.duration, 4179 delay: a.delay, 4180 ease: a.ease, 4181 autoplay: !1 4182 })); 4183 } 4184 4185 this.play(); 4186 }, a.render = function (a) { 4187 var b, 4188 c, 4189 d = this.tweens.length, 4190 e = !1; 4191 4192 for (b = d; b--;) { 4193 c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); 4194 } 4195 4196 return e ? void (this.update && this.update.call(this.context)) : this.destroy(); 4197 }, a.destroy = function () { 4198 if (b.destroy.call(this), this.tweens) { 4199 var a, 4200 c = this.tweens.length; 4201 4202 for (a = c; a--;) { 4203 this.tweens[a].destroy(); 4204 } 4205 4206 this.tweens = null, this.current = null; 4207 } 4208 }; 4209 }), 4210 U = b.config = { 4211 debug: !1, 4212 defaultUnit: "px", 4213 defaultAngle: "deg", 4214 keepInherited: !1, 4215 hideBackface: !1, 4216 perspective: "", 4217 fallback: !G.transition, 4218 agentTests: [] 4219 }; 4220 4221 b.fallback = function (a) { 4222 if (!G.transition) return U.fallback = !0; 4223 U.agentTests.push("(" + a + ")"); 4224 var b = new RegExp(U.agentTests.join("|"), "i"); 4225 U.fallback = b.test(navigator.userAgent); 4226 }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { 4227 return new R(a); 4228 }, b.delay = function (a, b, c) { 4229 return new S({ 4230 complete: b, 4231 duration: a, 4232 context: c 4233 }); 4234 }, a.fn.tram = function (a) { 4235 return b.call(null, this, a); 4236 }; 4237 var V = a.style, 4238 W = a.css, 4239 X = { 4240 transform: G.transform && G.transform.css 4241 }, 4242 Y = { 4243 color: [O, u], 4244 background: [O, u, "background-color"], 4245 "outline-color": [O, u], 4246 "border-color": [O, u], 4247 "border-top-color": [O, u], 4248 "border-right-color": [O, u], 4249 "border-bottom-color": [O, u], 4250 "border-left-color": [O, u], 4251 "border-width": [N, v], 4252 "border-top-width": [N, v], 4253 "border-right-width": [N, v], 4254 "border-bottom-width": [N, v], 4255 "border-left-width": [N, v], 4256 "border-spacing": [N, v], 4257 "letter-spacing": [N, v], 4258 margin: [N, v], 4259 "margin-top": [N, v], 4260 "margin-right": [N, v], 4261 "margin-bottom": [N, v], 4262 "margin-left": [N, v], 4263 padding: [N, v], 4264 "padding-top": [N, v], 4265 "padding-right": [N, v], 4266 "padding-bottom": [N, v], 4267 "padding-left": [N, v], 4268 "outline-width": [N, v], 4269 opacity: [N, t], 4270 top: [N, w], 4271 right: [N, w], 4272 bottom: [N, w], 4273 left: [N, w], 4274 "font-size": [N, w], 4275 "text-indent": [N, w], 4276 "word-spacing": [N, w], 4277 width: [N, w], 4278 "min-width": [N, w], 4279 "max-width": [N, w], 4280 height: [N, w], 4281 "min-height": [N, w], 4282 "max-height": [N, w], 4283 "line-height": [N, y], 4284 "scroll-top": [P, t, "scrollTop"], 4285 "scroll-left": [P, t, "scrollLeft"] 4286 }, 4287 Z = {}; 4288 G.transform && (Y.transform = [Q], Z = { 4289 x: [w, "translateX"], 4290 y: [w, "translateY"], 4291 rotate: [x], 4292 rotateX: [x], 4293 rotateY: [x], 4294 scale: [t], 4295 scaleX: [t], 4296 scaleY: [t], 4297 skew: [x], 4298 skewX: [x], 4299 skewY: [x] 4300 }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); 4301 var $ = /ms/, 4302 _ = /s|\./; 4303 return a.tram = b; 4304}(window.jQuery); 4305 4306/***/ }), 4307/* 65 */ 4308/***/ (function(module, exports, __webpack_require__) { 4309 4310"use strict";
4311// @wf-will-never-add-flow-to-this-file 4312 4313/* globals window, document */ 4314 4315/* eslint-disable no-var */ 4316// eslint-disable-next-line strict 4317 4318 4319var IXEvents = __webpack_require__(124); 4320 4321function dispatchCustomEvent(element, eventName) { 4322 var event = document.createEvent('CustomEvent'); 4323 event.initCustomEvent(eventName, true, true, null); 4324 element.dispatchEvent(event); 4325} 4326/** 4327 * Webflow: IX Event triggers for other modules 4328 */ 4329 4330 4331var $ = window.jQuery; 4332var api = {}; 4333var namespace = '.w-ix'; 4334var eventTriggers = { 4335 reset: function reset(i, el) { 4336 IXEvents.triggers.reset(i, el); 4337 }, 4338 intro: function intro(i, el) { 4339 IXEvents.triggers.intro(i, el); 4340 dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); 4341 }, 4342 outro: function outro(i, el) { 4343 IXEvents.triggers.outro(i, el); 4344 dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); 4345 } 4346}; 4347api.triggers = {}; 4348api.types = { 4349 INTRO: 'w-ix-intro' + namespace, 4350 OUTRO: 'w-ix-outro' + namespace 4351}; 4352$.extend(api.triggers, eventTriggers); 4353module.exports = api; 4354 4355/***/ }), 4356/* 66 */ 4357/***/ (function(module, exports, __webpack_require__) { 4358 4359var DESCRIPTORS = __webpack_require__(15); 4360var propertyIsEnumerableModule = __webpack_require__(131); 4361var createPropertyDescriptor = __webpack_require__(67); 4362var toIndexedObject = __webpack_require__(36); 4363var toPrimitive = __webpack_require__(68); 4364var has = __webpack_require__(17); 4365var IE8_DOM_DEFINE = __webpack_require__(69); 4366 4367var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 4368 4369// `Object.getOwnPropertyDescriptor` method 4370// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor 4371exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 4372 O = toIndexedObject(O); 4373 P = toPrimitive(P, true); 4374 if (IE8_DOM_DEFINE) try { 4375 return nativeGetOwnPropertyDescriptor(O, P); 4376 } catch (error) { /* empty */ } 4377 if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); 4378}; 4379 4380 4381/***/ }), 4382/* 67 */ 4383/***/ (function(module, exports) { 4384 4385module.exports = function (bitmap, value) { 4386 return { 4387 enumerable: !(bitmap & 1), 4388 configurable: !(bitmap & 2), 4389 writable: !(bitmap & 4), 4390 value: value 4391 }; 4392}; 4393 4394 4395/***/ }), 4396/* 68 */ 4397/***/ (function(module, exports, __webpack_require__) { 4398 4399var isObject = __webpack_require__(23); 4400 4401// `ToPrimitive` abstract operation 4402// https://tc39.github.io/ecma262/#sec-toprimitive 4403// instead of the ES6 spec version, we didn't implement @@toPrimitive case 4404// and the second argument - flag - preferred type is a string 4405module.exports = function (input, PREFERRED_STRING) { 4406 if (!isObject(input)) return input; 4407 var fn, val; 4408 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4409 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; 4410 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4411 throw TypeError("Can't convert object to primitive value"); 4412}; 4413 4414 4415/***/ }), 4416/* 69 */ 4417/***/ (function(module, exports, __webpack_require__) { 4418 4419var DESCRIPTORS = __webpack_require__(15); 4420var fails = __webpack_require__(16); 4421var createElement = __webpack_require__(70); 4422 4423// Thank's IE8 for his funny defineProperty 4424module.exports = !DESCRIPTORS && !fails(function () { 4425 return Object.defineProperty(createElement('div'), 'a', { 4426 get: function () { return 7; } 4427 }).a != 7; 4428}); 4429 4430 4431/***/ }), 4432/* 70 */ 4433/***/ (function(module, exports, __webpack_require__) { 4434 4435var global = __webpack_require__(3); 4436var isObject = __webpack_require__(23); 4437 4438var document = global.document; 4439// typeof document.createElement is 'object' in old IE 4440var EXISTS = isObject(document) && isObject(document.createElement); 4441 4442module.exports = function (it) { 4443 return EXISTS ? document.createElement(it) : {}; 4444}; 4445 4446 4447/***/ }), 4448/* 71 */ 4449/***/ (function(module, exports, __webpack_require__) { 4450 4451var shared = __webpack_require__(25); 4452 4453module.exports = shared('native-function-to-string', Function.toString); 4454 4455 4456/***/ }), 4457/* 72 */ 4458/***/ (function(module, exports, __webpack_require__) { 4459 4460var shared = __webpack_require__(25); 4461var uid = __webpack_require__(73); 4462 4463var keys = shared('keys'); 4464 4465module.exports = function (key) { 4466 return keys[key] || (keys[key] = uid(key)); 4467}; 4468 4469 4470/***/ }), 4471/* 73 */
vendor: 5,651 bytes, lines 4472-4639
4472/***/ (function(module, exports) { 4473 4474var id = 0; 4475var postfix = Math.random(); 4476 4477module.exports = function (key) { 4478 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); 4479}; 4480 4481 4482/***/ }), 4483/* 74 */ 4484/***/ (function(module, exports, __webpack_require__) { 4485 4486var path = __webpack_require__(141); 4487var global = __webpack_require__(3); 4488 4489var aFunction = function (variable) { 4490 return typeof variable == 'function' ? variable : undefined; 4491}; 4492 4493module.exports = function (namespace, method) { 4494 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) 4495 : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; 4496}; 4497 4498 4499/***/ }), 4500/* 75 */ 4501/***/ (function(module, exports, __webpack_require__) { 4502 4503var has = __webpack_require__(17); 4504var toIndexedObject = __webpack_require__(36); 4505var indexOf = __webpack_require__(76).indexOf; 4506var hiddenKeys = __webpack_require__(39); 4507 4508module.exports = function (object, names) { 4509 var O = toIndexedObject(object); 4510 var i = 0; 4511 var result = []; 4512 var key; 4513 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); 4514 // Don't enum bug & hidden keys 4515 while (names.length > i) if (has(O, key = names[i++])) { 4516 ~indexOf(result, key) || result.push(key); 4517 } 4518 return result; 4519}; 4520 4521 4522/***/ }), 4523/* 76 */ 4524/***/ (function(module, exports, __webpack_require__) { 4525 4526var toIndexedObject = __webpack_require__(36); 4527var toLength = __webpack_require__(143); 4528var toAbsoluteIndex = __webpack_require__(144); 4529 4530// `Array.prototype.{ indexOf, includes }` methods implementation 4531var createMethod = function (IS_INCLUDES) { 4532 return function ($this, el, fromIndex) { 4533 var O = toIndexedObject($this); 4534 var length = toLength(O.length); 4535 var index = toAbsoluteIndex(fromIndex, length); 4536 var value; 4537 // Array#includes uses SameValueZero equality algorithm 4538 // eslint-disable-next-line no-self-compare 4539 if (IS_INCLUDES && el != el) while (length > index) { 4540 value = O[index++]; 4541 // eslint-disable-next-line no-self-compare 4542 if (value != value) return true; 4543 // Array#indexOf ignores holes, Array#includes - not 4544 } else for (;length > index; index++) { 4545 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 4546 } return !IS_INCLUDES && -1; 4547 }; 4548}; 4549 4550module.exports = { 4551 // `Array.prototype.includes` method 4552 // https://tc39.github.io/ecma262/#sec-array.prototype.includes 4553 includes: createMethod(true), 4554 // `Array.prototype.indexOf` method 4555 // https://tc39.github.io/ecma262/#sec-array.prototype.indexof 4556 indexOf: createMethod(false) 4557}; 4558 4559 4560/***/ }), 4561/* 77 */ 4562/***/ (function(module, exports) { 4563 4564var ceil = Math.ceil; 4565var floor = Math.floor; 4566 4567// `ToInteger` abstract operation 4568// https://tc39.github.io/ecma262/#sec-tointeger 4569module.exports = function (argument) { 4570 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); 4571}; 4572 4573 4574/***/ }), 4575/* 78 */ 4576/***/ (function(module, __webpack_exports__, __webpack_require__) { 4577 4578"use strict"; 4579__webpack_require__.r(__webpack_exports__); 4580/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); 4581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); 4582 4583/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81); 4584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 4585 4586/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83); 4587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4588 4589/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84); 4590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 4591 4592/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(42); 4593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); 4594 4595/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82); 4596 4597 4598 4599 4600 4601 4602 4603/* 4604* This is a dummy function to check if the function name has been altered by minification. 4605* If the function has been minified and NODE_ENV !== 'production', warn the user. 4606*/ 4607function isCrushed() {} 4608 4609if (false) {} 4610 4611 4612 4613/***/ }), 4614/* 79 */ 4615/***/ (function(module, __webpack_exports__, __webpack_require__) { 4616 4617"use strict"; 4618__webpack_require__.r(__webpack_exports__); 4619/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(157); 4620/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(162); 4621/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(164); 4622 4623 4624 4625 4626/** `Object#toString` result references. */ 4627var objectTag = '[object Object]'; 4628 4629/** Used for built-in method references. */ 4630var funcProto = Function.prototype, 4631 objectProto = Object.prototype; 4632 4633/** Used to resolve the decompiled source of functions. */ 4634var funcToString = funcProto.toString; 4635 4636/** Used to check objects for own properties. */ 4637var hasOwnProperty = objectProto.hasOwnProperty; 4638 4639/** Used to infer the `Object` constructor. */
4640var objectCtorString = funcToString.call(Object); 4641 4642/** 4643 * Checks if `value` is a plain object, that is, an object created by the 4644 * `Object` constructor or one with a `[[Prototype]]` of `null`. 4645 * 4646 * @static 4647 * @memberOf _ 4648 * @since 0.8.0 4649 * @category Lang 4650 * @param {*} value The value to check. 4651 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. 4652 * @example 4653 * 4654 * function Foo() { 4655 * this.a = 1; 4656 * } 4657 * 4658 * _.isPlainObject(new Foo); 4659 * // => false 4660 * 4661 * _.isPlainObject([1, 2, 3]); 4662 * // => false 4663 * 4664 * _.isPlainObject({ 'x': 0, 'y': 0 }); 4665 * // => true 4666 * 4667 * _.isPlainObject(Object.create(null)); 4668 * // => true 4669 */ 4670function isPlainObject(value) { 4671 if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { 4672 return false; 4673 } 4674 var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); 4675 if (proto === null) { 4676 return true; 4677 } 4678 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; 4679 return typeof Ctor == 'function' && Ctor instanceof Ctor && 4680 funcToString.call(Ctor) == objectCtorString; 4681} 4682 4683/* harmony default export */ __webpack_exports__["default"] = (isPlainObject); 4684 4685 4686/***/ }), 4687/* 80 */ 4688/***/ (function(module, __webpack_exports__, __webpack_require__) { 4689 4690"use strict"; 4691__webpack_require__.r(__webpack_exports__); 4692/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(158); 4693 4694 4695/** Built-in value references. */ 4696var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; 4697 4698/* harmony default export */ __webpack_exports__["default"] = (Symbol); 4699 4700 4701/***/ }), 4702/* 81 */ 4703/***/ (function(module, __webpack_exports__, __webpack_require__) { 4704 4705"use strict"; 4706__webpack_require__.r(__webpack_exports__); 4707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); 4708/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(41); 4709/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); 4710/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82); 4711 4712 4713 4714 4715function getUndefinedStateErrorMessage(key, action) { 4716 var actionType = action && action.type; 4717 var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; 4718 4719 return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; 4720} 4721 4722function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unex
4722pectedKeyCache) { 4723 var reducerKeys = Object.keys(reducers); 4724 var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; 4725 4726 if (reducerKeys.length === 0) { 4727 return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; 4728 } 4729 4730 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { 4731 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('", "') + '"'); 4732 } 4733 4734 var unexpectedKeys = Object.keys(inputState).filter(function (key) { 4735 return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; 4736 }); 4737 4738 unexpectedKeys.forEach(function (key) { 4739 unexpectedKeyCache[key] = true; 4740 }); 4741 4742 if (unexpectedKeys.length > 0) { 4743 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.'); 4744 } 4745} 4746 4747function assertReducerSanity(reducers) { 4748 Object.keys(reducers).forEach(function (key) { 4749 var reducer = reducers[key]; 4750 var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); 4751 4752 if (typeof initialState === 'undefined') { 4753 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.'); 4754 } 4755 4756 var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); 4757 if (typeof reducer(undefined, { type: type }) === 'undefined') { 4758 throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); 4759 } 4760 }); 4761} 4762 4763/** 4764 * Turns an object whose values are different reducer functions, into a single 4765 * reducer function. It will call every child reducer, and gather their results 4766 * into a single state object, whose keys correspond to the keys of the passed 4767 * reducer functions. 4768 * 4769 * @param {Object} reducers An object whose values correspond to different 4770 * reducer functions that need to be combined into one. One handy way to obtain 4771 * it is to use ES6 `import * as reducers` syntax. The reducers may never return 4772 * undefined for any action. Instead, they should return their initial state 4773 * if the state passed to them was undefined, and the current state for any 4774 * unrecognized action. 4775 * 4776 * @returns {Function} A reducer function that invokes every reducer inside the 4777 * passed object, and builds a state object with the same shape. 4778 */ 4779function combineReducers(reducers) { 4780 var reducerKeys = Object.keys(reducers); 4781 var finalReducers = {}; 4782 for (var i = 0; i < reducerKeys.length; i++) { 4783 var key = reducerKeys[i]; 4784 4785 if (false) {} 4786 4787 if (typeof reducers[key] === 'function') { 4788 finalReducers[key] = reducers[key]; 4789 } 4790 } 4791 var finalReducerKeys = Object.keys(finalReducers); 4792 4793 if (false) { var unexpectedKeyCache; } 4794 4795 var sanityError; 4796 try { 4797 assertReducerSanity(finalReducers); 4798 } catch (e) { 4799 sanityError = e; 4800 } 4801 4802 return function combination() { 4803 var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 4804 var action = arguments[1]; 4805 4806 if (sanityError) { 4807 throw sanityError; 4808 } 4809 4810 if (false) { var warningMessage; } 4811 4812 var hasChanged = false;
4813 var nextState = {}; 4814 for (var i = 0; i < finalReducerKeys.length; i++) { 4815 var key = finalReducerKeys[i]; 4816 var reducer = finalReducers[key]; 4817 var previousStateForKey = state[key]; 4818 var nextStateForKey = reducer(previousStateForKey, action); 4819 if (typeof nextStateForKey === 'undefined') { 4820 var errorMessage = getUndefinedStateErrorMessage(key, action); 4821 throw new Error(errorMessage); 4822 } 4823 nextState[key] = nextStateForKey; 4824 hasChanged = hasChanged || nextStateForKey !== previousStateForKey; 4825 } 4826 return hasChanged ? nextState : state; 4827 }; 4828} 4829 4830/***/ }), 4831/* 82 */ 4832/***/ (function(module, __webpack_exports__, __webpack_require__) { 4833 4834"use strict"; 4835__webpack_require__.r(__webpack_exports__); 4836/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); 4837/** 4838 * Prints a warning in the console if it exists. 4839 * 4840 * @param {String} message The warning message. 4841 * @returns {void} 4842 */ 4843function warning(message) { 4844 /* eslint-disable no-console */ 4845 if (typeof console !== 'undefined' && typeof console.error === 'function') { 4846 console.error(message); 4847 } 4848 /* eslint-enable no-console */ 4849 try { 4850 // This error was thrown as a convenience so that if you enable 4851 // "break on all exceptions" in your console, 4852 // it would pause the execution at this line. 4853 throw new Error(message); 4854 /* eslint-disable no-empty */ 4855 } catch (e) {} 4856 /* eslint-enable no-empty */ 4857} 4858 4859/***/ }), 4860/* 83 */ 4861/***/ (function(module, __webpack_exports__, __webpack_require__) { 4862 4863"use strict"; 4864__webpack_require__.r(__webpack_exports__); 4865/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); 4866function bindActionCreator(actionCreator, dispatch) { 4867 return function () { 4868 return dispatch(actionCreator.apply(undefined, arguments)); 4869 }; 4870} 4871 4872/** 4873 * Turns an object whose values are action creators, into an object with the 4874 * same keys, but with every function wrapped into a `dispatch` call so they 4875 * may be invoked directly. This is just a convenience method, as you can call 4876 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. 4877 * 4878 * For convenience, you can also pass a single function as the first argument, 4879 * and get a function in return. 4880 * 4881 * @param {Function|Object} actionCreators An object whose values are action 4882 * creator functions. One handy way to obtain it is to use ES6 `import * as` 4883 * syntax. You may also pass a single function. 4884 * 4885 * @param {Function} dispatch The `dispatch` function available on your Redux 4886 * store. 4887 * 4888 * @returns {Function|Object} The object mimicking the original object, but with 4889 * every action creator wrapped into the `dispatch` call. If you passed a 4890 * function as `actionCreators`, the return value will also be a single 4891 * function. 4892 */ 4893function bindActionCreators(actionCreators, dispatch) { 4894 if (typeof actionCreators === 'function') { 4895 return bindActionCreator(actionCreators, dispatch); 4896 } 4897 4898 if (typeof actionCreators !== 'object' || actionCreators === null) { 4899 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"?'); 4900 } 4901 4902 var keys = Object.keys(actionCreators); 4903 var boundActionCreators = {}; 4904 for (var i = 0; i < keys.length; i++) { 4905 var key = keys[i]; 4906 var actionCreator = actionCreators[key]; 4907 if (typeof actionCreator === 'function') { 4908 boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); 4909 } 4910 } 4911 return boundActionCreators; 4912} 4913 4914/***/ }), 4915/* 84 */ 4916/***/ (function(module, __webpack_exports__, __webpack_require__) { 4917 4918"use strict"; 4919__webpack_require__.r(__webpack_exports__); 4920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); 4921/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(42); 4922var _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; }; 4923 4924 4925 4926/** 4927 * Creates a store enhancer that applies middleware to the dispatch method 4928 * of the Redux store. This is handy for a variety of tasks, such as expressing 4929 * asynchronous actions in a concise manner, or logging every action payload. 4930 * 4931 * See `redux-thunk` package as an example of the Redux middleware. 4932 * 4933 * Because middleware is potentially asynchronous, this should be the first 4934 * store enhancer in the composition chain. 4935 *
4936 * Note that each middleware will be given the `dispatch` and `getState` functions 4937 * as named arguments. 4938 * 4939 * @param {...Function} middlewares The middleware chain to be applied. 4940 * @returns {Function} A store enhancer applying the middleware. 4941 */ 4942function applyMiddleware() { 4943 for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { 4944 middlewares[_key] = arguments[_key]; 4945 } 4946 4947 return function (createStore) { 4948 return function (reducer, preloadedState, enhancer) { 4949 var store = createStore(reducer, preloadedState, enhancer); 4950 var _dispatch = store.dispatch; 4951 var chain = []; 4952 4953 var middlewareAPI = { 4954 getState: store.getState, 4955 dispatch: function dispatch(action) { 4956 return _dispatch(action); 4957 } 4958 }; 4959 chain = middlewares.map(function (middleware) { 4960 return middleware(middlewareAPI); 4961 }); 4962 _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); 4963 4964 return _extends({}, store, { 4965 dispatch: _dispatch 4966 }); 4967 }; 4968 }; 4969} 4970 4971/***/ }), 4972/* 85 */ 4973/***/ (function(module, exports, __webpack_require__) { 4974 4975var createFind = __webpack_require__(86), 4976 findIndex = __webpack_require__(242); 4977 4978/** 4979 * Iterates over elements of `collection`, returning the first element 4980 * `predicate` returns truthy for. The predicate is invoked with three 4981 * arguments: (value, index|key, collection). 4982 * 4983 * @static 4984 * @memberOf _ 4985 * @since 0.1.0 4986 * @category Collection 4987 * @param {Array|Object} collection The collection to inspect. 4988 * @param {Function} [predicate=_.identity] The function invoked per iteration. 4989 * @param {number} [fromIndex=0] The index to search from. 4990 * @returns {*} Returns the matched element, else `undefined`. 4991 * @example 4992 * 4993 * var users = [ 4994 * { 'user': 'barney', 'age': 36, 'active': true }, 4995 * { 'user': 'fred', 'age': 40, 'active': false }, 4996 * { 'user': 'pebbles', 'age': 1, 'active': true } 4997 * ]; 4998 * 4999 * _.find(users, function(o) { return o.age < 40; }); 5000 * // => object for 'barney' 5001 * 5002 * // The `_.matches` iteratee shorthand. 5003 * _.find(users, { 'age': 1, 'active': true }); 5004 * // => object for 'pebbles' 5005 * 5006 * // The `_.matchesProperty` iteratee shorthand. 5007 * _.find(users, ['active', false]); 5008 * // => object for 'fred' 5009 * 5010 * // The `_.property` iteratee shorthand. 5011 * _.find(users, 'active'); 5012 * // => object for 'barney' 5013 */ 5014var find = createFind(findIndex); 5015 5016module.exports = find; 5017 5018 5019/***/ }), 5020/* 86 */ 5021/***/ (function(module, exports, __webpack_require__) { 5022 5023var baseIteratee = __webpack_require__(7), 5024 isArrayLike = __webpack_require__(12), 5025 keys = __webpack_require__(32); 5026 5027/** 5028 * Creates a `_.find` or `_.findLast` function. 5029 * 5030 * @private 5031 * @param {Function} findIndexFunc The function to find the collection index. 5032 * @returns {Function} Returns the new find function. 5033 */ 5034function createFind(findIndexFunc) { 5035 return function(collection, predicate, fromIndex) { 5036 var iterable = Object(collection); 5037 if (!isArrayLike(collection)) { 5038 var iteratee = baseIteratee(predicate, 3); 5039 collection = keys(collection); 5040 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 5041 } 5042 var index = findIndexFunc(collection, predicate, fromIndex); 5043 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 5044 }; 5045} 5046 5047module.exports = createFind; 5048 5049 5050/***/ }), 5051/* 87 */ 5052/***/ (function(module, exports, __webpack_require__) { 5053 5054var ListCache = __webpack_require__(28), 5055 stackClear = __webpack_require__(184), 5056 stackDelete = __webpack_require__(185), 5057 stackGet = __webpack_require__(186), 5058 stackHas = __webpack_require__(187), 5059 stackSet = __webpack_require__(188); 5060 5061/** 5062 * Creates a stack cache object to store key-value pairs. 5063 * 5064 * @private 5065 * @constructor 5066 * @param {Array} [entries] The key-value pairs to cache. 5067 */ 5068function Stack(entries) { 5069 var data = this.__data__ = new ListCache(entries); 5070 this.size = data.size; 5071} 5072 5073// Add methods to `Stack`. 5074Stack.prototype.clear = stackClear; 5075Stack.prototype['delete'] = stackDelete; 5076Stack.prototype.get = stackGet;
vendor: 3,424 bytes, lines 5077-5209
5077Stack.prototype.has = stackHas; 5078Stack.prototype.set = stackSet; 5079 5080module.exports = Stack; 5081 5082 5083/***/ }), 5084/* 88 */ 5085/***/ (function(module, exports, __webpack_require__) { 5086 5087var baseGetTag = __webpack_require__(11), 5088 isObject = __webpack_require__(5); 5089 5090/** `Object#toString` result references. */ 5091var asyncTag = '[object AsyncFunction]', 5092 funcTag = '[object Function]', 5093 genTag = '[object GeneratorFunction]', 5094 proxyTag = '[object Proxy]'; 5095 5096/** 5097 * Checks if `value` is classified as a `Function` object. 5098 * 5099 * @static 5100 * @memberOf _ 5101 * @since 0.1.0 5102 * @category Lang 5103 * @param {*} value The value to check. 5104 * @returns {boolean} Returns `true` if `value` is a function, else `false`. 5105 * @example 5106 * 5107 * _.isFunction(_); 5108 * // => true 5109 * 5110 * _.isFunction(/abc/); 5111 * // => false 5112 */ 5113function isFunction(value) { 5114 if (!isObject(value)) { 5115 return false; 5116 } 5117 // The use of `Object#toString` avoids issues with the `typeof` operator 5118 // in Safari 9 which returns 'object' for typed arrays and other constructors. 5119 var tag = baseGetTag(value); 5120 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 5121} 5122 5123module.exports = isFunction; 5124 5125 5126/***/ }), 5127/* 89 */ 5128/***/ (function(module, exports, __webpack_require__) { 5129 5130/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 5131var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 5132 5133module.exports = freeGlobal; 5134 5135/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 5136 5137/***/ }), 5138/* 90 */ 5139/***/ (function(module, exports) { 5140 5141/** Used for built-in method references. */ 5142var funcProto = Function.prototype; 5143 5144/** Used to resolve the decompiled source of functions. */ 5145var funcToString = funcProto.toString; 5146 5147/** 5148 * Converts `func` to its source code. 5149 * 5150 * @private 5151 * @param {Function} func The function to convert. 5152 * @returns {string} Returns the source code. 5153 */ 5154function toSource(func) { 5155 if (func != null) { 5156 try { 5157 return funcToString.call(func); 5158 } catch (e) {} 5159 try { 5160 return (func + ''); 5161 } catch (e) {} 5162 } 5163 return ''; 5164} 5165 5166module.exports = toSource; 5167 5168 5169/***/ }), 5170/* 91 */ 5171/***/ (function(module, exports, __webpack_require__) { 5172 5173var baseIsEqualDeep = __webpack_require__(207), 5174 isObjectLike = __webpack_require__(9); 5175 5176/** 5177 * The base implementation of `_.isEqual` which supports partial comparisons 5178 * and tracks traversed objects. 5179 * 5180 * @private 5181 * @param {*} value The value to compare. 5182 * @param {*} other The other value to compare. 5183 * @param {boolean} bitmask The bitmask flags. 5184 * 1 - Unordered comparison 5185 * 2 - Partial comparison 5186 * @param {Function} [customizer] The function to customize comparisons. 5187 * @param {Object} [stack] Tracks traversed `value` and `other` objects. 5188 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 5189 */ 5190function baseIsEqual(value, other, bitmask, customizer, stack) { 5191 if (value === other) { 5192 return true; 5193 } 5194 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { 5195 return value !== value && other !== other; 5196 } 5197 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 5198} 5199 5200module.exports = baseIsEqual; 5201 5202 5203/***/ }), 5204/* 92 */ 5205/***/ (function(module, exports, __webpack_require__) { 5206 5207var SetCache = __webpack_require__(208), 5208 arraySome = __webpack_require__(211), 5209 cacheHas = __webpack_require__(212
vendor: 2,558 bytes, lines 5209-5293
5209); 5210 5211/** Used to compose bitmasks for value comparisons. */ 5212var COMPARE_PARTIAL_FLAG = 1, 5213 COMPARE_UNORDERED_FLAG = 2; 5214 5215/** 5216 * A specialized version of `baseIsEqualDeep` for arrays with support for 5217 * partial deep comparisons. 5218 * 5219 * @private 5220 * @param {Array} array The array to compare. 5221 * @param {Array} other The other array to compare. 5222 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 5223 * @param {Function} customizer The function to customize comparisons. 5224 * @param {Function} equalFunc The function to determine equivalents of values. 5225 * @param {Object} stack Tracks traversed `array` and `other` objects. 5226 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. 5227 */ 5228function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 5229 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 5230 arrLength = array.length, 5231 othLength = other.length; 5232 5233 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 5234 return false; 5235 } 5236 // Check that cyclic values are equal. 5237 var arrStacked = stack.get(array); 5238 var othStacked = stack.get(other); 5239 if (arrStacked && othStacked) { 5240 return arrStacked == other && othStacked == array; 5241 } 5242 var index = -1, 5243 result = true, 5244 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; 5245 5246 stack.set(array, other); 5247 stack.set(other, array); 5248 5249 // Ignore non-index properties. 5250 while (++index < arrLength) { 5251 var arrValue = array[index], 5252 othValue = other[index]; 5253 5254 if (customizer) { 5255 var compared = isPartial 5256 ? customizer(othValue, arrValue, index, other, array, stack) 5257 : customizer(arrValue, othValue, index, array, other, stack); 5258 } 5259 if (compared !== undefined) { 5260 if (compared) { 5261 continue; 5262 } 5263 result = false; 5264 break; 5265 } 5266 // Recursively compare arrays (susceptible to call stack limits). 5267 if (seen) { 5268 if (!arraySome(other, function(othValue, othIndex) { 5269 if (!cacheHas(seen, othIndex) && 5270 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 5271 return seen.push(othIndex); 5272 } 5273 })) { 5274 result = false; 5275 break; 5276 } 5277 } else if (!( 5278 arrValue === othValue || 5279 equalFunc(arrValue, othValue, bitmask, customizer, stack) 5280 )) { 5281 result = false; 5282 break; 5283 } 5284 } 5285 stack['delete'](array); 5286 stack['delete'](other); 5287 return result; 5288} 5289 5290module.exports = equalArrays; 5291 5292 5293/***/ }),
vendor: 3,114 bytes, lines 5294-5411
5294/* 93 */ 5295/***/ (function(module, exports, __webpack_require__) { 5296 5297var arrayPush = __webpack_require__(47), 5298 isArray = __webpack_require__(1); 5299 5300/** 5301 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses 5302 * `keysFunc` and `symbolsFunc` to get the enumerable property names and 5303 * symbols of `object`. 5304 * 5305 * @private 5306 * @param {Object} object The object to query. 5307 * @param {Function} keysFunc The function to get the keys of `object`. 5308 * @param {Function} symbolsFunc The function to get the symbols of `object`. 5309 * @returns {Array} Returns the array of property names and symbols. 5310 */ 5311function baseGetAllKeys(object, keysFunc, symbolsFunc) { 5312 var result = keysFunc(object); 5313 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 5314} 5315 5316module.exports = baseGetAllKeys; 5317 5318 5319/***/ }), 5320/* 94 */ 5321/***/ (function(module, exports, __webpack_require__) { 5322 5323var arrayFilter = __webpack_require__(219), 5324 stubArray = __webpack_require__(95); 5325 5326/** Used for built-in method references. */ 5327var objectProto = Object.prototype; 5328 5329/** Built-in value references. */ 5330var propertyIsEnumerable = objectProto.propertyIsEnumerable; 5331 5332/* Built-in method references for those with the same name as other `lodash` methods. */ 5333var nativeGetSymbols = Object.getOwnPropertySymbols; 5334 5335/** 5336 * Creates an array of the own enumerable symbols of `object`. 5337 * 5338 * @private 5339 * @param {Object} object The object to query. 5340 * @returns {Array} Returns the array of symbols. 5341 */ 5342var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 5343 if (object == null) { 5344 return []; 5345 } 5346 object = Object(object); 5347 return arrayFilter(nativeGetSymbols(object), function(symbol) { 5348 return propertyIsEnumerable.call(object, symbol); 5349 }); 5350}; 5351 5352module.exports = getSymbols; 5353 5354 5355/***/ }), 5356/* 95 */ 5357/***/ (function(module, exports) { 5358 5359/** 5360 * This method returns a new empty array. 5361 * 5362 * @static 5363 * @memberOf _ 5364 * @since 4.13.0 5365 * @category Util 5366 * @returns {Array} Returns the new empty array. 5367 * @example 5368 * 5369 * var arrays = _.times(2, _.stubArray); 5370 * 5371 * console.log(arrays); 5372 * // => [[], []] 5373 * 5374 * console.log(arrays[0] === arrays[1]); 5375 * // => false 5376 */ 5377function stubArray() { 5378 return []; 5379} 5380 5381module.exports = stubArray; 5382 5383 5384/***/ }), 5385/* 96 */ 5386/***/ (function(module, exports, __webpack_require__) { 5387 5388var baseTimes = __webpack_require__(220), 5389 isArguments = __webpack_require__(33), 5390 isArray = __webpack_require__(1), 5391 isBuffer = __webpack_require__(48), 5392 isIndex = __webpack_require__(49), 5393 isTypedArray = __webpack_require__(50); 5394 5395/** Used for built-in method references. */ 5396var objectProto = Object.prototype; 5397 5398/** Used to check objects for own properties. */ 5399var hasOwnProperty = objectProto.hasOwnProperty; 5400 5401/** 5402 * Creates an array of the enumerable property names of the array-like `value`. 5403 * 5404 * @private 5405 * @param {*} value The value to query. 5406 * @param {boolean} inherited Specify returning inherited property names. 5407 * @returns {Array} Returns the array of property names. 5408 */ 5409function arrayLikeKeys(value, inherited) { 5410 var isArr = isArray(value), 5411 isArg = !isArr && isArguments(value),
vendor: 4,425 bytes, lines 5412-5596
5412 isBuff = !isArr && !isArg && isBuffer(value), 5413 isType = !isArr && !isArg && !isBuff && isTypedArray(value), 5414 skipIndexes = isArr || isArg || isBuff || isType, 5415 result = skipIndexes ? baseTimes(value.length, String) : [], 5416 length = result.length; 5417 5418 for (var key in value) { 5419 if ((inherited || hasOwnProperty.call(value, key)) && 5420 !(skipIndexes && ( 5421 // Safari 9 has enumerable `arguments.length` in strict mode. 5422 key == 'length' || 5423 // Node.js 0.10 has enumerable non-index properties on buffers. 5424 (isBuff && (key == 'offset' || key == 'parent')) || 5425 // PhantomJS 2 has enumerable non-index properties on typed arrays. 5426 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || 5427 // Skip index properties. 5428 isIndex(key, length) 5429 ))) { 5430 result.push(key); 5431 } 5432 } 5433 return result; 5434} 5435 5436module.exports = arrayLikeKeys; 5437 5438 5439/***/ }), 5440/* 97 */ 5441/***/ (function(module, exports) { 5442 5443module.exports = function(module) { 5444 if (!module.webpackPolyfill) { 5445 module.deprecate = function() {}; 5446 module.paths = []; 5447 // module.parent = undefined by default 5448 if (!module.children) module.children = []; 5449 Object.defineProperty(module, "loaded", { 5450 enumerable: true, 5451 get: function() { 5452 return module.l; 5453 } 5454 }); 5455 Object.defineProperty(module, "id", { 5456 enumerable: true, 5457 get: function() { 5458 return module.i; 5459 } 5460 }); 5461 module.webpackPolyfill = 1; 5462 } 5463 return module; 5464}; 5465 5466 5467/***/ }), 5468/* 98 */ 5469/***/ (function(module, exports) { 5470 5471/** 5472 * Creates a unary function that invokes `func` with its argument transformed. 5473 * 5474 * @private 5475 * @param {Function} func The function to wrap. 5476 * @param {Function} transform The argument transform. 5477 * @returns {Function} Returns the new function. 5478 */ 5479function overArg(func, transform) { 5480 return function(arg) { 5481 return func(transform(arg)); 5482 }; 5483} 5484 5485module.exports = overArg; 5486 5487 5488/***/ }), 5489/* 99 */ 5490/***/ (function(module, exports, __webpack_require__) { 5491 5492var getNative = __webpack_require__(8), 5493 root = __webpack_require__(4); 5494 5495/* Built-in method references that are verified to be native. */ 5496var WeakMap = getNative(root, 'WeakMap'); 5497 5498module.exports = WeakMap; 5499 5500 5501/***/ }), 5502/* 100 */ 5503/***/ (function(module, exports, __webpack_require__) { 5504 5505var isObject = __webpack_require__(5); 5506 5507/** 5508 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 5509 * 5510 * @private 5511 * @param {*} value The value to check. 5512 * @returns {boolean} Returns `true` if `value` if suitable for strict 5513 * equality comparisons, else `false`. 5514 */ 5515function isStrictComparable(value) { 5516 return value === value && !isObject(value); 5517} 5518 5519module.exports = isStrictComparable; 5520 5521 5522/***/ }), 5523/* 101 */ 5524/***/ (function(module, exports) { 5525 5526/** 5527 * A specialized version of `matchesProperty` for source values suitable 5528 * for strict equality comparisons, i.e. `===`. 5529 * 5530 * @private 5531 * @param {string} key The key of the property to get. 5532 * @param {*} srcValue The value to match. 5533 * @returns {Function} Returns the new spec function. 5534 */ 5535function matchesStrictComparable(key, srcValue) { 5536 return function(object) { 5537 if (object == null) { 5538 return false; 5539 } 5540 return object[key] === srcValue && 5541 (srcValue !== undefined || (key in Object(object))); 5542 }; 5543} 5544 5545module.exports = matchesStrictComparable; 5546 5547 5548/***/ }), 5549/* 102 */ 5550/***/ (function(module, exports) { 5551 5552/** 5553 * A specialized version of `_.map` for arrays without support for iteratee 5554 * shorthands. 5555 * 5556 * @private 5557 * @param {Array} [array] The array to iterate over. 5558 * @param {Function} iteratee The function invoked per iteration. 5559 * @returns {Array} Returns the new mapped array. 5560 */ 5561function arrayMap(array, iteratee) { 5562 var index = -1, 5563 length = array == null ? 0 : array.length, 5564 result = Array(length); 5565 5566 while (++index < length) { 5567 result[index] = iteratee(array[index], index, array); 5568 } 5569 return result; 5570} 5571 5572module.exports = arrayMap; 5573 5574 5575/***/ }), 5576/* 103 */ 5577/***/ (function(module, exports) { 5578 5579/** 5580 * The base implementation of `_.property` without support for deep paths. 5581 * 5582 * @private 5583 * @param {string} key The key of the property to get. 5584 * @returns {Function} Returns the new accessor function. 5585 */ 5586function baseProperty(key) { 5587 return function(object) { 5588 return object == null ? undefined : object[key]; 5589 }; 5590} 5591 5592module.exports = baseProperty; 5593 5594 5595/***/ }), 5596/* 104 */
5597/***/ (function(module, exports) { 5598 5599/** 5600 * The base implementation of `_.findIndex` and `_.findLastIndex` without 5601 * support for iteratee shorthands. 5602 * 5603 * @private 5604 * @param {Array} array The array to inspect. 5605 * @param {Function} predicate The function invoked per iteration. 5606 * @param {number} fromIndex The index to search from. 5607 * @param {boolean} [fromRight] Specify iterating from right to left. 5608 * @returns {number} Returns the index of the matched value, else `-1`. 5609 */ 5610function baseFindIndex(array, predicate, fromIndex, fromRight) { 5611 var length = array.length, 5612 index = fromIndex + (fromRight ? 1 : -1); 5613 5614 while ((fromRight ? index-- : ++index < length)) { 5615 if (predicate(array[index], index, array)) { 5616 return index; 5617 } 5618 } 5619 return -1; 5620} 5621 5622module.exports = baseFindIndex; 5623 5624 5625/***/ }), 5626/* 105 */ 5627/***/ (function(module, exports, __webpack_require__) { 5628 5629var toFinite = __webpack_require__(243); 5630 5631/** 5632 * Converts `value` to an integer. 5633 * 5634 * **Note:** This method is loosely based on 5635 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). 5636 * 5637 * @static 5638 * @memberOf _ 5639 * @since 4.0.0 5640 * @category Lang 5641 * @param {*} value The value to convert. 5642 * @returns {number} Returns the converted integer. 5643 * @example 5644 * 5645 * _.toInteger(3.2); 5646 * // => 3 5647 * 5648 * _.toInteger(Number.MIN_VALUE); 5649 * // => 0 5650 * 5651 * _.toInteger(Infinity); 5652 * // => 1.7976931348623157e+308 5653 * 5654 * _.toInteger('3.2'); 5655 * // => 3 5656 */ 5657function toInteger(value) { 5658 var result = toFinite(value), 5659 remainder = result % 1; 5660 5661 return result === result ? (remainder ? result - remainder : result) : 0; 5662} 5663 5664module.exports = toInteger; 5665 5666 5667/***/ }), 5668/* 106 */ 5669/***/ (function(module, exports, __webpack_require__) { 5670 5671"use strict"; 5672 5673 5674var _interopRequireDefault = __webpack_require__(0); 5675 5676Object.defineProperty(exports, "__esModule", { 5677 value: true 5678}); 5679exports.inQuad = inQuad; 5680exports.outQuad = outQuad; 5681exports.inOutQuad = inOutQuad; 5682exports.inCubic = inCubic; 5683exports.outCubic = outCubic; 5684exports.inOutCubic = inOutCubic; 5685exports.inQuart = inQuart; 5686exports.outQuart = outQuart; 5687exports.inOutQuart = inOutQuart; 5688exports.inQuint = inQuint; 5689exports.outQuint = outQuint; 5690exports.inOutQuint = inOutQuint; 5691exports.inSine = inSine; 5692exports.outSine = outSine; 5693exports.inOutSine = inOutSine; 5694exports.inExpo = inExpo; 5695exports.outExpo = outExpo; 5696exports.inOutExpo = inOutExpo; 5697exports.inCirc = inCirc; 5698exports.outCirc = outCirc; 5699exports.inOutCirc = inOutCirc; 5700exports.outBounce = outBounce; 5701exports.inBack = inBack; 5702exports.outBack = outBack; 5703exports.inOutBack = inOutBack; 5704exports.inElastic = inElastic; 5705exports.outElastic = outElastic; 5706exports.inOutElastic = inOutElastic; 5707exports.swingFromTo = swingFromTo; 5708exports.swingFrom = swingFrom; 5709exports.swingTo = swingTo; 5710exports.bounce = bounce; 5711exports.bouncePast = bouncePast; 5712exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; 5713 5714var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn 5715// Easing Equations (c) 2003 Robert Penner, BSD license 5716// https://raw.github.com/danro/easing-js/master/LICENSE 5717 5718 5719var magicSwing = 1.70158; 5720var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); 5721exports.ease = ease; 5722var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); 5723exports.easeIn = easeIn; 5724var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); 5725exports.easeOut = easeOut; 5726var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); 5727exports.easeInOut = easeInOut; 5728 5729function inQuad(pos) { 5730 return Math.pow(pos, 2); 5731} 5732 5733function outQuad(pos) { 5734 return -(Math.pow(pos - 1, 2) - 1); 5735} 5736 5737function inOutQuad(pos) { 5738 if ((pos /= 0.5) < 1) { 5739 return 0.5 * Math.pow(pos, 2); 5740 } 5741 5742 return -0.5 * ((pos -= 2) * pos - 2); 5743} 5744 5745function inCubic(pos) { 5746 return Math.pow(pos, 3); 5747} 5748 5749function outCubic(pos) { 5750 return Math.pow(pos - 1, 3) + 1; 5751} 5752 5753function inOutCubic(pos) { 5754 if ((pos /= 0.5) < 1) { 5755 return 0.5 * Math.pow(pos, 3); 5756 } 5757 5758 return 0.5 * (Math.pow(pos - 2, 3) + 2); 5759} 5760 5761function inQuart(pos) { 5762 return Math.pow(pos, 4); 5763} 5764 5765function outQuart(pos) { 5766 return -(Math.pow(pos - 1, 4) - 1); 5767} 5768 5769function inOutQuart(pos) { 5770 if ((pos /= 0.5) < 1) { 5771 return 0.5 * Math.pow(pos, 4); 5772 } 5773 5774 return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); 5775} 5776 5777function inQuint(pos) { 5778 return Math.pow(pos, 5); 5779} 5780 5781function outQuint(pos) { 5782 return Math.pow(pos - 1, 5) + 1; 5783} 5784 5785function inOutQuint(pos) { 5786 if ((pos /= 0.5) < 1) { 5787 return 0.5 * Math.pow(pos, 5); 5788 } 5789 5790 return 0.5 * (Math.pow(pos - 2, 5) + 2); 5791} 5792 5793function inSine(pos) { 5794 return -Math.cos(pos * (Math.PI / 2)) + 1; 5795} 5796 5797function outSine(pos) { 5798 return Math.sin(pos * (Math.PI / 2)); 5799} 5800 5801function inOutSine(pos) { 5802 return -0.5 * (Math.cos(Math.PI * pos) - 1); 5803} 5804 5805function inExpo(pos) { 5806 return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); 5807} 5808 5809function outExpo(pos) { 5810 return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; 5811} 5812 5813function inOutExpo(pos) { 5814 if (pos === 0) { 5815 return 0; 5816 } 5817 5818 if (pos === 1) { 5819 return 1; 5820 } 5821 5822 if ((pos /= 0.5) < 1) { 5823 return 0.5 * Math.pow(2, 10 * (pos - 1)); 5824 } 5825 5826 return 0.5 * (-Math.pow(2, -10 * --pos) + 2); 5827} 5828 5829function inCirc(pos) { 5830 return -(Math.sqrt(1 - pos * pos) - 1); 5831} 5832 5833function outCirc(pos) { 5834 return Math.sqrt(1 - Math.pow(pos - 1, 2)); 5835} 5836 5837function inOutCirc(pos) { 5838 if ((pos /= 0.5) < 1) { 5839 return -0.5 * (Math.sqrt(1 - pos * pos) - 1); 5840 } 5841 5842 return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); 5843} 5844 5845function outBounce(pos) { 5846 if (pos < 1 / 2.75) { 5847 return 7.5625 * pos * pos; 5848 } else if (pos < 2 / 2.75) { 5849 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 5850 } else if (pos < 2.5 / 2.75) { 5851 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 5852 } else { 5853 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 5854 } 5855} 5856 5857function inBack(pos) { 5858 var s = magicSwing; 5859 return pos * pos * ((s + 1) * pos - s); 5860} 5861 5862function outBack(pos) { 5863 var s = magicSwing; 5864 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 5865} 5866 5867function inOutBack(pos) { 5868 var s = magicSwing; 5869 5870 if ((pos /= 0.5) < 1) { 5871 return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); 5872 } 5873 5874 return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); 5875} 5876 5877function inElastic(pos) { 5878 var s = magicSwing; 5879 var p = 0; 5880 var a = 1; 5881 5882 if (pos === 0) { 5883 return 0; 5884 } 5885 5886 if (pos === 1) { 5887 return 1; 5888 } 5889 5890 if (!p) { 5891 p = 0.3; 5892 } 5893 5894 if (a < 1) { 5895 a = 1; 5896 s = p / 4; 5897 } else { 5898 s = p / (2 * Math.PI) * Math.asin(1 / a); 5899 } 5900
5901 return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 5902} 5903 5904function outElastic(pos) { 5905 var s = magicSwing; 5906 var p = 0; 5907 var a = 1; 5908 5909 if (pos === 0) { 5910 return 0; 5911 } 5912 5913 if (pos === 1) { 5914 return 1; 5915 } 5916 5917 if (!p) { 5918 p = 0.3; 5919 } 5920 5921 if (a < 1) { 5922 a = 1; 5923 s = p / 4; 5924 } else { 5925 s = p / (2 * Math.PI) * Math.asin(1 / a); 5926 } 5927 5928 return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; 5929} 5930 5931function inOutElastic(pos) { 5932 var s = magicSwing; 5933 var p = 0; 5934 var a = 1; 5935 5936 if (pos === 0) { 5937 return 0; 5938 } 5939 5940 if ((pos /= 1 / 2) === 2) { 5941 return 1; 5942 } 5943 5944 if (!p) { 5945 p = 0.3 * 1.5; 5946 } 5947 5948 if (a < 1) { 5949 a = 1; 5950 s = p / 4; 5951 } else { 5952 s = p / (2 * Math.PI) * Math.asin(1 / a); 5953 } 5954 5955 if (pos < 1) { 5956 return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 5957 } 5958 5959 return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; 5960} 5961 5962function swingFromTo(pos) { 5963 var s = magicSwing; 5964 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); 5965} 5966 5967function swingFrom(pos) { 5968 var s = magicSwing; 5969 return pos * pos * ((s + 1) * pos - s); 5970} 5971 5972function swingTo(pos) { 5973 var s = magicSwing; 5974 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 5975} 5976 5977function bounce(pos) { 5978 if (pos < 1 / 2.75) { 5979 return 7.5625 * pos * pos; 5980 } else if (pos < 2 / 2.75) { 5981 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 5982 } else if (pos < 2.5 / 2.75) { 5983 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 5984 } else { 5985 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 5986 } 5987} 5988 5989function bouncePast(pos) { 5990 if (pos < 1 / 2.75) { 5991 return 7.5625 * pos * pos; 5992 } else if (pos < 2 / 2.75) { 5993 return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); 5994 } else if (pos < 2.5 / 2.75) { 5995 return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); 5996 } else { 5997 return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); 5998 } 5999} 6000 6001/***/ }), 6002/* 107 */ 6003/***/ (function(module, exports) { 6004 6005/** 6006 * https://github.com/gre/bezier-easing 6007 * BezierEasing - use bezier curve for transition easing function 6008 * by Gaëtan Renaudeau 2014 - 2015 â MIT License 6009 */ 6010 6011// These values are established by empiricism with tests (tradeoff: performance VS precision) 6012var NEWTON_ITERATIONS = 4; 6013var NEWTON_MIN_SLOPE = 0.001; 6014var SUBDIVISION_PRECISION = 0.0000001; 6015var SUBDIVISION_MAX_ITERATIONS = 10; 6016 6017var kSplineTableSize = 11; 6018var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); 6019 6020var float32ArraySupported = typeof Float32Array === 'function'; 6021 6022function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } 6023function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } 6024function C (aA1) { return 3.0 * aA1; } 6025 6026// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. 6027function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } 6028 6029// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. 6030function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } 6031 6032function binarySubdivide (aX, aA, aB, mX1, mX2) { 6033 var currentX, currentT, i = 0; 6034 do { 6035 currentT = aA + (aB - aA) / 2.0; 6036 currentX = calcBezier(currentT, mX1, mX2) - aX; 6037 if (currentX > 0.0) { 6038 aB = currentT; 6039 } else { 6040 aA = currentT; 6041 } 6042 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); 6043 return currentT; 6044} 6045 6046function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { 6047 for (var i = 0; i < NEWTON_ITERATIONS; ++i) { 6048 var currentSlope = getSlope(aGuessT, mX1, mX2); 6049 if (currentSlope === 0.0) { 6050 return aGuessT; 6051 } 6052 var currentX = calcBezier(aGuessT, mX1, mX2) - aX; 6053 aGuessT -= currentX / currentSlope; 6054 } 6055 return aGuessT; 6056} 6057 6058module.exports = function bezier (mX1, mY1, mX2, mY2) { 6059 if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { 6060 throw new Error('bezier x values must be in [0, 1] range'); 6061 } 6062 6063 // Precompute samples table 6064 var sampleValues = float32ArraySupported ? new Float32Array(kS
6064plineTableSize) : new Array(kSplineTableSize); 6065 if (mX1 !== mY1 || mX2 !== mY2) { 6066 for (var i = 0; i < kSplineTableSize; ++i) { 6067 sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); 6068 } 6069 } 6070 6071 function getTForX (aX) { 6072 var intervalStart = 0.0; 6073 var currentSample = 1; 6074 var lastSample = kSplineTableSize - 1; 6075 6076 for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { 6077 intervalStart += kSampleStepSize; 6078 } 6079 --currentSample; 6080 6081 // Interpolate to provide an initial guess for t 6082 var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); 6083 var guessForT = intervalStart + dist * kSampleStepSize; 6084 6085 var initialSlope = getSlope(guessForT, mX1, mX2); 6086 if (initialSlope >= NEWTON_MIN_SLOPE) { 6087 return newtonRaphsonIterate(aX, guessForT, mX1, mX2); 6088 } else if (initialSlope === 0.0) { 6089 return guessForT; 6090 } else { 6091 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); 6092 } 6093 } 6094 6095 return function BezierEasing (x) { 6096 if (mX1 === mY1 && mX2 === mY2) { 6097 return x; // linear 6098 } 6099 // Because JavaScript number are imprecise, we should guarantee the extremes are right. 6100 if (x === 0) { 6101 return 0; 6102 } 6103 if (x === 1) { 6104 return 1; 6105 } 6106 return calcBezier(getTForX(x), mY1, mY2); 6107 }; 6108}; 6109 6110 6111/***/ }), 6112/* 108 */ 6113/***/ (function(module, exports, __webpack_require__) { 6114 6115"use strict"; 6116 6117 6118var _interopRequireDefault2 = __webpack_require__(0); 6119 6120var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); 6121 6122var _interopRequireDefault = __webpack_require__(0); 6123 6124var _interopRequireWildcard = __webpack_require__(14); 6125 6126Object.defineProperty(exports, "__esModule", { 6127 value: true 6128}); 6129exports.optimizeFloat = optimizeFloat; 6130exports.createBezierEasing = createBezierEasing; 6131exports.applyEasing = applyEasing; 6132 6133var easings = _interopRequireWildcard(__webpack_require__(106)); 6134 6135var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); 6136 6137function optimizeFloat(value) { 6138 var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; 6139 var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; 6140 var pow = Math.pow(base, digits); 6141 6142 var _float = Number(Math.round(value * pow) / pow); 6143 6144 return Math.abs(_float) > 0.0001 ? _float : 0; 6145} 6146 6147function createBezierEasing(easing) { 6148 return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); 6149} 6150 6151function applyEasing(easing, position, customEasingFn) { 6152 if (position === 0) { 6153 return 0; 6154 } 6155 6156 if (position === 1) { 6157 return 1; 6158 } 6159 6160 if (customEasingFn) { 6161 return optimizeFloat(position > 0 ? customEasingFn(position) : position); 6162 } 6163 6164 return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); 6165} 6166 6167/***/ }), 6168/* 109 */ 6169/***/ (function(module, exports, __webpack_require__) { 6170 6171var arrayWithoutHoles = __webpack_require__(244); 6172 6173var iterableToArray = __webpack_require__(245); 6174 6175var nonIterableSpread = __webpack_require__(246); 6176 6177function _toConsumableArray(arr) { 6178 return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); 6179} 6180 6181module.exports = _toConsumableArray; 6182 6183/***/ }), 6184/* 110 */ 6185/***/ (function(module, exports, __webpack_require__) { 6186 6187"use strict"; 6188 6189 6190var _interopRequireDefault = __webpack_require__(0); 6191 6192var _defineProperty2 = _interopRequireDefault(__webpack_require__(26)); 6193 6194Object.defineProperty(exports, "__esModule", { 6195 value: true 6196}); 6197exports.isPluginType = isPluginType; 6198exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; 6199 6200var _IX2LottieUtils = __webpack_require__(248); 6201 6202var _constants = __webpack_require__(2); 6203 6204var _IX2BrowserSupport = __webpack_require__(43); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined 6205 6206 6207var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, {
6208 getConfig: _IX2LottieUtils.getPluginConfig, 6209 getOrigin: _IX2LottieUtils.getPluginOrigin, 6210 getDuration: _IX2LottieUtils.getPluginDuration, 6211 getDestination: _IX2LottieUtils.getPluginDestination, 6212 createInstance: _IX2LottieUtils.createPluginInstance, 6213 render: _IX2LottieUtils.renderPlugin, 6214 clear: _IX2LottieUtils.clearPlugin 6215}); 6216 6217function isPluginType(actionTypeId) { 6218 return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; 6219} 6220 6221var pluginMethod = function pluginMethod(methodName) { 6222 return function (actionTypeId) { 6223 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 6224 // IX2 plugins require browser libs for now 6225 return function () { 6226 return null; 6227 }; 6228 } 6229 6230 var plugin = pluginMethodMap[actionTypeId]; 6231 6232 if (!plugin) { 6233 throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); 6234 } 6235 6236 var method = plugin[methodName]; 6237 6238 if (!method) { 6239 throw new Error("IX2 invalid plugin method: ".concat(methodName)); 6240 } 6241 6242 return method; 6243 }; 6244}; 6245 6246var getPluginConfig = pluginMethod('getConfig'); 6247exports.getPluginConfig = getPluginConfig; 6248var getPluginOrigin = pluginMethod('getOrigin'); 6249exports.getPluginOrigin = getPluginOrigin; 6250var getPluginDuration = pluginMethod('getDuration'); 6251exports.getPluginDuration = getPluginDuration; 6252var getPluginDestination = pluginMethod('getDestination'); 6253exports.getPluginDestination = getPluginDestination; 6254var createPluginInstance = pluginMethod('createInstance'); 6255exports.createPluginInstance = createPluginInstance; 6256var renderPlugin = pluginMethod('render'); 6257exports.renderPlugin = renderPlugin; 6258var clearPlugin = pluginMethod('clear'); 6259exports.clearPlugin = clearPlugin; 6260 6261/***/ }), 6262/* 111 */ 6263/***/ (function(module, exports, __webpack_require__) { 6264 6265var baseForOwn = __webpack_require__(112), 6266 createBaseEach = __webpack_require__(255); 6267 6268/** 6269 * The base implementation of `_.forEach` without support for iteratee shorthands. 6270 * 6271 * @private 6272 * @param {Array|Object} collection The collection to iterate over. 6273 * @param {Function} iteratee The function invoked per iteration. 6274 * @returns {Array|Object} Returns `collection`. 6275 */ 6276var baseEach = createBaseEach(baseForOwn); 6277 6278module.exports = baseEach; 6279 6280 6281/***/ }), 6282/* 112 */ 6283/***/ (function(module, exports, __webpack_require__) { 6284 6285var baseFor = __webpack_require__(253), 6286 keys = __webpack_require__(32); 6287 6288/** 6289 * The base implementation of `_.forOwn` without support for iteratee shorthands. 6290 * 6291 * @private 6292 * @param {Object} object The object to iterate over. 6293 * @param {Function} iteratee The function invoked per iteration. 6294 * @returns {Object} Returns `object`. 6295 */ 6296function baseForOwn(object, iteratee) { 6297 return object && baseFor(object, iteratee, keys); 6298} 6299 6300module.exports = baseForOwn; 6301 6302 6303/***/ }), 6304/* 113 */ 6305/***/ (function(module, exports, __webpack_require__) { 6306 6307"use strict"; 6308 6309 6310var _interopRequireDefault = __webpack_require__(259); 6311 6312exports.__esModule = true; 6313exports.default = void 0; 6314 6315var _shallowEqual = _interopRequireDefault(__webpack_require__(260)); 6316 6317var _default = _shallowEqual.default; 6318exports.default = _default; 6319 6320/***/ }), 6321/* 114 */ 6322/***/ (function(module, exports, __webpack_require__) { 6323 6324"use strict"; 6325 6326 6327var _interopRequireDefault2 = __webpack_require__(0); 6328 6329var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); 6330 6331var _interopRequireWildcard = __webpack_require__(14); 6332 6333var _interopRequireDefault = __webpack_require__(0); 6334 6335Object.defineProperty(exports, "__esModule", { 6336 value: true 6337}); 6338exports.observeRequests = observeRequests; 6339exports.startEngine = startEngine; 6340exports.stopEngine = stopEngine; 6341exports.stopAllActionGroups = stopAllActionGroups; 6342exports.stopActionGroup = stopActionGroup; 6343exports.startActionGroup = startActionGroup; 6344 6345var _extends2 = _interopRequireDefault(__webpack_require__(27)); 6346 6347var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(263)); 6348 6349var _find = _interopRequireDefault(__webpack_require__(85)); 6350 6351var _get = _interopRequireDefault(__webpack_require__(55)); 6352 6353var _size = _interopRequireDefault(__webpack_require__(264)); 6354 6355var _omitBy = _interopRequireDefault(__webpack_require__(270)); 6356 6357var _isEmpty = _interopRequireDefault(__webpack_require__(282)); 6358 6359var _mapValues = _interopRequireDefault(__webpack_require__(283)); 6360
6361var _forEach = _interopRequireDefault(__webpack_require__(284)); 6362 6363var _throttle = _interopRequireDefault(__webpack_require__(287)); 6364 6365var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); 6366 6367var _constants = __webpack_require__(2); 6368 6369var _shared = __webpack_require__(10); 6370 6371var _IX2EngineActions = __webpack_require__(60); 6372 6373var elementApi = _interopRequireWildcard(__webpack_require__(290)); 6374 6375var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(291)); 6376/* eslint-env browser */ 6377 6378 6379var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); 6380 6381var isQuickEffect = function isQuickEffect(actionTypeId) { 6382 return QuickEffectsIdList.includes(actionTypeId); 6383}; 6384 6385var _constants$IX2EngineC = _constants.IX2EngineConstants, 6386 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 6387 BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, 6388 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 6389 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 6390 W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; 6391var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 6392 getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, 6393 getElementId = _shared$IX2VanillaUti.getElementId, 6394 getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, 6395 observeStore = _shared$IX2VanillaUti.observeStore, 6396 getInstanceId = _shared$IX2VanillaUti.getInstanceId, 6397 renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, 6398 clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, 6399 getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, 6400 getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, 6401 getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, 6402 reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, 6403 shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, 6404 getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, 6405 shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, 6406 cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, 6407 stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, 6408 mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual; 6409var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, 6410 isPluginType = _shared$IX2VanillaPlu.isPluginType, 6411 createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, 6412 getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; 6413var ua = navigator.userAgent; 6414var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy 6415 6416var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe 6417 6418function observeRequests(store) { 6419 observeStore({ 6420 store: store, 6421 select: function select(_ref) { 6422 var ixRequest = _ref.ixRequest; 6423 return ixRequest.preview; 6424 }, 6425 onChange: handlePreviewRequest 6426 }); 6427 observeStore({ 6428 store: store, 6429 select: function select(_ref2) { 6430 var ixRequest = _ref2.ixRequest; 6431 return ixRequest.playback; 6432 }, 6433 onChange: handlePlaybackRequest 6434 }); 6435 observeStore({ 6436 store: store, 6437 select: function select(_ref3) { 6438 var ixRequest = _ref3.ixRequest; 6439 return ixRequest.stop; 6440 }, 6441 onChange: handleStopRequest 6442 }); 6443 observeStore({ 6444 store: store, 6445 select: function select(_ref4) { 6446 var ixRequest = _ref4.ixRequest; 6447 return ixRequest.clear; 6448 }, 6449 onChange: handleClearRequest 6450 }); 6451} 6452 6453function observeMediaQueryChange(store) { 6454 observeStore({ 6455 store: store, 6456 select: function select(_ref5) { 6457 var ixSession = _ref5.ixSession; 6458 return ixSession.mediaQueryKey; 6459 }, 6460 onChange: function onChange() { 6461 stopEngine(store); 6462 clearAllStyles({ 6463 store: store, 6464 elementApi: elementApi 6465 }); 6466 startEngine({ 6467 store: store, 6468 allowEvents: true 6469 }); 6470 dispatchPageUpdateEvent(); 6471 } 6472 }); 6473} 6474 6475function observeOneRenderTick(store, onTick) { 6476 var unsubscribe = observeStore({ 6477 store: store, 6478 select: function select(_ref6) { 6479 var ixSession = _ref6.ixSession; 6480 return ixSession.tick; 6481 }, 6482 onChange: function onChange(tick) { 6483 onTick(tick); 6484 unsubscribe(); 6485 } 6486 }); 6487} 6488 6489function handlePreviewRequest(_ref7, store) { 6490 var rawData = _ref7.rawData, 6491 defer = _ref7.defer; 6492 6493 var start = function start() { 6494 startEngine({ 6495 store: store, 6496 rawData: rawData, 6497 allowEvents: true 6498 }); 6499 dispatchPageUpdateEvent(); 6500 }; 6501 6502 defer ? setTimeout(start, 0) : start(); 6503} 6504 6505function dispatchPageUpdateEvent() { 6506 document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); 6507} 6508 6509function handlePlaybackRequest(playback, store) { 6510 var actionTypeId = playback.actionTypeId, 6511 actionListId = playback.actionListId, 6512 actionItemId = playback.actionItemId, 6513 eventId = playback.eventId, 6514 allowEvents = playback.allowEvents, 6515 immediate = playback.immediate, 6516 testManual = playback.testManual, 6517 _playback$verbose = playback.verbose, 6518 verbose = _playback$verbose === void 0 ? true : _playback$verbose; 6519 var rawData = playback.rawData; 6520 6521 if (actionListId && actionItemId && rawData && immediate) { 6522 var actionList = rawData.actionLists[actionListId]; 6523 6524 if (actionList) { 6525 rawData = reduceListToGroup({ 6526 actionList: actionList, 6527 actionItemId: actionItemId, 6528 rawData: rawData 6529 }); 6530 } 6531 } 6532 6533 startEngine({ 6534 store: store, 6535 rawData: rawData, 6536 allowEvents: allowEvents, 6537 testManual: testManual 6538 }); 6539 6540 if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { 6541 stopActionGroup({ 6542 store: store, 6543 actionListId: actionListId 6544 }); 6545 renderInitialGroup({ 6546 store: store, 6547 actionListId: actionListId, 6548 eventId: eventId 6549 }); 6550 var started = startActionGroup({ 6551 store: store, 6552 eventId: eventId, 6553 actionListId: actionListId, 6554 immediate: immediate,
6555 verbose: verbose 6556 }); 6557 6558 if (verbose && started) { 6559 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 6560 actionListId: actionListId, 6561 isPlaying: !immediate 6562 })); 6563 } 6564 } 6565} 6566 6567function handleStopRequest(_ref8, store) { 6568 var actionListId = _ref8.actionListId; 6569 6570 if (actionListId) { 6571 stopActionGroup({ 6572 store: store, 6573 actionListId: actionListId 6574 }); 6575 } else { 6576 stopAllActionGroups({ 6577 store: store 6578 }); 6579 } 6580 6581 stopEngine(store); 6582} 6583 6584function handleClearRequest(state, store) { 6585 stopEngine(store); 6586 clearAllStyles({ 6587 store: store, 6588 elementApi: elementApi 6589 }); 6590} // $FlowFixMe 6591 6592 6593function startEngine(_ref9) { 6594 var store = _ref9.store, 6595 rawData = _ref9.rawData, 6596 allowEvents = _ref9.allowEvents, 6597 testManual = _ref9.testManual; 6598 6599 var _store$getState = store.getState(), 6600 ixSession = _store$getState.ixSession; 6601 6602 if (rawData) { 6603 store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); 6604 } 6605 6606 if (!ixSession.active) { 6607 store.dispatch((0, _IX2EngineActions.sessionInitialized)({ 6608 hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)) 6609 })); 6610 6611 if (allowEvents) { 6612 bindEvents(store); 6613 addDocumentClass(); 6614 6615 if (store.getState().ixSession.hasDefinedMediaQueries) { 6616 observeMediaQueryChange(store); 6617 } 6618 } 6619 6620 store.dispatch((0, _IX2EngineActions.sessionStarted)()); 6621 startRenderLoop(store, testManual); 6622 } 6623} 6624 6625function addDocumentClass() { 6626 var _document = document, 6627 documentElement = _document.documentElement; // $FlowFixMe 6628 6629 if (documentElement.className.indexOf(W_MOD_IX) === -1) { 6630 // $FlowFixMe 6631 documentElement.className += " ".concat(W_MOD_IX); 6632 } 6633} 6634 6635function startRenderLoop(store, testManual) { 6636 var handleFrame = function handleFrame(now) { 6637 var _store$getState2 = store.getState(), 6638 ixSession = _store$getState2.ixSession, 6639 ixParameters = _store$getState2.ixParameters; 6640 6641 if (ixSession.active) { 6642 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); 6643 6644 if (testManual) { 6645 observeOneRenderTick(store, handleFrame); 6646 } else { 6647 requestAnimationFrame(handleFrame); 6648 } 6649 } 6650 }; 6651 6652 handleFrame(window.performance.now()); 6653} // $FlowFixMe 6654 6655 6656function stopEngine(store) { 6657 var _store$getState3 = store.getState(), 6658 ixSession = _store$getState3.ixSession; 6659 6660 if (ixSession.active) { 6661 var eventListeners = ixSession.eventListeners; 6662 eventListeners.forEach(clearEventListener); 6663 store.dispatch((0, _IX2EngineActions.sessionStopped)()); 6664 } 6665} 6666 6667function clearEventListener(_ref10) { 6668 var target = _ref10.target, 6669 listenerParams = _ref10.listenerParams; 6670 target.removeEventListener.apply(target, listenerParams); 6671} 6672 6673function createGroupInstances(_ref11) { 6674 var store = _ref11.store, 6675 eventStateKey = _ref11.eventStateKey, 6676 eventTarget = _ref11.eventTarget, 6677 eventId = _ref11.eventId, 6678 eventConfig = _ref11.eventConfig, 6679 actionListId = _ref11.actionListId, 6680 parameterGroup = _ref11.parameterGroup, 6681 smoothing = _ref11.smoothing, 6682 restingValue = _ref11.restingValue; 6683 6684 var _store$getState4 = store.getState(), 6685 ixData = _store$getState4.ixData, 6686 ixSession = _store$getState4.ixSession; 6687 6688 var events = ixData.events; 6689 var event = events[eventId]; 6690 var eventTypeId = event.eventTypeId; 6691 var targetCache = {}; 6692 var instanceActionGroups = {}; 6693 var instanceConfigs = []; 6694 var continuousActionGroups = parameterGroup.continuousActionGroups; 6695 var parameterId = parameterGroup.id; 6696 6697 if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { 6698 parameterId = getNamespacedParameterId(eventStateKey, parameterId); 6699 } // Limit affected elements when event target is within a boundary node 6700 6701 6702 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 6703 continuousActionGroups.forEach(function (actionGroup) { 6704 var keyframe = actionGroup.keyframe, 6705 actionItems = actionGroup.actionItems;
6706 actionItems.forEach(function (actionItem) { 6707 var actionTypeId = actionItem.actionTypeId; 6708 var target = actionItem.config.target; 6709 6710 if (!target) { 6711 return; 6712 } 6713 6714 var elementRoot = target.boundaryMode ? eventElementRoot : null; 6715 var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; 6716 instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); 6717 6718 if (!targetCache[key]) { 6719 targetCache[key] = true; 6720 var config = actionItem.config; 6721 getAffectedElements({ 6722 config: config, 6723 event: event, 6724 eventTarget: eventTarget, 6725 elementRoot: elementRoot, 6726 elementApi: elementApi 6727 }).forEach(function (element) { 6728 instanceConfigs.push({ 6729 element: element, 6730 key: key 6731 }); 6732 }); 6733 } 6734 }); 6735 }); 6736 instanceConfigs.forEach(function (_ref12) { 6737 var element = _ref12.element, 6738 key = _ref12.key; 6739 var actionGroups = instanceActionGroups[key]; 6740 var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); 6741 var actionTypeId = actionItem.actionTypeId; 6742 var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe 6743 createPluginInstance(actionTypeId)(element, actionItem) : null; 6744 var destination = getDestinationValues({ 6745 element: element, 6746 actionItem: actionItem, 6747 elementApi: elementApi 6748 }, // $FlowFixMe 6749 pluginInstance); 6750 createInstance({ 6751 store: store, 6752 element: element, 6753 eventId: eventId, 6754 actionListId: actionListId, 6755 actionItem: actionItem, 6756 destination: destination, 6757 continuous: true, 6758 parameterId: parameterId, 6759 actionGroups: actionGroups, 6760 smoothing: smoothing, 6761 restingValue: restingValue, 6762 pluginInstance: pluginInstance 6763 }); 6764 }); 6765} 6766 6767function appendActionItem() { 6768 var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 6769 var keyframe = arguments.length > 1 ? arguments[1] : undefined; 6770 var actionItem = arguments.length > 2 ? arguments[2] : undefined; 6771 var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); 6772 var groupIndex; 6773 newActionGroups.some(function (group, index) { 6774 if (group.keyframe === keyframe) { 6775 groupIndex = index; 6776 return true; 6777 } 6778 6779 return false; 6780 }); 6781 6782 if (groupIndex == null) { 6783 groupIndex = newActionGroups.length; 6784 newActionGroups.push({ 6785 keyframe: keyframe, 6786 actionItems: [] 6787 }); 6788 } 6789 6790 newActionGroups[groupIndex].actionItems.push(actionItem); 6791 return newActionGroups; 6792} 6793 6794function bindEvents(store) { 6795 var _store$getState5 = store.getState(), 6796 ixData = _store$getState5.ixData; 6797 6798 var eventTypeMap = ixData.eventTypeMap; 6799 updateViewportWidth(store); 6800 (0, _forEach["default"])(eventTypeMap, function (events, key) { 6801 var logic = _IX2VanillaEvents["default"][key]; 6802 6803 if (!logic) { 6804 console.warn("IX2 event type not configured: ".concat(key)); 6805 return; 6806 } 6807 6808 bindEventType({ 6809 logic: logic, 6810 store: store, 6811 events: events 6812 }); 6813 }); 6814 6815 var _store$getState6 = store.getState(), 6816 ixSession = _store$getState6.ixSession; 6817 6818 if (ixSession.eventListeners.length) { 6819 bindResizeEvents(store); 6820 } 6821} 6822 6823var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; 6824 6825function bindResizeEvents(store) { 6826 var handleResize = function handleResize() { 6827 updateViewportWidth(store); 6828 }; 6829 6830 WINDOW_RESIZE_EVENTS.forEach(function (type) { 6831 window.addEventListener(type, handleResize); 6832 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); 6833 }); 6834 handleResize(); 6835} 6836 6837function updateViewportWidth(store) { 6838 var _store$getState7 = store.getState(), 6839 ixSession = _store$getState7.ixSession, 6840 ixData = _store$getState7.ixData; 6841 6842 var width = window.innerWidth; 6843 6844 if (width !== ixSession.viewportWidth) { 6845 var mediaQueries = ixData.mediaQueries; 6846 store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ 6847 width: width, 6848 mediaQueries: mediaQueries 6849 })); 6850 } 6851} 6852 6853var mapFoundValues = function mapFoundValues(object, iteratee) { 6854 return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); 6855}; 6856
6857var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { 6858 (0, _forEach["default"])(eventTargets, function (elements, eventId) { 6859 elements.forEach(function (element, index) { 6860 var eventStateKey = eventId + COLON_DELIMITER + index; 6861 eventCallback(element, eventId, eventStateKey); 6862 }); 6863 }); 6864}; 6865 6866var getAffectedForEvent = function getAffectedForEvent(event) { 6867 var config = { 6868 target: event.target, 6869 targets: event.targets 6870 }; 6871 return getAffectedElements({ 6872 config: config, 6873 elementApi: elementApi 6874 }); 6875}; 6876 6877function bindEventType(_ref13) { 6878 var logic = _ref13.logic, 6879 store = _ref13.store, 6880 events = _ref13.events; 6881 injectBehaviorCSSFixes(events); 6882 var eventTypes = logic.types, 6883 eventHandler = logic.handler; 6884 6885 var _store$getState8 = store.getState(), 6886 ixData = _store$getState8.ixData; 6887 6888 var actionLists = ixData.actionLists; 6889 var eventTargets = mapFoundValues(events, getAffectedForEvent); 6890 6891 if (!(0, _size["default"])(eventTargets)) { 6892 return; 6893 } 6894 6895 (0, _forEach["default"])(eventTargets, function (elements, key) { 6896 var event = events[key]; 6897 var eventAction = event.action, 6898 eventId = event.id, 6899 _event$mediaQueries = event.mediaQueries, 6900 mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; 6901 var actionListId = eventAction.config.actionListId; 6902 6903 if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { 6904 store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); 6905 } 6906 6907 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 6908 var configs = Array.isArray(event.config) ? event.config : [event.config]; 6909 configs.forEach(function (eventConfig) { 6910 var continuousParameterGroupId = eventConfig.continuousParameterGroupId; 6911 var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); 6912 var parameterGroup = (0, _find["default"])(paramGroups, function (_ref14) { 6913 var id = _ref14.id; 6914 return id === continuousParameterGroupId; 6915 }); 6916 var smoothing = (eventConfig.smoothing || 0) / 100; 6917 var restingValue = (eventConfig.restingState || 0) / 100; 6918 6919 if (!parameterGroup) { 6920 return; 6921 } 6922 6923 elements.forEach(function (eventTarget, index) { 6924 var eventStateKey = eventId + COLON_DELIMITER + index; 6925 createGroupInstances({ 6926 store: store, 6927 eventStateKey: eventStateKey, 6928 eventTarget: eventTarget, 6929 eventId: eventId, 6930 eventConfig: eventConfig, 6931 actionListId: actionListId, 6932 parameterGroup: parameterGroup, 6933 smoothing: smoothing, 6934 restingValue: restingValue 6935 }); 6936 }); 6937 }); 6938 } 6939 6940 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { 6941 renderInitialGroup({ 6942 store: store, 6943 actionListId: actionListId, 6944 eventId: eventId 6945 }); 6946 } 6947 }); 6948 6949 var handleEvent = function handleEvent(nativeEvent) { 6950 var _store$getState9 = store.getState(), 6951 ixSession = _store$getState9.ixSession; 6952 6953 forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { 6954 var event = events[eventId]; 6955 var oldState = ixSession.eventState[eventStateKey]; 6956 var eventAction = event.action, 6957 _event$mediaQueries2 = event.mediaQueries, 6958 mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config 6959 6960 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 6961 return; 6962 } 6963 6964 var handleEventWithConfig = function handleEventWithConfig() { 6965 var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 6966 var newState = eventHandler({ 6967 store: store, 6968 element: element, 6969 event: event, 6970 eventConfig: eventConfig, 6971 nativeEvent: nativeEvent, 6972 eventStateKey: eventStateKey 6973 }, oldState); 6974 6975 if (!(0, _shallowEqual["default"])(newState, oldState)) { 6976 store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); 6977 } 6978 }; 6979 6980 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 6981 var configs = Array.isArray(event.config) ? event.config : [event.config];
6982 configs.forEach(handleEventWithConfig); 6983 } else { 6984 handleEventWithConfig(); 6985 } 6986 }); 6987 }; 6988 6989 var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); 6990 6991 var addListeners = function addListeners(_ref15) { 6992 var _ref15$target = _ref15.target, 6993 target = _ref15$target === void 0 ? document : _ref15$target, 6994 types = _ref15.types, 6995 shouldThrottle = _ref15.throttle; 6996 types.split(' ').filter(Boolean).forEach(function (type) { 6997 var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe 6998 6999 target.addEventListener(type, handlerFunc); 7000 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); 7001 }); 7002 }; 7003 7004 if (Array.isArray(eventTypes)) { 7005 eventTypes.forEach(addListeners); 7006 } else if (typeof eventTypes === 'string') { 7007 addListeners(logic); 7008 } 7009} 7010/** 7011 * Injects CSS into the document to fix behavior issues across 7012 * different devices. 7013 */ 7014 7015 7016function injectBehaviorCSSFixes(events) { 7017 if (!IS_MOBILE_SAFARI) { 7018 return; 7019 } 7020 7021 var injectedSelectors = {}; 7022 var cssText = ''; 7023 7024 for (var eventId in events) { 7025 var _events$eventId = events[eventId], 7026 eventTypeId = _events$eventId.eventTypeId, 7027 target = _events$eventId.target; 7028 var selector = elementApi.getQuerySelector(target); // $FlowFixMe 7029 7030 if (injectedSelectors[selector]) { 7031 continue; 7032 } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices 7033 7034 7035 if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { 7036 // $FlowFixMe 7037 injectedSelectors[selector] = true; 7038 cssText += // $FlowFixMe 7039 selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; 7040 } 7041 } 7042 7043 if (cssText) { 7044 var style = document.createElement('style'); 7045 style.textContent = cssText; // $FlowFixMe 7046 7047 document.body.appendChild(style); 7048 } 7049} 7050 7051function renderInitialGroup(_ref16) { 7052 var store = _ref16.store, 7053 actionListId = _ref16.actionListId, 7054 eventId = _ref16.eventId; 7055 7056 var _store$getState10 = store.getState(), 7057 ixData = _store$getState10.ixData, 7058 ixSession = _store$getState10.ixSession; 7059 7060 var actionLists = ixData.actionLists, 7061 events = ixData.events; 7062 var event = events[eventId]; 7063 var actionList = actionLists[actionListId]; 7064 7065 if (actionList && actionList.useFirstGroupAsInitialState) { 7066 var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config 7067 7068 var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); 7069 7070 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7071 return; 7072 } 7073 7074 initialStateItems.forEach(function (actionItem) { 7075 var _itemConfig$target; 7076 7077 var itemConfig = actionItem.config, 7078 actionTypeId = actionItem.actionTypeId; 7079 var config = // When useEventTarget is explicitly true, use event target/targets to query elements 7080 (itemConfig === null || itemConfig === void 0 ? void 0 : (_itemConfig$target = itemConfig.target) === null || _itemConfig$target === void 0 ? void 0 : _itemConfig$target.useEventTarget) === true ? { 7081 target: event.target, 7082 targets: event.targets 7083 } : itemConfig; 7084 var itemElements = getAffectedElements({ 7085 config: config, 7086 event: event, 7087 elementApi: elementApi 7088 }); 7089 var shouldUsePlugin = isPluginType(actionTypeId); 7090 itemElements.forEach(function (element) { 7091 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7092 createPluginInstance(actionTypeId)(element, actionItem) : null; 7093 createInstance({ 7094 destination: getDestinationValues({ 7095 element: element, 7096 actionItem: actionItem, 7097 elementApi: elementApi 7098 }, // $FlowFixMe 7099 pluginInstance), 7100 immediate: true, 7101 store: store, 7102 element: element, 7103 eventId: eventId, 7104 actionItem: actionItem, 7105 actionListId: actionListId, 7106 pluginInstance: pluginInstance 7107 }); 7108 }); 7109 }); 7110 } 7111} // $FlowFixMe 7112 7113 7114function stopAllActionGroups(_ref17) { 7115 var store = _ref17.store; 7116 7117 var _store$getState11 = store.getState(), 7118 ixInstances = _store$getState11.ixInstances; 7119
7120 (0, _forEach["default"])(ixInstances, function (instance) { 7121 if (!instance.continuous) { 7122 var actionListId = instance.actionListId, 7123 verbose = instance.verbose; 7124 removeInstance(instance, store); 7125 7126 if (verbose) { 7127 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7128 actionListId: actionListId, 7129 isPlaying: false 7130 })); 7131 } 7132 } 7133 }); 7134} // $FlowFixMe 7135 7136 7137function stopActionGroup(_ref18) { 7138 var store = _ref18.store, 7139 eventId = _ref18.eventId, 7140 eventTarget = _ref18.eventTarget, 7141 eventStateKey = _ref18.eventStateKey, 7142 actionListId = _ref18.actionListId; 7143 7144 var _store$getState12 = store.getState(), 7145 ixInstances = _store$getState12.ixInstances, 7146 ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances 7147 7148 7149 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7150 (0, _forEach["default"])(ixInstances, function (instance) { 7151 var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true 7152 7153 var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids 7154 7155 if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { 7156 // Avoid removal when root boundary does not contain instance element 7157 if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { 7158 return; 7159 } 7160 7161 removeInstance(instance, store); 7162 7163 if (instance.verbose) { 7164 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7165 actionListId: actionListId, 7166 isPlaying: false 7167 })); 7168 } 7169 } 7170 }); 7171} // $FlowFixMe 7172 7173 7174function startActionGroup(_ref19) { 7175 var store = _ref19.store, 7176 eventId = _ref19.eventId, 7177 eventTarget = _ref19.eventTarget, 7178 eventStateKey = _ref19.eventStateKey, 7179 actionListId = _ref19.actionListId, 7180 _ref19$groupIndex = _ref19.groupIndex, 7181 groupIndex = _ref19$groupIndex === void 0 ? 0 : _ref19$groupIndex, 7182 immediate = _ref19.immediate, 7183 verbose = _ref19.verbose; 7184 7185 var _event$action; 7186 7187 var _store$getState13 = store.getState(), 7188 ixData = _store$getState13.ixData, 7189 ixSession = _store$getState13.ixSession; 7190 7191 var events = ixData.events; 7192 var event = events[eventId] || {}; 7193 var _event$mediaQueries3 = event.mediaQueries, 7194 mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; 7195 var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); 7196 var actionItemGroups = actionList.actionItemGroups, 7197 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups 7198 7199 if (!actionItemGroups || !actionItemGroups.length) { 7200 return false; 7201 } // Reset to first group when event loop is configured 7202 7203 7204 if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { 7205 groupIndex = 0; 7206 } // Skip initial state group during action list playback, as it should already be applied 7207 7208 7209 if (groupIndex === 0 && useFirstGroupAsInitialState) { 7210 groupIndex++; 7211 } // Identify first animated group and apply the initial QuickEffect delay 7212 7213 7214 var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; 7215 var instanceDelay = isFirstGroup && isQuickEffect((_event$action = event.action) === null || _event$action === void 0 ? void 0 : _event$action.actionTypeId) ? event.config.delay : undefined; // Abort playback if no action items exist at group index 7216 7217 var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); 7218 7219 if (!actionItems.length) { 7220 return false; 7221 } // Abort playback if current media query is not listed in event config 7222 7223 7224 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7225 return false;
7226 } // Limit affected elements when event target is within a boundary node 7227 7228 7229 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7230 var carrierIndex = getMaxDurationItemIndex(actionItems); 7231 var groupStartResult = false; 7232 actionItems.forEach(function (actionItem, actionIndex) { 7233 var config = actionItem.config, 7234 actionTypeId = actionItem.actionTypeId; 7235 var shouldUsePlugin = isPluginType(actionTypeId); 7236 var target = config.target; 7237 7238 if (!target) { 7239 return; 7240 } 7241 7242 var elementRoot = target.boundaryMode ? eventElementRoot : null; 7243 var elements = getAffectedElements({ 7244 config: config, 7245 event: event, 7246 eventTarget: eventTarget, 7247 elementRoot: elementRoot, 7248 elementApi: elementApi 7249 }); 7250 elements.forEach(function (element, elementIndex) { 7251 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7252 createPluginInstance(actionTypeId)(element, actionItem) : null; 7253 var pluginDuration = shouldUsePlugin ? // $FlowFixMe 7254 getPluginDuration(actionTypeId)(element, actionItem) : null; 7255 groupStartResult = true; 7256 var isCarrier = carrierIndex === actionIndex && elementIndex === 0; 7257 var computedStyle = getComputedStyle({ 7258 element: element, 7259 actionItem: actionItem 7260 }); 7261 var destination = getDestinationValues({ 7262 element: element, 7263 actionItem: actionItem, 7264 elementApi: elementApi 7265 }, // $FlowFixMe 7266 pluginInstance); 7267 createInstance({ 7268 store: store, 7269 element: element, 7270 actionItem: actionItem, 7271 eventId: eventId, 7272 eventTarget: eventTarget, 7273 eventStateKey: eventStateKey, 7274 actionListId: actionListId, 7275 groupIndex: groupIndex, 7276 isCarrier: isCarrier, 7277 computedStyle: computedStyle, 7278 destination: destination, 7279 immediate: immediate, 7280 verbose: verbose, 7281 pluginInstance: pluginInstance, 7282 pluginDuration: pluginDuration, 7283 instanceDelay: instanceDelay 7284 }); 7285 }); 7286 }); 7287 return groupStartResult; 7288} 7289 7290function createInstance(options) { 7291 // $FlowFixMe 7292 var store = options.store, 7293 computedStyle = options.computedStyle, 7294 rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); // $FlowFixMe 7295 7296 var autoStart = !rest.continuous; // $FlowFixMe 7297 7298 var element = rest.element, 7299 actionItem = rest.actionItem, 7300 immediate = rest.immediate, 7301 pluginInstance = rest.pluginInstance; 7302 var instanceId = getInstanceId(); 7303 7304 var _store$getState14 = store.getState(), 7305 ixElements = _store$getState14.ixElements, 7306 ixSession = _store$getState14.ixSession; 7307 7308 var elementId = getElementId(ixElements, element); 7309 7310 var _ref20 = ixElements[elementId] || {}, 7311 refState = _ref20.refState; 7312 7313 var refType = elementApi.getRefType(element); 7314 var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe 7315 pluginInstance); 7316 store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ 7317 instanceId: instanceId, 7318 elementId: elementId, 7319 origin: origin, 7320 refType: refType 7321 }, rest))); 7322 dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); 7323 7324 if (immediate) { 7325 renderImmediateInstance(store, instanceId); 7326 return; 7327 } 7328 7329 observeStore({ 7330 store: store, 7331 select: function select(_ref21) { 7332 var ixInstances = _ref21.ixInstances; 7333 return ixInstances[instanceId]; 7334 }, 7335 onChange: handleInstanceChange 7336 }); 7337 7338 if (autoStart) { 7339 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); 7340 } 7341} 7342 7343function removeInstance(instance, store) { 7344 dispatchCustomEvent(document.body, 'ix2-animation-stopping', { 7345 instanceId: instance.id, 7346 state: store.getState() 7347 }); 7348 var elementId = instance.elementId, 7349 actionItem = instance.actionItem; 7350 7351 var _store$getState15 = store.getState(), 7352 ixElements = _store$getState15.ixElements; 7353 7354 var _ref22 = ixElements[elementId] || {}, 7355 ref = _ref22.ref, 7356 refType = _ref22.refType; 7357 7358 if (refType === HTML_ELEMENT) { 7359 cleanupHTMLElement(ref, actionItem, elementApi); 7360 } 7361 7362 store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); 7363} 7364 7365function dispatchCustomEvent(element, eventName, detail) { 7366 var event = document.createEvent('CustomEvent'); 7367 event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe 7368 7369 element.dispatchEvent(event); 7370} 7371 7372function renderImmediateInstance(store, instanceId) { 7373 var _store$getState16 = store.getState(), 7374 ixParameters = _store$getState16.ixParameters; 7375 7376 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); 7377 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); 7378 7379 var _store$getState17 = store.getState(), 7380 ixInstances = _store$getState17.ixInstances; 7381 7382 handleInstanceChange(ixInstances[instanceId], store); 7383} 7384 7385function handleInstanceChange(instance, store) { 7386 var active = instance.active, 7387 continuous = instance.continuous, 7388 complete = instance.complete, 7389 elementId = instance.elementId, 7390 actionItem = instance.actionItem, 7391 actionTypeId = instance.actionTypeId, 7392 renderType = instance.renderType, 7393 current = instance.current, 7394 groupIndex = instance.groupIndex, 7395 eventId = instance.eventId, 7396 eventTarget = instance.eventTarget, 7397 eventStateKey = instance.eventStateKey, 7398 actionListId = instance.actionListId, 7399 isCarrier = instance.isCarrier, 7400 styleProp = instance.styleProp, 7401 verbose = instance.verbose, 7402 pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config 7403 7404 var _store$getState18 = store.getState(), 7405 ixData = _store$getState18.ixData, 7406 ixSession = _store$getState18.ixSession; 7407 7408 var events = ixData.events; 7409 var event = events[eventId] || {}; 7410 var _event$mediaQueries4 = event.mediaQueries, 7411 mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; 7412 7413 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7414 return; 7415 } 7416 7417 if (continuous || active || complete) { 7418 if (current || renderType === RENDER_GENERAL && complete) { 7419 // Render current values to ref state and grab latest 7420 store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); 7421 7422 var _store$getState19 = store.getState(), 7423 ixElements = _store$getState19.ixElements; 7424 7425 var _ref23 = ixElements[elementId] || {}, 7426 ref = _ref23.ref, 7427 refType = _ref23.refType, 7428 refState = _ref23.refState; 7429 7430 var actionState = refState && refState[actionTypeId]; // Choose render based on ref type 7431 7432 switch (refType) { 7433 case HTML_ELEMENT: 7434 { 7435 renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); 7436 break; 7437 } 7438 } 7439 } 7440 7441 if (complete) { 7442 if (isCarrier) { 7443 var started = startActionGroup({ 7444 store: store, 7445 eventId: eventId, 7446 eventTarget: eventTarget, 7447 eventStateKey: eventStateKey, 7448 actionListId: actionListId, 7449 groupIndex: groupIndex + 1,
7450 verbose: verbose 7451 }); 7452 7453 if (verbose && !started) { 7454 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7455 actionListId: actionListId, 7456 isPlaying: false 7457 })); 7458 } 7459 } 7460 7461 removeInstance(instance, store); 7462 } 7463 } 7464} 7465 7466/***/ }), 7467/* 115 */ 7468/***/ (function(module, exports, __webpack_require__) { 7469 7470var defineProperty = __webpack_require__(116); 7471 7472/** 7473 * The base implementation of `assignValue` and `assignMergeValue` without 7474 * value checks. 7475 * 7476 * @private 7477 * @param {Object} object The object to modify. 7478 * @param {string} key The key of the property to assign. 7479 * @param {*} value The value to assign. 7480 */ 7481function baseAssignValue(object, key, value) { 7482 if (key == '__proto__' && defineProperty) { 7483 defineProperty(object, key, { 7484 'configurable': true, 7485 'enumerable': true, 7486 'value': value, 7487 'writable': true 7488 }); 7489 } else { 7490 object[key] = value; 7491 } 7492} 7493 7494module.exports = baseAssignValue; 7495 7496 7497/***/ }), 7498/* 116 */ 7499/***/ (function(module, exports, __webpack_require__) { 7500 7501var getNative = __webpack_require__(8); 7502 7503var defineProperty = (function() { 7504 try { 7505 var func = getNative(Object, 'defineProperty'); 7506 func({}, '', {}); 7507 return func; 7508 } catch (e) {} 7509}()); 7510 7511module.exports = defineProperty; 7512 7513 7514/***/ }), 7515/* 117 */ 7516/***/ (function(module, exports, __webpack_require__) { 7517 7518var isObject = __webpack_require__(5); 7519 7520/** Built-in value references. */ 7521var objectCreate = Object.create; 7522 7523/** 7524 * The base implementation of `_.create` without support for assigning 7525 * properties to the created object. 7526 * 7527 * @private 7528 * @param {Object} proto The object to inherit from. 7529 * @returns {Object} Returns the new object. 7530 */ 7531var baseCreate = (function() { 7532 function object() {} 7533 return function(proto) { 7534 if (!isObject(proto)) { 7535 return {}; 7536 } 7537 if (objectCreate) { 7538 return objectCreate(proto); 7539 } 7540 object.prototype = proto; 7541 var result = new object; 7542 object.prototype = undefined; 7543 return result; 7544 }; 7545}()); 7546 7547module.exports = baseCreate; 7548 7549 7550/***/ }), 7551/* 118 */ 7552/***/ (function(module, exports, __webpack_require__) { 7553 7554var metaMap = __webpack_require__(304), 7555 noop = __webpack_require__(305); 7556 7557/** 7558 * Gets metadata for `func`. 7559 * 7560 * @private 7561 * @param {Function} func The function to query. 7562 * @returns {*} Returns the metadata for `func`. 7563 */ 7564var getData = !metaMap ? noop : function(func) { 7565 return metaMap.get(func); 7566}; 7567 7568module.exports = getData; 7569 7570 7571/***/ }), 7572/* 119 */ 7573/***/ (function(module, exports, __webpack_require__) { 7574 7575var realNames = __webpack_require__(306); 7576 7577/** Used for built-in method references. */ 7578var objectProto = Object.prototype; 7579 7580/** Used to check objects for own properties. */ 7581var hasOwnProperty = objectProto.hasOwnProperty; 7582 7583/** 7584 * Gets the name of `func`. 7585 * 7586 * @private 7587 * @param {Function} func The function to query. 7588 * @returns {string} Returns the function name. 7589 */ 7590function getFuncName(func) { 7591 var result = (func.name + ''), 7592 array = realNames[result], 7593 length = hasOwnProperty.call(realNames, result) ? array.length : 0; 7594 7595 while (length--) { 7596 var data = array[length], 7597 otherFunc = data.func; 7598 if (otherFunc == null || otherFunc == func) { 7599 return data.name; 7600 } 7601 } 7602 return result; 7603} 7604 7605module.exports = getFuncName; 7606 7607 7608/***/ }), 7609/* 120 */ 7610/***/ (function(module, exports, __webpack_require__) { 7611 7612__webpack_require__(121); 7613__webpack_require__(122); 7614__webpack_require__(65); 7615__webpack_require__(125); 7616__webpack_require__(313); 7617__webpack_require__(314); 7618__webpack_require__(315); 7619__webpack_require__(316); 7620module.exports = __webpack_require__(321); 7621 7622 7623/***/ }), 7624/* 121 */ 7625/***/ (function(module, exports, __webpack_require__) { 7626 7627"use strict"; 7628 // @wf-will-never-add-flow-to-this-file 7629 7630/* 7631 global 7632 window, document, Event 7633*/ 7634 7635/*---------------------------------------- 7636 * objectFitPolyfill 2.3.0 7637 * 7638 * Basic, no-frills version - 7639 * Defaults to object-fit: cover and object-position: 50% 50% 7640 * 7641 * Made by Constance Chen 7642 * Released under the MIT license 7643 * 7644 * https://github.com/constancecchen/object-fit-polyfill 7645 *--------------------------------------*/ 7646 7647var _interopRequireDefault = __webpack_require__(0); 7648 7649var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 7650 7651(function () { 7652 // if the page is being rendered on the server, don't continue 7653 if (typeof window === 'undefined') return; // Workaround for Edge 16+, which only implemented object-fit for <img> tags 7654 // TODO: Keep an eye on Edge to determine which version has full final support 7655 7656 var edgeVersion = window.navigator.userAgent.match(/Edge\/(\d{2})\./);
7657 var edgePartialSupport = edgeVersion ? parseInt(edgeVersion[1], 10) >= 16 : false; // If the browser does support object-fit, we don't need to continue 7658 7659 var hasSupport = 'objectFit' in document.documentElement.style !== false; 7660 7661 if (hasSupport && !edgePartialSupport) { 7662 window.objectFitPolyfill = function () { 7663 return false; 7664 }; 7665 7666 return; 7667 } 7668 /** 7669 * Check the container's parent element to make sure it will 7670 * correctly handle and clip absolutely positioned children 7671 * 7672 * @param {node} $container - parent element 7673 */ 7674 7675 7676 var checkParentContainer = function checkParentContainer($container) { 7677 var styles = window.getComputedStyle($container, null); 7678 var position = styles.getPropertyValue('position'); 7679 var overflow = styles.getPropertyValue('overflow'); 7680 var display = styles.getPropertyValue('display'); 7681 7682 if (!position || position === 'static') { 7683 $container.style.position = 'relative'; 7684 } 7685 7686 if (overflow !== 'hidden') { 7687 $container.style.overflow = 'hidden'; 7688 } // Guesstimating that people want the parent to act like full width/height wrapper here. 7689 // Mostly attempts to target <picture> elements, which default to inline. 7690 7691 7692 if (!display || display === 'inline') { 7693 $container.style.display = 'block'; 7694 } 7695 7696 if ($container.clientHeight === 0) { 7697 $container.style.height = '100%'; 7698 } // Add a CSS class hook, in case people need to override styles for any reason. 7699 7700 7701 if ($container.className.indexOf('object-fit-polyfill') === -1) { 7702 $container.className += ' object-fit-polyfill'; 7703 } 7704 }; 7705 /** 7706 * Check for pre-set max-width/height, min-width/height, 7707 * positioning, or margins, which can mess up image calculations 7708 * 7709 * @param {node} $media - img/video element 7710 */ 7711 7712 7713 var checkMediaProperties = function checkMediaProperties($media) { 7714 var styles = window.getComputedStyle($media, null); 7715 var constraints = { 7716 'max-width': 'none', 7717 'max-height': 'none', 7718 'min-width': '0px', 7719 'min-height': '0px', 7720 top: 'auto', 7721 right: 'auto', 7722 bottom: 'auto', 7723 left: 'auto', 7724 'margin-top': '0px', 7725 'margin-right': '0px', 7726 'margin-bottom': '0px', 7727 'margin-left': '0px' 7728 }; 7729 7730 for (var property in constraints) { 7731 var constraint = styles.getPropertyValue(property); 7732 7733 if (constraint !== constraints[property]) { 7734 $media.style[property] = constraints[property]; 7735 } 7736 } 7737 }; 7738 /** 7739 * Calculate & set object-fit 7740 * 7741 * @param {node} $media - img/video/picture element 7742 */ 7743 7744 7745 var objectFit = function objectFit($media) { 7746 // If necessary, make the parent container work with absolutely positioned elements 7747 var $container = $media.parentNode; 7748 checkParentContainer($container); // Check for any pre-set CSS which could mess up image calculations 7749 7750 checkMediaProperties($media); // Mathematically figure out which side needs covering, and add CSS positioning & centering 7751 7752 $media.style.position = 'absolute'; 7753 $media.style.height = '100%'; 7754 $media.style.width = 'auto'; 7755 7756 if ($media.clientWidth > $container.clientWidth) { 7757 $media.style.top = '0'; 7758 $media.style.marginTop = '0'; 7759 $media.style.left = '50%'; 7760 $media.style.marginLeft = $media.clientWidth / -2 + 'px'; 7761 } else { 7762 $media.style.width = '100%'; 7763 $media.style.height = 'auto'; 7764 $media.style.left = '0'; 7765 $media.style.marginLeft = '0'; 7766 $media.style.top = '50%'; 7767 $media.style.marginTop = $media.clientHeight / -2 + 'px'; 7768 } 7769 }; 7770 /** 7771 * Initialize plugin 7772 * 7773 * @param {node} media - Optional specific DOM node(s) to be polyfilled 7774 */ 7775 7776 7777 var objectFitPolyfill = function objectFitPolyfill(media) { 7778 if (typeof media === 'undefined' || media instanceof Event) { 7779 // If left blank, or a default event, all media on the page will be polyfilled. 7780 media = document.querySelectorAll('[data-object-fit]'); 7781 } else if (media && media.nodeName) { 7782 // If it's a single node, wrap it in an array so it works. 7783 media = [media]; 7784 } else if ((0, _typeof2["default"])(media) === 'object' && media.length && media[0].nodeName) { 7785 // If it's an array of DOM nodes (e.g. a jQuery selector), it's fine as-is. 7786 // eslint-disable-next-line no-self-assign 7787 media = media; 7788 } else { 7789 // Otherwise, if it's invalid or an incorrect type, return false to let people know. 7790 return false;
7791 } 7792 7793 for (var i = 0; i < media.length; i++) { 7794 if (!media[i].nodeName) continue; 7795 var mediaType = media[i].nodeName.toLowerCase(); 7796 7797 if (mediaType === 'img') { 7798 if (edgePartialSupport) continue; // Edge supports object-fit for images (but nothing else), so no need to polyfill 7799 7800 if (media[i].complete) { 7801 objectFit(media[i]); 7802 } else { 7803 media[i].addEventListener('load', function () { 7804 objectFit(this); 7805 }); 7806 } 7807 } else if (mediaType === 'video') { 7808 if (media[i].readyState > 0) { 7809 objectFit(media[i]); 7810 } else { 7811 media[i].addEventListener('loadedmetadata', function () { 7812 objectFit(this); 7813 }); 7814 } 7815 } else { 7816 objectFit(media[i]); 7817 } 7818 } 7819 7820 return true; 7821 }; 7822 7823 if (document.readyState === 'loading') { 7824 // Loading hasn't finished yet 7825 document.addEventListener('DOMContentLoaded', objectFitPolyfill); 7826 } else { 7827 // `DOMContentLoaded` has already fired 7828 objectFitPolyfill(); 7829 } 7830 7831 window.addEventListener('resize', objectFitPolyfill); 7832 window.objectFitPolyfill = objectFitPolyfill; 7833})(); 7834 7835/***/ }), 7836/* 122 */ 7837/***/ (function(module, exports, __webpack_require__) { 7838 7839"use strict"; 7840 // @wf-will-never-add-flow-to-this-file 7841 7842/* globals document, window, navigator */ 7843 7844/* eslint-disable no-var */ 7845 7846/** 7847 * Webflow: Brand pages on the subdomain 7848 */ 7849 7850var Webflow = __webpack_require__(6); 7851 7852Webflow.define('brand', module.exports = function ($) { 7853 var api = {}; 7854 var doc = document; 7855 var $html = $('html'); 7856 var $body = $('body'); 7857 var namespace = '.w-webflow-badge'; 7858 var location = window.location; 7859 var isPhantom = /PhantomJS/i.test(navigator.userAgent); 7860 var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; 7861 var brandElement; // ----------------------------------- 7862 // Module methods 7863 7864 api.ready = function () { 7865 var shouldBrand = $html.attr('data-wf-status'); 7866 var publishedDomain = $html.attr('data-wf-domain') || ''; 7867 7868 if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { 7869 shouldBrand = true; 7870 } 7871 7872 if (shouldBrand && !isPhantom) { 7873 brandElement = brandElement || createBadge(); 7874 ensureBrand(); 7875 setTimeout(ensureBrand, 500); 7876 $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); 7877 } 7878 }; 7879 7880 function onFullScreenChange() { 7881 var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); 7882 $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); 7883 } 7884 7885 function createBadge() { 7886 var $brand = $('<a class="w-webflow-badge"></a>').attr('href', 'https://webflow.com?utm_campaign=brandjs'); 7887 var $logoArt = $('<img>').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ 7888 marginRight: '8px', 7889 width: '16px' 7890 }); 7891 var $logoText = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); 7892 $brand.append($logoArt, $logoText); 7893 return $brand[0]; 7894 } 7895 7896 function ensureBrand() { 7897 var found = $body.children(namespace); 7898 var match = found.length && found.get(0) === brandElement; 7899 var inEditor = Webflow.env('editor'); 7900 7901 if (match) { 7902 // Remove brand when Editor is active 7903 if (inEditor) { 7904 found.remove(); 7905 } // Exit early, brand is in place 7906 7907 7908 return; 7909 } // Remove any invalid brand elements 7910 7911 7912 if (found.length) { 7913 found.remove(); 7914 } // Append the brand (unless Editor is active) 7915 7916 7917 if (!inEditor) { 7918 $body.append(brandElement); 7919 } 7920 } // Export module 7921 7922 7923 return api; 7924}); 7925 7926/***/ }), 7927/* 123 */ 7928/***/ (function(module, exports, __webpack_require__) { 7929 7930"use strict"; 7931 // @wf-will-never-add-flow-to-this-file 7932// Include tram for frame-throttling 7933 7934/* globals window */ 7935 7936/* eslint-disable no-var */ 7937 7938var $ = window.$; 7939var tram = __webpack_require__(64) && $.tram; 7940/*! 7941 * Webflow._ (aka) Underscore.js 1.6.0 (custom build) 7942 * _.each 7943 * _.map 7944 * _.find 7945 * _.filter 7946 * _.any 7947 * _.contains 7948 * _.delay 7949 * _.defer 7950 * _.throttle (webflow) 7951 * _.debounce 7952 * _.keys 7953 * _.has 7954 * _.now 7955 * 7956 * http://underscorejs.org
7957 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 7958 * Underscore may be freely distributed under the MIT license. 7959 * @license MIT 7960 */ 7961 7962module.exports = function () { 7963 var _ = {}; // Current version. 7964 7965 _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. 7966 7967 var breaker = {}; // Save bytes in the minified (but not gzipped) version: 7968 7969 /* eslint-disable one-var */ 7970 7971 var ArrayProto = Array.prototype, 7972 ObjProto = Object.prototype, 7973 FuncProto = Function.prototype; 7974 /* eslint-enable one-var */ 7975 // Create quick reference variables for speed access to core prototypes. 7976 7977 /* eslint-disable one-var, no-unused-vars */ 7978 7979 var push = ArrayProto.push, 7980 slice = ArrayProto.slice, 7981 concat = ArrayProto.concat, 7982 toString = ObjProto.toString, 7983 hasOwnProperty = ObjProto.hasOwnProperty; 7984 /* eslint-enable one-var, no-unused-vars */ 7985 // All **ECMAScript 5** native function implementations that we hope to use 7986 // are declared here. 7987 7988 /* eslint-disable one-var, no-unused-vars */ 7989 7990 var nativeForEach = ArrayProto.forEach, 7991 nativeMap = ArrayProto.map, 7992 nativeReduce = ArrayProto.reduce, 7993 nativeReduceRight = ArrayProto.reduceRight, 7994 nativeFilter = ArrayProto.filter, 7995 nativeEvery = ArrayProto.every, 7996 nativeSome = ArrayProto.some, 7997 nativeIndexOf = ArrayProto.indexOf, 7998 nativeLastIndexOf = ArrayProto.lastIndexOf, 7999 nativeIsArray = Array.isArray, 8000 nativeKeys = Object.keys, 8001 nativeBind = FuncProto.bind; 8002 /* eslint-enable one-var, no-unused-vars */ 8003 // Collection Functions 8004 // -------------------- 8005 // The cornerstone, an `each` implementation, aka `forEach`. 8006 // Handles objects with the built-in `forEach`, arrays, and raw objects. 8007 // Delegates to **ECMAScript 5**'s native `forEach` if available. 8008 8009 var each = _.each = _.forEach = function (obj, iterator, context) { 8010 /* jshint shadow:true */ 8011 if (obj == null) return obj; 8012 8013 if (nativeForEach && obj.forEach === nativeForEach) { 8014 obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion 8015 } else if (obj.length === +obj.length) { 8016 for (var i = 0, length = obj.length; i < length; i++) { 8017 if (iterator.call(context, obj[i], i, obj) === breaker) return; 8018 } 8019 } else { 8020 var keys = _.keys(obj); // eslint-disable-next-line no-redeclare 8021 8022 8023 for (var i = 0, length = keys.length; i < length; i++) { 8024 if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 8025 } 8026 } 8027 8028 return obj; 8029 }; // Return the results of applying the iterator to each element. 8030 // Delegates to **ECMAScript 5**'s native `map` if available. 8031 8032 8033 _.map = _.collect = function (obj, iterator, context) { 8034 var results = []; 8035 if (obj == null) return results; 8036 if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); 8037 each(obj, function (value, index, list) { 8038 results.push(iterator.call(context, value, index, list)); 8039 }); 8040 return results; 8041 }; // Return the first value which passes a truth test. Aliased as `detect`. 8042 8043 8044 _.find = _.detect = function (obj, predicate, context) { 8045 var result; 8046 any(obj, function (value, index, list) { 8047 if (predicate.call(context, value, index, list)) { 8048 result = value; 8049 return true; 8050 } 8051 }); 8052 return result; 8053 }; // Return all the elements that pass a truth test. 8054 // Delegates to **ECMAScript 5**'s native `filter` if available. 8055 // Aliased as `select`. 8056 8057 8058 _.filter = _.select = function (obj, predicate, context) { 8059 var results = []; 8060 if (obj == null) return results; 8061 if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); 8062 each(obj, function (value, index, list) { 8063 if (predicate.call(context, value, index, list)) results.push(value); 8064 }); 8065 return results; 8066 }; // Determine if at least one element in the object matches a truth test. 8067 // Delegates to **ECMAScript 5**'s native `some` if available. 8068 // Aliased as `any`. 8069 8070 8071 var any = _.some = _.any = function (obj, predicate, context) { 8072 predicate || (predicate = _.identity); 8073 var result = false;
8074 if (obj == null) return result; 8075 if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); 8076 each(obj, function (value, index, list) { 8077 if (result || (result = predicate.call(context, value, index, list))) return breaker; 8078 }); 8079 return !!result; // eslint-disable-line no-implicit-coercion 8080 }; // Determine if the array or object contains a given value (using `===`). 8081 // Aliased as `include`. 8082 8083 8084 _.contains = _.include = function (obj, target) { 8085 if (obj == null) return false; 8086 if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq 8087 return obj.indexOf(target) != -1; 8088 return any(obj, function (value) { 8089 return value === target; 8090 }); 8091 }; // Function (ahem) Functions 8092 // -------------------- 8093 // Delays a function for the given number of milliseconds, and then calls 8094 // it with the arguments supplied. 8095 8096 8097 _.delay = function (func, wait) { 8098 var args = slice.call(arguments, 2); 8099 return setTimeout(function () { 8100 return func.apply(null, args); 8101 }, wait); 8102 }; // Defers a function, scheduling it to run after the current call stack has 8103 // cleared. 8104 8105 8106 _.defer = function (func) { 8107 return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); 8108 }; // Returns a function, that, when invoked, will only be triggered once every 8109 // browser animation frame - using tram's requestAnimationFrame polyfill. 8110 8111 8112 _.throttle = function (func) { 8113 // eslint-disable-next-line one-var 8114 var wait, args, context; 8115 return function () { 8116 if (wait) return; 8117 wait = true; 8118 args = arguments; 8119 context = this; 8120 tram.frame(function () { 8121 wait = false; 8122 func.apply(context, args); 8123 }); 8124 }; 8125 }; // Returns a function, that, as long as it continues to be invoked, will not 8126 // be triggered. The function will be called after it stops being called for 8127 // N milliseconds. If `immediate` is passed, trigger the function on the 8128 // leading edge, instead of the trailing. 8129 8130 8131 _.debounce = function (func, wait, immediate) { 8132 // eslint-disable-next-line one-var 8133 var timeout, args, context, timestamp, result; 8134 8135 var later = function later() { 8136 var last = _.now() - timestamp; 8137 8138 if (last < wait) { 8139 timeout = setTimeout(later, wait - last); 8140 } else { 8141 timeout = null; 8142 8143 if (!immediate) { 8144 result = func.apply(context, args); 8145 context = args = null; 8146 } 8147 } 8148 }; 8149 8150 return function () { 8151 context = this; 8152 args = arguments; 8153 timestamp = _.now(); 8154 var callNow = immediate && !timeout; 8155 8156 if (!timeout) { 8157 timeout = setTimeout(later, wait); 8158 } 8159 8160 if (callNow) { 8161 result = func.apply(context, args); 8162 context = args = null; 8163 } 8164 8165 return result; 8166 }; 8167 }; // Object Functions 8168 // ---------------- 8169 // Fill in a given object with default properties. 8170 8171 8172 _.defaults = function (obj) { 8173 if (!_.isObject(obj)) return obj; 8174 8175 for (var i = 1, length = arguments.length; i < length; i++) { 8176 var source = arguments[i]; 8177 8178 for (var prop in source) { 8179 // eslint-disable-next-line no-void 8180 if (obj[prop] === void 0) obj[prop] = source[prop]; 8181 } 8182 } 8183 8184 return obj; 8185 }; // Retrieve the names of an object's properties. 8186 // Delegates to **ECMAScript 5**'s native `Object.keys` 8187 8188 8189 _.keys = function (obj) { 8190 if (!_.isObject(obj)) return []; 8191 if (nativeKeys) return nativeKeys(obj); 8192 var keys = []; 8193 8194 for (var key in obj) { 8195 if (_.has(obj, key)) keys.push(key); 8196 } 8197 8198 return keys; 8199 }; // Shortcut function for checking if an object has a given property directly 8200 // on itself (in other words, not on a prototype). 8201 8202 8203 _.has = function (obj, key) { 8204 return hasOwnProperty.call(obj, key); 8205 }; // Is a given variable an object? 8206 8207 8208 _.isObject = function (obj) { 8209 return obj === Object(obj); 8210 }; // Utility Functions 8211 // ----------------- 8212 // A (possibly faster) way to get the current timestamp as an integer. 8213 8214 8215 _.now = Date.now || function () { 8216 return new Date().getTime(); 8217 }; // By default, Underscore uses ERB-style template delimiters, change the 8218 // following template settings to use alternative delimiters. 8219 8220 8221 _.templateSettings = { 8222 evaluate: /<%([\s\S]+?)%>/g, 8223 interpolate: /<%=([\s\S]+?)%>/g, 8224 escape: /<%-([\s\S]+?)%>/g 8225 }; // When customizing `templateSettings`, if you don't want to define an 8226 // interpolation, evaluation or escaping regex, we need one that is 8227 // guaranteed not to match. 8228 8229 var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a 8230 // string literal. 8231 8232 var escapes = { 8233 "'": "'", 8234 '\\': '\\', 8235 '\r': 'r', 8236 '\n': 'n', 8237 "\u2028": 'u2028', 8238 "\u2029": 'u2029' 8239 }; 8240 var escaper = /\\|'|\r|\n|\u2028|\u2029/g; 8241 8242 var escapeChar = function escapeChar(match) { 8243 return '\\' + escapes[match]; 8244 }; // JavaScript micro-templating, similar to John Resig's implementation. 8245 // Underscore templating handles arbitrary delimiters, preserves whitespace, 8246 // and correctly escapes quotes within interpolated code. 8247 // NB: `oldSettings` only exists for backwards compatibility. 8248 8249 8250 _.template = function (text, settings, oldSettings) { 8251 if (!settings && oldSettings) settings = oldSettings; 8252 settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. 8253 8254 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. 8255 8256 var index = 0; 8257 var source = "__p+='"; 8258 text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { 8259 source += text.slice(index, offset).replace(escaper, escapeChar); 8260 index = offset + match.length; 8261 8262 if (escape) { 8263 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 8264 } else if (interpolate) { 8265 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
8266 } else if (evaluate) { 8267 source += "';\n" + evaluate + "\n__p+='"; 8268 } // Adobe VMs need the match returned to produce the correct offest. 8269 8270 8271 return match; 8272 }); 8273 source += "';\n"; // If a variable is not specified, place data values in local scope. 8274 8275 if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; 8276 source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; 8277 8278 try { 8279 // eslint-disable-next-line no-new-func 8280 var render = new Function(settings.variable || 'obj', '_', source); 8281 } catch (e) { 8282 e.source = source; 8283 throw e; 8284 } 8285 8286 var template = function template(data) { 8287 return render.call(this, data, _); 8288 }; // Provide the compiled source as a convenience for precompilation. 8289 8290 8291 var argument = settings.variable || 'obj'; 8292 template.source = 'function(' + argument + '){\n' + source + '}'; 8293 return template; 8294 }; // Export underscore 8295 8296 8297 return _; 8298}(); 8299/* eslint-enable */ 8300 8301/***/ }), 8302/* 124 */ 8303/***/ (function(module, exports, __webpack_require__) { 8304 8305"use strict";
8306// @wf-will-never-add-flow-to-this-file 8307 8308/* globals window */ 8309 8310/* eslint-disable no-var */ 8311 8312/** 8313 * Webflow: IX Event triggers for other modules 8314 */ 8315// eslint-disable-next-line strict 8316 8317 8318var $ = window.jQuery; 8319var api = {}; 8320var eventQueue = []; 8321var namespace = '.w-ix'; 8322var eventTriggers = { 8323 reset: function reset(i, el) { 8324 el.__wf_intro = null; 8325 }, 8326 intro: function intro(i, el) { 8327 if (el.__wf_intro) { 8328 return; 8329 } 8330 8331 el.__wf_intro = true; 8332 $(el).triggerHandler(api.types.INTRO); 8333 }, 8334 outro: function outro(i, el) { 8335 if (!el.__wf_intro) { 8336 return; 8337 } 8338 8339 el.__wf_intro = null; 8340 $(el).triggerHandler(api.types.OUTRO); 8341 } 8342}; 8343api.triggers = {}; 8344api.types = { 8345 INTRO: 'w-ix-intro' + namespace, 8346 OUTRO: 'w-ix-outro' + namespace 8347}; // Trigger any events in queue + restore trigger methods 8348 8349api.init = function () { 8350 var count = eventQueue.length; 8351 8352 for (var i = 0; i < count; i++) { 8353 var memo = eventQueue[i]; 8354 memo[0](0, memo[1]); 8355 } 8356 8357 eventQueue = []; 8358 $.extend(api.triggers, eventTriggers); 8359}; // Replace all triggers with async wrapper to queue events until init 8360 8361 8362api.async = function () { 8363 for (var key in eventTriggers) { 8364 var func = eventTriggers[key]; 8365 8366 if (!eventTriggers.hasOwnProperty(key)) { 8367 continue; 8368 } // Replace trigger method with async wrapper 8369 8370 8371 api.triggers[key] = function (i, el) { 8372 eventQueue.push([func, el]); 8373 }; 8374 } 8375}; // Default triggers to async queue 8376 8377 8378api.async(); 8379module.exports = api; 8380 8381/***/ }), 8382/* 125 */ 8383/***/ (function(module, exports, __webpack_require__) { 8384 8385"use strict"; 8386 // @wf-will-never-add-flow-to-this-file 8387 8388/* eslint-disable no-var */ 8389 8390/** 8391 * Webflow: Interactions 2 8392 */ 8393 8394var Webflow = __webpack_require__(6); 8395 8396var ix2 = __webpack_require__(126); 8397 8398ix2.setEnv(Webflow.env); 8399Webflow.define('ix2', module.exports = function () { 8400 return ix2; 8401}); 8402 8403/***/ }), 8404/* 126 */ 8405/***/ (function(module, exports, __webpack_require__) { 8406 8407"use strict"; 8408 8409 8410var _interopRequireWildcard = __webpack_require__(14); 8411 8412var _interopRequireDefault = __webpack_require__(0); 8413 8414Object.defineProperty(exports, "__esModule", { 8415 value: true 8416}); 8417exports.setEnv = setEnv; 8418exports.init = init; 8419exports.destroy = destroy; 8420exports.actions = exports.store = void 0; 8421 8422__webpack_require__(127); 8423 8424var _redux = __webpack_require__(78); 8425 8426var _IX2Reducer = _interopRequireDefault(__webpack_require__(168)); 8427 8428var _IX2VanillaEngine = __webpack_require__(114); 8429 8430var actions = _interopRequireWildcard(__webpack_require__(60)); 8431 8432exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects 8433 8434var store = (0, _redux.createStore)(_IX2Reducer["default"]); 8435exports.store = store; 8436 8437function setEnv(env) { 8438 if (env()) { 8439 (0, _IX2VanillaEngine.observeRequests)(store); 8440 } 8441} 8442 8443function init(rawData) { 8444 destroy(); 8445 (0, _IX2VanillaEngine.startEngine)({ 8446 store: store, 8447 rawData: rawData, 8448 allowEvents: true 8449 }); 8450} 8451 8452function destroy() { 8453 (0, _IX2VanillaEngine.stopEngine)(store); 8454} 8455 8456/***/ }), 8457/* 127 */ 8458/***/ (function(module, exports, __webpack_require__) { 8459 8460module.exports = __webpack_require__(128); 8461 8462 8463/***/ }), 8464/* 128 */ 8465/***/ (function(module, exports, __webpack_require__) { 8466 8467__webpack_require__(129); 8468var entryUnbind = __webpack_require__(154); 8469 8470module.exports = entryUnbind('Array', 'includes'); 8471 8472 8473/***/ }), 8474/* 129 */ 8475/***/ (function(module, exports, __webpack_require__) { 8476 8477"use strict"; 8478 8479var $ = __webpack_require__(130); 8480var $includes = __webpack_require__(76).includes; 8481var addToUnscopables = __webpack_require__(147); 8482 8483// `Array.prototype.includes` method 8484// https://tc39.github.io/ecma262/#sec-array.prototype.includes 8485$({ target: 'Array', proto: true }, { 8486 includes: function includes(el /* , fromIndex = 0 */) { 8487 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 8488 } 8489}); 8490 8491// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 8492addToUnscopables('includes'); 8493 8494 8495/***/ }), 8496/* 130 */ 8497/***/ (function(module, exports, __webpack_require__) { 8498 8499var global = __webpack_require__(3); 8500var getOwnPropertyDescriptor = __webpack_require__(66).f; 8501var hide = __webpack_require__(18); 8502var redefine = __webpack_require__(135); 8503var setGlobal = __webpack_require__(38); 8504var copyConstructorProperties = __webpack_require__(139); 8505var isForced = __webpack_require__(146); 8506 8507/* 8508 options.target - name of the target object 8509 options.global - target is the global object 8510 options.stat - export as static methods of target 8511 options.proto - export as prototype methods of target 8512 options.real - real prototype method for the `pure` version 8513 options.forced - export even if the native feature is available
vendor: 4,140 bytes, lines 8514-8639
8514 options.bind - bind methods to the target, required for the `pure` version 8515 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 8516 options.unsafe - use the simple assignment of property instead of delete + defineProperty 8517 options.sham - add a flag to not completely full polyfills 8518 options.enumerable - export as enumerable property 8519 options.noTargetGet - prevent calling a getter on target 8520*/ 8521module.exports = function (options, source) { 8522 var TARGET = options.target; 8523 var GLOBAL = options.global; 8524 var STATIC = options.stat; 8525 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 8526 if (GLOBAL) { 8527 target = global; 8528 } else if (STATIC) { 8529 target = global[TARGET] || setGlobal(TARGET, {}); 8530 } else { 8531 target = (global[TARGET] || {}).prototype; 8532 } 8533 if (target) for (key in source) { 8534 sourceProperty = source[key]; 8535 if (options.noTargetGet) { 8536 descriptor = getOwnPropertyDescriptor(target, key); 8537 targetProperty = descriptor && descriptor.value; 8538 } else targetProperty = target[key]; 8539 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 8540 // contained in target 8541 if (!FORCED && targetProperty !== undefined) { 8542 if (typeof sourceProperty === typeof targetProperty) continue; 8543 copyConstructorProperties(sourceProperty, targetProperty); 8544 } 8545 // add a flag to not completely full polyfills 8546 if (options.sham || (targetProperty && targetProperty.sham)) { 8547 hide(sourceProperty, 'sham', true); 8548 } 8549 // extend global 8550 redefine(target, key, sourceProperty, options); 8551 } 8552}; 8553 8554 8555/***/ }), 8556/* 131 */ 8557/***/ (function(module, exports, __webpack_require__) { 8558 8559"use strict"; 8560 8561var nativePropertyIsEnumerable = {}.propertyIsEnumerable; 8562var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 8563 8564// Nashorn ~ JDK8 bug 8565var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); 8566 8567// `Object.prototype.propertyIsEnumerable` method implementation 8568// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable 8569exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 8570 var descriptor = getOwnPropertyDescriptor(this, V); 8571 return !!descriptor && descriptor.enumerable; 8572} : nativePropertyIsEnumerable; 8573 8574 8575/***/ }), 8576/* 132 */ 8577/***/ (function(module, exports, __webpack_require__) { 8578 8579var fails = __webpack_require__(16); 8580var classof = __webpack_require__(133); 8581 8582var split = ''.split; 8583 8584// fallback for non-array-like ES3 and non-enumerable old V8 strings 8585module.exports = fails(function () { 8586 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 8587 // eslint-disable-next-line no-prototype-builtins 8588 return !Object('z').propertyIsEnumerable(0); 8589}) ? function (it) { 8590 return classof(it) == 'String' ? split.call(it, '') : Object(it); 8591} : Object; 8592 8593 8594/***/ }), 8595/* 133 */ 8596/***/ (function(module, exports) { 8597 8598var toString = {}.toString; 8599 8600module.exports = function (it) { 8601 return toString.call(it).slice(8, -1); 8602}; 8603 8604 8605/***/ }), 8606/* 134 */ 8607/***/ (function(module, exports) { 8608 8609// `RequireObjectCoercible` abstract operation 8610// https://tc39.github.io/ecma262/#sec-requireobjectcoercible 8611module.exports = function (it) { 8612 if (it == undefined) throw TypeError("Can't call method on " + it); 8613 return it; 8614}; 8615 8616 8617/***/ }), 8618/* 135 */ 8619/***/ (function(module, exports, __webpack_require__) { 8620 8621var global = __webpack_require__(3); 8622var shared = __webpack_require__(25); 8623var hide = __webpack_require__(18); 8624var has = __webpack_require__(17); 8625var setGlobal = __webpack_require__(38); 8626var nativeFunctionToString = __webpack_require__(71); 8627var InternalStateModule = __webpack_require__(137); 8628 8629var getInternalState = InternalStateModule.get; 8630var enforceInternalState = InternalStateModule.enforce; 8631var TEMPLATE = String(nativeFunctionToString).split('toString'); 8632 8633shared('inspectSource', function (it) { 8634 return nativeFunctionToString.call(it); 8635}); 8636 8637(module.exports = function (O, key, value, options) { 8638 var unsafe = options ? !!options.unsafe : false; 8639 var simple = options ? !!options.enumerable : false;
vendor: 10,923 bytes, lines 8640-9048
8640 var noTargetGet = options ? !!options.noTargetGet : false; 8641 if (typeof value == 'function') { 8642 if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key); 8643 enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); 8644 } 8645 if (O === global) { 8646 if (simple) O[key] = value; 8647 else setGlobal(key, value); 8648 return; 8649 } else if (!unsafe) { 8650 delete O[key]; 8651 } else if (!noTargetGet && O[key]) { 8652 simple = true; 8653 } 8654 if (simple) O[key] = value; 8655 else hide(O, key, value); 8656// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 8657})(Function.prototype, 'toString', function toString() { 8658 return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this); 8659}); 8660 8661 8662/***/ }), 8663/* 136 */ 8664/***/ (function(module, exports) { 8665 8666module.exports = false; 8667 8668 8669/***/ }), 8670/* 137 */ 8671/***/ (function(module, exports, __webpack_require__) { 8672 8673var NATIVE_WEAK_MAP = __webpack_require__(138); 8674var global = __webpack_require__(3); 8675var isObject = __webpack_require__(23); 8676var hide = __webpack_require__(18); 8677var objectHas = __webpack_require__(17); 8678var sharedKey = __webpack_require__(72); 8679var hiddenKeys = __webpack_require__(39); 8680 8681var WeakMap = global.WeakMap; 8682var set, get, has; 8683 8684var enforce = function (it) { 8685 return has(it) ? get(it) : set(it, {}); 8686}; 8687 8688var getterFor = function (TYPE) { 8689 return function (it) { 8690 var state; 8691 if (!isObject(it) || (state = get(it)).type !== TYPE) { 8692 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 8693 } return state; 8694 }; 8695}; 8696 8697if (NATIVE_WEAK_MAP) { 8698 var store = new WeakMap(); 8699 var wmget = store.get; 8700 var wmhas = store.has; 8701 var wmset = store.set; 8702 set = function (it, metadata) { 8703 wmset.call(store, it, metadata); 8704 return metadata; 8705 }; 8706 get = function (it) { 8707 return wmget.call(store, it) || {}; 8708 }; 8709 has = function (it) { 8710 return wmhas.call(store, it); 8711 }; 8712} else { 8713 var STATE = sharedKey('state'); 8714 hiddenKeys[STATE] = true; 8715 set = function (it, metadata) { 8716 hide(it, STATE, metadata); 8717 return metadata; 8718 }; 8719 get = function (it) { 8720 return objectHas(it, STATE) ? it[STATE] : {}; 8721 }; 8722 has = function (it) { 8723 return objectHas(it, STATE); 8724 }; 8725} 8726 8727module.exports = { 8728 set: set, 8729 get: get, 8730 has: has, 8731 enforce: enforce, 8732 getterFor: getterFor 8733}; 8734 8735 8736/***/ }), 8737/* 138 */ 8738/***/ (function(module, exports, __webpack_require__) { 8739 8740var global = __webpack_require__(3); 8741var nativeFunctionToString = __webpack_require__(71); 8742 8743var WeakMap = global.WeakMap; 8744 8745module.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap)); 8746 8747 8748/***/ }), 8749/* 139 */ 8750/***/ (function(module, exports, __webpack_require__) { 8751 8752var has = __webpack_require__(17); 8753var ownKeys = __webpack_require__(140); 8754var getOwnPropertyDescriptorModule = __webpack_require__(66); 8755var definePropertyModule = __webpack_require__(37); 8756 8757module.exports = function (target, source) { 8758 var keys = ownKeys(source); 8759 var defineProperty = definePropertyModule.f; 8760 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 8761 for (var i = 0; i < keys.length; i++) { 8762 var key = keys[i]; 8763 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 8764 } 8765}; 8766 8767 8768/***/ }), 8769/* 140 */ 8770/***/ (function(module, exports, __webpack_require__) { 8771 8772var getBuiltIn = __webpack_require__(74); 8773var getOwnPropertyNamesModule = __webpack_require__(142); 8774var getOwnPropertySymbolsModule = __webpack_require__(145); 8775var anObject = __webpack_require__(24); 8776 8777// all object keys, includes non-enumerable and symbols 8778module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 8779 var keys = getOwnPropertyNamesModule.f(anObject(it)); 8780 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 8781 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; 8782}; 8783 8784 8785/***/ }), 8786/* 141 */ 8787/***/ (function(module, exports, __webpack_require__) { 8788 8789module.exports = __webpack_require__(3); 8790 8791 8792/***/ }), 8793/* 142 */ 8794/***/ (function(module, exports, __webpack_require__) { 8795 8796var internalObjectKeys = __webpack_require__(75); 8797var enumBugKeys = __webpack_require__(40); 8798 8799var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 8800 8801// `Object.getOwnPropertyNames` method 8802// https://tc39.github.io/ecma262/#sec-object.getownpropertynames 8803exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 8804 return internalObjectKeys(O, hiddenKeys); 8805}; 8806 8807 8808/***/ }), 8809/* 143 */ 8810/***/ (function(module, exports, __webpack_require__) { 8811 8812var toInteger = __webpack_require__(77); 8813 8814var min = Math.min; 8815 8816// `ToLength` abstract operation 8817// https://tc39.github.io/ecma262/#sec-tolength 8818module.exports = function (argument) { 8819 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 8820}; 8821 8822 8823/***/ }), 8824/* 144 */ 8825/***/ (function(module, exports, __webpack_require__) { 8826 8827var toInteger = __webpack_require__(77); 8828 8829var max = Math.max; 8830var min = Math.min; 8831 8832// Helper for a popular repeating case of the spec: 8833// Let integer be ? ToInteger(index). 8834// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length). 8835module.exports = function (index, length) { 8836 var integer = toInteger(index); 8837 return integer < 0 ? max(integer + length, 0) : min(integer, length); 8838}; 8839 8840 8841/***/ }), 8842/* 145 */ 8843/***/ (function(module, exports) { 8844 8845exports.f = Object.getOwnPropertySymbols; 8846 8847 8848/***/ }), 8849/* 146 */ 8850/***/ (function(module, exports, __webpack_require__) { 8851 8852var fails = __webpack_require__(16); 8853 8854var replacement = /#|\.prototype\./; 8855 8856var isForced = function (feature, detection) { 8857 var value = data[normalize(feature)]; 8858 return value == POLYFILL ? true 8859 : value == NATIVE ? false 8860 : typeof detection == 'function' ? fails(detection) 8861 : !!detection; 8862}; 8863 8864var normalize = isForced.normalize = function (string) { 8865 return String(string).replace(replacement, '.').toLowerCase(); 8866}; 8867 8868var data = isForced.data = {}; 8869var NATIVE = isForced.NATIVE = 'N'; 8870var POLYFILL = isForced.POLYFILL = 'P'; 8871 8872module.exports = isForced; 8873 8874 8875/***/ }), 8876/* 147 */ 8877/***/ (function(module, exports, __webpack_require__) { 8878 8879var wellKnownSymbol = __webpack_require__(148); 8880var create = __webpack_require__(150); 8881var hide = __webpack_require__(18); 8882 8883var UNSCOPABLES = wellKnownSymbol('unscopables'); 8884var ArrayPrototype = Array.prototype; 8885 8886// Array.prototype[@@unscopables] 8887// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 8888if (ArrayPrototype[UNSCOPABLES] == undefined) { 8889 hide(ArrayPrototype, UNSCOPABLES, create(null)); 8890} 8891 8892// add a key to Array.prototype[@@unscopables] 8893module.exports = function (key) { 8894 ArrayPrototype[UNSCOPABLES][key] = true; 8895}; 8896 8897 8898/***/ }), 8899/* 148 */ 8900/***/ (function(module, exports, __webpack_require__) { 8901 8902var global = __webpack_require__(3); 8903var shared = __webpack_require__(25); 8904var uid = __webpack_require__(73); 8905var NATIVE_SYMBOL = __webpack_require__(149); 8906 8907var Symbol = global.Symbol; 8908var store = shared('wks'); 8909 8910module.exports = function (name) { 8911 return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name] 8912 || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 8913}; 8914 8915 8916/***/ }), 8917/* 149 */ 8918/***/ (function(module, exports, __webpack_require__) { 8919 8920var fails = __webpack_require__(16); 8921 8922module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 8923 // Chrome 38 Symbol has incorrect toString conversion 8924 // eslint-disable-next-line no-undef 8925 return !String(Symbol()); 8926}); 8927 8928 8929/***/ }), 8930/* 150 */ 8931/***/ (function(module, exports, __webpack_require__) { 8932 8933var anObject = __webpack_require__(24); 8934var defineProperties = __webpack_require__(151); 8935var enumBugKeys = __webpack_require__(40); 8936var hiddenKeys = __webpack_require__(39); 8937var html = __webpack_require__(153); 8938var documentCreateElement = __webpack_require__(70); 8939var sharedKey = __webpack_require__(72); 8940var IE_PROTO = sharedKey('IE_PROTO'); 8941 8942var PROTOTYPE = 'prototype'; 8943var Empty = function () { /* empty */ }; 8944 8945// Create object with fake `null` prototype: use iframe Object with cleared prototype 8946var createDict = function () { 8947 // Thrash, waste and sodomy: IE GC bug 8948 var iframe = documentCreateElement('iframe'); 8949 var length = enumBugKeys.length; 8950 var lt = '<'; 8951 var script = 'script'; 8952 var gt = '>'; 8953 var js = 'java' + script + ':'; 8954 var iframeDocument; 8955 iframe.style.display = 'none'; 8956 html.appendChild(iframe); 8957 iframe.src = String(js); 8958 iframeDocument = iframe.contentWindow.document; 8959 iframeDocument.open(); 8960 iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt); 8961 iframeDocument.close(); 8962 createDict = iframeDocument.F; 8963 while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; 8964 return createDict(); 8965}; 8966 8967// `Object.create` method 8968// https://tc39.github.io/ecma262/#sec-object.create 8969module.exports = Object.create || function create(O, Properties) { 8970 var result; 8971 if (O !== null) { 8972 Empty[PROTOTYPE] = anObject(O); 8973 result = new Empty(); 8974 Empty[PROTOTYPE] = null; 8975 // add "__proto__" for Object.getPrototypeOf polyfill 8976 result[IE_PROTO] = O; 8977 } else result = createDict(); 8978 return Properties === undefined ? result : defineProperties(result, Properties); 8979}; 8980 8981hiddenKeys[IE_PROTO] = true; 8982 8983 8984/***/ }), 8985/* 151 */ 8986/***/ (function(module, exports, __webpack_require__) { 8987 8988var DESCRIPTORS = __webpack_require__(15); 8989var definePropertyModule = __webpack_require__(37); 8990var anObject = __webpack_require__(24); 8991var objectKeys = __webpack_require__(152); 8992 8993// `Object.defineProperties` method 8994// https://tc39.github.io/ecma262/#sec-object.defineproperties 8995module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 8996 anObject(O); 8997 var keys = objectKeys(Properties); 8998 var length = keys.length; 8999 var index = 0; 9000 var key; 9001 while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); 9002 return O; 9003}; 9004 9005 9006/***/ }), 9007/* 152 */ 9008/***/ (function(module, exports, __webpack_require__) { 9009 9010var internalObjectKeys = __webpack_require__(75); 9011var enumBugKeys = __webpack_require__(40); 9012 9013// `Object.keys` method 9014// https://tc39.github.io/ecma262/#sec-object.keys 9015module.exports = Object.keys || function keys(O) { 9016 return internalObjectKeys(O, enumBugKeys); 9017}; 9018 9019 9020/***/ }), 9021/* 153 */ 9022/***/ (function(module, exports, __webpack_require__) { 9023 9024var getBuiltIn = __webpack_require__(74); 9025 9026module.exports = getBuiltIn('document', 'documentElement'); 9027 9028 9029/***/ }), 9030/* 154 */ 9031/***/ (function(module, exports, __webpack_require__) { 9032 9033var global = __webpack_require__(3); 9034var bind = __webpack_require__(155); 9035 9036var call = Function.call; 9037 9038module.exports = function (CONSTRUCTOR, METHOD, length) { 9039 return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); 9040}; 9041 9042 9043/***/ }), 9044/* 155 */ 9045/***/ (function(module, exports, __webpack_require__) { 9046 9047var aFunction = __webpack_require__(156); 9048
9049// optional / simple context binding 9050module.exports = function (fn, that, length) { 9051 aFunction(fn); 9052 if (that === undefined) return fn; 9053 switch (length) { 9054 case 0: return function () { 9055 return fn.call(that); 9056 }; 9057 case 1: return function (a) { 9058 return fn.call(that, a); 9059 }; 9060 case 2: return function (a, b) { 9061 return fn.call(that, a, b); 9062 }; 9063 case 3: return function (a, b, c) { 9064 return fn.call(that, a, b, c); 9065 }; 9066 } 9067 return function (/* ...args */) { 9068 return fn.apply(that, arguments); 9069 }; 9070}; 9071 9072 9073/***/ }), 9074/* 156 */ 9075/***/ (function(module, exports) { 9076 9077module.exports = function (it) { 9078 if (typeof it != 'function') { 9079 throw TypeError(String(it) + ' is not a function'); 9080 } return it; 9081}; 9082 9083 9084/***/ }), 9085/* 157 */ 9086/***/ (function(module, __webpack_exports__, __webpack_require__) { 9087 9088"use strict"; 9089__webpack_require__.r(__webpack_exports__); 9090/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); 9091/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(160); 9092/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(161); 9093 9094 9095 9096 9097/** `Object#toString` result references. */ 9098var nullTag = '[object Null]', 9099 undefinedTag = '[object Undefined]'; 9100 9101/** Built-in value references. */ 9102var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 9103 9104/** 9105 * The base implementation of `getTag` without fallbacks for buggy environments. 9106 * 9107 * @private 9108 * @param {*} value The value to query. 9109 * @returns {string} Returns the `toStringTag`. 9110 */ 9111function baseGetTag(value) { 9112 if (value == null) { 9113 return value === undefined ? undefinedTag : nullTag; 9114 } 9115 return (symToStringTag && symToStringTag in Object(value)) 9116 ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) 9117 : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); 9118} 9119 9120/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); 9121 9122 9123/***/ }), 9124/* 158 */ 9125/***/ (function(module, __webpack_exports__, __webpack_require__) { 9126 9127"use strict"; 9128__webpack_require__.r(__webpack_exports__); 9129/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(159); 9130 9131 9132/** Detect free variable `self`. */ 9133var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 9134 9135/** Used as a reference to the global object. */ 9136var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); 9137 9138/* harmony default export */ __webpack_exports__["default"] = (root); 9139 9140 9141/***/ }), 9142/* 159 */ 9143/***/ (function(module, __webpack_exports__, __webpack_require__) { 9144 9145"use strict"; 9146__webpack_require__.r(__webpack_exports__); 9147/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 9148var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 9149 9150/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); 9151 9152/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 9153 9154/***/ }), 9155/* 160 */ 9156/***/ (function(module, __webpack_exports__, __webpack_require__) { 9157 9158"use strict"; 9159__webpack_require__.r(__webpack_exports__); 9160/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); 9161 9162 9163/** Used for built-in method references. */ 9164var objectProto = Object.prototype; 9165 9166/** Used to check objects for own properties. */ 9167var hasOwnProperty = objectProto.hasOwnProperty; 9168 9169/** 9170 * Used to resolve the 9171 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 9172 * of values. 9173 */ 9174var nativeObjectToString = objectProto.toString; 9175 9176/** Built-in value references. */ 9177var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 9178 9179/** 9180 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 9181 * 9182 * @private 9183 * @param {*} value The value to query. 9184 * @returns {string} Returns the raw `toStringTag`. 9185 */ 9186function getRawTag(value) { 9187 var isOwn = hasOwnProperty.call(value, symToStringTag), 9188 tag = value[symToStringTag]; 9189 9190 try { 9191 value[symToStringTag] = undefined; 9192 var unmasked = true; 9193 } catch (e) {} 9194 9195 var result = nativeObjectToString.call(value); 9196 if (unmasked) { 9197 if (isOwn) { 9198 value[symToStringTag] = tag; 9199 } else { 9200 delete value[symToStringTag]; 9201 } 9202 } 9203 return result; 9204} 9205 9206/* harmony default export */ __webpack_exports__["default"] = (getRawTag); 9207 9208 9209/***/ }), 9210/* 161 */ 9211/***/ (function(module, __webpack_exports__, __webpack_require__) { 9212 9213"use strict"; 9214__webpack_require__.r(__webpack_exports__); 9215/** Used for built-in method references. */ 9216var objectProto = Object.prototype; 9217 9218/** 9219 * Used to resolve the 9220 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 9221 * of values. 9222 */ 9223var nativeObjectToString = objectProto.toString; 9224 9225/** 9226 * Converts `value` to a string using `Object.prototype.toString`. 9227 * 9228 * @private 9229 * @param {*} value The value to convert. 9230 * @returns {string} Returns the converted string. 9231 */ 9232function objectToString(value) { 9233 return nativeObjectToString.call(value); 9234} 9235 9236/* harmony default export */ __webpack_exports__["default"] = (objectToString); 9237 9238 9239/***/ }), 9240/* 162 */ 9241/***/ (function(module, __webpack_exports__, __webpack_require__) { 9242 9243"use strict"; 9244__webpack_require__.r(__webpack_exports__); 9245/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(163); 9246 9247
9248/** Built-in value references. */ 9249var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); 9250 9251/* harmony default export */ __webpack_exports__["default"] = (getPrototype); 9252 9253 9254/***/ }), 9255/* 163 */ 9256/***/ (function(module, __webpack_exports__, __webpack_require__) { 9257 9258"use strict"; 9259__webpack_require__.r(__webpack_exports__); 9260/** 9261 * Creates a unary function that invokes `func` with its argument transformed. 9262 * 9263 * @private 9264 * @param {Function} func The function to wrap. 9265 * @param {Function} transform The argument transform. 9266 * @returns {Function} Returns the new function. 9267 */ 9268function overArg(func, transform) { 9269 return function(arg) { 9270 return func(transform(arg)); 9271 }; 9272} 9273 9274/* harmony default export */ __webpack_exports__["default"] = (overArg); 9275 9276 9277/***/ }), 9278/* 164 */ 9279/***/ (function(module, __webpack_exports__, __webpack_require__) { 9280 9281"use strict"; 9282__webpack_require__.r(__webpack_exports__); 9283/** 9284 * Checks if `value` is object-like. A value is object-like if it's not `null` 9285 * and has a `typeof` result of "object". 9286 * 9287 * @static 9288 * @memberOf _ 9289 * @since 4.0.0 9290 * @category Lang 9291 * @param {*} value The value to check. 9292 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 9293 * @example 9294 * 9295 * _.isObjectLike({}); 9296 * // => true 9297 * 9298 * _.isObjectLike([1, 2, 3]); 9299 * // => true 9300 * 9301 * _.isObjectLike(_.noop); 9302 * // => false 9303 * 9304 * _.isObjectLike(null); 9305 * // => false 9306 */ 9307function isObjectLike(value) { 9308 return value != null && typeof value == 'object'; 9309} 9310 9311/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); 9312 9313 9314/***/ }), 9315/* 165 */ 9316/***/ (function(module, __webpack_exports__, __webpack_require__) { 9317 9318"use strict"; 9319__webpack_require__.r(__webpack_exports__); 9320/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); 9321/* global window */ 9322 9323 9324var root; 9325 9326if (typeof self !== 'undefined') { 9327 root = self; 9328} else if (typeof window !== 'undefined') { 9329 root = window; 9330} else if (typeof global !== 'undefined') { 9331 root = global; 9332} else if (true) { 9333 root = module; 9334} else {} 9335 9336var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); 9337/* harmony default export */ __webpack_exports__["default"] = (result); 9338 9339/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22), __webpack_require__(166)(module))) 9340 9341/***/ }), 9342/* 166 */ 9343/***/ (function(module, exports) { 9344 9345module.exports = function(originalModule) { 9346 if (!originalModule.webpackPolyfill) { 9347 var module = Object.create(originalModule); 9348 // module.parent = undefined by default 9349 if (!module.children) module.children = []; 9350 Object.defineProperty(module, "loaded", { 9351 enumerable: true, 9352 get: function() { 9353 return module.l; 9354 } 9355 }); 9356 Object.defineProperty(module, "id", { 9357 enumerable: true, 9358 get: function() { 9359 return module.i; 9360 } 9361 }); 9362 Object.defineProperty(module, "exports", { 9363 enumerable: true 9364 }); 9365 module.webpackPolyfill = 1; 9366 } 9367 return module; 9368}; 9369 9370 9371/***/ }), 9372/* 167 */ 9373/***/ (function(module, __webpack_exports__, __webpack_require__) { 9374 9375"use strict"; 9376__webpack_require__.r(__webpack_exports__); 9377/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); 9378function symbolObservablePonyfill(root) { 9379 var result; 9380 var Symbol = root.Symbol; 9381 9382 if (typeof Symbol === 'function') { 9383 if (Symbol.observable) { 9384 result = Symbol.observable; 9385 } else { 9386 result = Symbol('observable'); 9387 Symbol.observable = result; 9388 } 9389 } else { 9390 result = '@@observable'; 9391 } 9392 9393 return result; 9394}; 9395 9396 9397/***/ }), 9398/* 168 */ 9399/***/ (function(module, exports, __webpack_require__) { 9400 9401"use strict"; 9402 9403 9404Object.defineProperty(exports, "__esModule", { 9405 value: true 9406}); 9407exports["default"] = void 0; 9408 9409var _redux = __webpack_require__(78); 9410 9411var _IX2DataReducer = __webpack_require__(169); 9412 9413var _IX2RequestReducer = __webpack_require__(175); 9414 9415var _IX2SessionReducer = __webpack_require__(176); 9416 9417var _shared = __webpack_require__(10); 9418 9419var _IX2InstancesReducer = __webpack_require__(261); 9420 9421var _IX2ParametersReducer = __webpack_require__(262); 9422 9423var ixElements = _shared.IX2ElementsReducer.ixElements; 9424 9425var _default = (0, _redux.combineReducers)({ 9426 ixData: _IX2DataReducer.ixData, 9427 ixRequest: _IX2RequestReducer.ixRequest, 9428 ixSession: _IX2SessionReducer.ixSession,
9429 ixElements: ixElements, 9430 ixInstances: _IX2InstancesReducer.ixInstances, 9431 ixParameters: _IX2ParametersReducer.ixParameters 9432}); 9433 9434exports["default"] = _default; 9435 9436/***/ }), 9437/* 169 */ 9438/***/ (function(module, exports, __webpack_require__) { 9439 9440"use strict"; 9441 9442 9443Object.defineProperty(exports, "__esModule", { 9444 value: true 9445}); 9446exports.ixData = void 0; 9447 9448var _constants = __webpack_require__(2); 9449 9450var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; 9451 9452var ixData = function ixData() { 9453 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 9454 var action = arguments.length > 1 ? arguments[1] : undefined; 9455 9456 switch (action.type) { 9457 case IX2_RAW_DATA_IMPORTED: 9458 { 9459 return action.payload.ixData || Object.freeze({}); 9460 } 9461 9462 default: 9463 { 9464 return state; 9465 } 9466 } 9467}; 9468 9469exports.ixData = ixData; 9470 9471/***/ }), 9472/* 170 */ 9473/***/ (function(module, exports, __webpack_require__) { 9474 9475"use strict"; 9476 9477 9478Object.defineProperty(exports, "__esModule", { 9479 value: true 9480}); 9481exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; 9482/** 9483 * Event Type IDs 9484 */ 9485 9486var EventTypeConsts = { 9487 NAVBAR_OPEN: 'NAVBAR_OPEN', 9488 NAVBAR_CLOSE: 'NAVBAR_CLOSE', 9489 TAB_ACTIVE: 'TAB_ACTIVE', 9490 TAB_INACTIVE: 'TAB_INACTIVE', 9491 SLIDER_ACTIVE: 'SLIDER_ACTIVE', 9492 SLIDER_INACTIVE: 'SLIDER_INACTIVE', 9493 DROPDOWN_OPEN: 'DROPDOWN_OPEN', 9494 DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', 9495 MOUSE_CLICK: 'MOUSE_CLICK', 9496 MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', 9497 MOUSE_DOWN: 'MOUSE_DOWN', 9498 MOUSE_UP: 'MOUSE_UP', 9499 MOUSE_OVER: 'MOUSE_OVER', 9500 MOUSE_OUT: 'MOUSE_OUT', 9501 MOUSE_MOVE: 'MOUSE_MOVE', 9502 MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', 9503 SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', 9504 SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', 9505 SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', 9506 ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', 9507 ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', 9508 PAGE_START: 'PAGE_START', 9509 PAGE_FINISH: 'PAGE_FINISH', 9510 PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', 9511 PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', 9512 PAGE_SCROLL: 'PAGE_SCROLL' 9513}; 9514/** 9515 * Event Config Enums 9516 */ 9517 9518exports.EventTypeConsts = EventTypeConsts; 9519var EventAppliesTo = { 9520 ELEMENT: 'ELEMENT', 9521 CLASS: 'CLASS', 9522 PAGE: 'PAGE' 9523}; 9524exports.EventAppliesTo = EventAppliesTo; 9525var EventBasedOn = { 9526 ELEMENT: 'ELEMENT', 9527 VIEWPORT: 'VIEWPORT' 9528}; 9529exports.EventBasedOn = EventBasedOn; 9530var EventContinuousMouseAxes = { 9531 X_AXIS: 'X_AXIS', 9532 Y_AXIS: 'Y_AXIS' 9533}; 9534exports.EventContinuousMouseAxes = EventContinuousMouseAxes; 9535var EventLimitAffectedElements = { 9536 CHILDREN: 'CHILDREN', 9537 SIBLINGS: 'SIBLINGS', 9538 IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' 9539}; 9540/** 9541 * Quick Effect Enums 9542 */ 9543 9544exports.EventLimitAffectedElements = EventLimitAffectedElements; 9545var QuickEffectIds = { 9546 FADE_EFFECT: 'FADE_EFFECT', 9547 SLIDE_EFFECT: 'SLIDE_EFFECT', 9548 GROW_EFFECT: 'GROW_EFFECT', 9549 SHRINK_EFFECT: 'SHRINK_EFFECT', 9550 SPIN_EFFECT: 'SPIN_EFFECT', 9551 FLY_EFFECT: 'FLY_EFFECT', 9552 POP_EFFECT: 'POP_EFFECT', 9553 FLIP_EFFECT: 'FLIP_EFFECT', 9554 JIGGLE_EFFECT: 'JIGGLE_EFFECT', 9555 PULSE_EFFECT: 'PULSE_EFFECT', 9556 DROP_EFFECT: 'DROP_EFFECT', 9557 BLINK_EFFECT: 'BLINK_EFFECT', 9558 BOUNCE_EFFECT: 'BOUNCE_EFFECT', 9559 FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', 9560 FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', 9561 RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', 9562 JELLO_EFFECT: 'JELLO_EFFECT', 9563 GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', 9564 SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', 9565 PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' 9566}; 9567/** 9568 * Quick Effect Direction Enums 9569 */ 9570 9571exports.QuickEffectIds = QuickEffectIds; 9572var QuickEffectDirectionConsts = { 9573 LEFT: 'LEFT', 9574 RIGHT: 'RIGHT', 9575 BOTTOM: 'BOTTOM', 9576 TOP: 'TOP', 9577 BOTTOM_LEFT: 'BOTTOM_LEFT', 9578 BOTTOM_RIGHT: 'BOTTOM_RIGHT', 9579 TOP_RIGHT: 'TOP_RIGHT', 9580 TOP_LEFT: 'TOP_LEFT', 9581 CLOCKWISE: 'CLOCKWISE', 9582 COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' 9583}; 9584exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; 9585 9586/***/ }), 9587/* 171 */ 9588/***/ (function(module, exports, __webpack_require__) { 9589 9590"use strict"; 9591 9592 9593Object.defineProperty(exports, "__esModule", { 9594 value: true 9595}); 9596exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; 9597var ActionTypeConsts = { 9598 TRANSFORM_MOVE: 'TRANSFORM_MOVE', 9599 TRANSFORM_SCALE: 'TRANSFORM_SCALE', 9600 TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', 9601 TRANSFORM_SKEW: 'TRANSFORM_SKEW', 9602 STYLE_OPACITY: 'STYLE_OPACITY', 9603 STYLE_SIZE: 'STYLE_SIZE', 9604 STYLE_FILTER: 'STYLE_FILTER', 9605 STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', 9606 STYLE_BORDER: 'STYLE_BORDER', 9607 STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', 9608 PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', 9609 GENERAL_DISPLAY: 'GENERAL_DISPLAY', 9610 GENERAL_START_ACTION: 'GENERAL_START_ACTION', 9611 GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', 9612 // TODO: Clean these up below because they're not used at this time 9613 GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', 9614 GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', 9615 GENERAL_LOOP: 'GENERAL_LOOP', 9616 STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' 9617}; 9618exports.ActionTypeConsts = ActionTypeConsts; 9619var ActionAppliesTo = { 9620 ELEMENT: 'ELEMENT', 9621 ELEMENT_CLASS: 'ELEMENT_CLASS', 9622 TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' 9623}; 9624exports.ActionAppliesTo = ActionAppliesTo; 9625 9626/***/ }), 9627/* 172 */ 9628/***/ (function(module, exports, __webpack_require__) { 9629 9630"use strict"; 9631 9632 9633Object.defineProperty(exports, "__esModule", { 9634 value: true 9635}); 9636exports.InteractionTypeConsts = void 0; 9637var InteractionTypeConsts = { 9638 MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', 9639 MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', 9640 MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', 9641 SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', 9642 SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', 9643 MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', 9644 PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', 9645 PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', 9646 PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', 9647 NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', 9648 DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', 9649 ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', 9650 TAB_INTERACTION: 'TAB_INTERACTION', 9651 SLIDER_INTERACTION: 'SLIDER_INTERACTION' 9652}; 9653exports.InteractionTypeConsts = InteractionTypeConsts; 9654 9655/***/ }), 9656/* 173 */ 9657/***/ (function(module, exports, __webpack_require__) { 9658 9659"use strict"; 9660 9661 9662Object.defineProperty(exports, "__esModule", { 9663 value: true 9664});
9665exports.IX2_TEST_FRAME_RENDERED = exports.IX2_MEDIA_QUERIES_DEFINED = exports.IX2_VIEWPORT_WIDTH_CHANGED = exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = exports.IX2_ELEMENT_STATE_CHANGED = exports.IX2_INSTANCE_REMOVED = exports.IX2_INSTANCE_STARTED = exports.IX2_INSTANCE_ADDED = exports.IX2_PARAMETER_CHANGED = exports.IX2_ANIMATION_FRAME_CHANGED = exports.IX2_EVENT_STATE_CHANGED = exports.IX2_EVENT_LISTENER_ADDED = exports.IX2_CLEAR_REQUESTED = exports.IX2_STOP_REQUESTED = exports.IX2_PLAYBACK_REQUESTED = exports.IX2_PREVIEW_REQUESTED = exports.IX2_SESSION_STOPPED = exports.IX2_SESSION_STARTED = exports.IX2_SESSION_INITIALIZED = exports.IX2_RAW_DATA_IMPORTED = void 0; 9666var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; 9667exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; 9668var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; 9669exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; 9670var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; 9671exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; 9672var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; 9673exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; 9674var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; 9675exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; 9676var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; 9677exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; 9678var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; 9679exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; 9680var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; 9681exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; 9682var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; 9683exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; 9684var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; 9685exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; 9686var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; 9687exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; 9688var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; 9689exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; 9690var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; 9691exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; 9692var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; 9693exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; 9694var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; 9695exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; 9696var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; 9697exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; 9698var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; 9699exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; 9700var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; 9701exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; 9702var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; 9703exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; 9704var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; 9705exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; 9706 9707/***/ }), 9708/* 174 */ 9709/***/ (function(module, exports, __webpack_require__) { 9710 9711"use strict"; 9712 9713 9714Object.defineProperty(exports, "__esModule", { 9715 value: true 9716}); 9717exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exp
9717orts.ABSTRACT_NODE = exports.PLAIN_OBJECT = exports.HTML_ELEMENT = exports.PRESERVE_3D = exports.PARENT = exports.SIBLINGS = exports.IMMEDIATE_CHILDREN = exports.CHILDREN = exports.BAR_DELIMITER = exports.COLON_DELIMITER = exports.COMMA_DELIMITER = exports.AUTO = exports.WILL_CHANGE = exports.FLEX = exports.DISPLAY = exports.COLOR = exports.BORDER_COLOR = exports.BACKGROUND = exports.BACKGROUND_COLOR = exports.HEIGHT = exports.WIDTH = exports.FILTER = exports.OPACITY = exports.SKEW_Y = exports.SKEW_X = exports.SKEW = exports.ROTATE_Z = exports.ROTATE_Y = exports.ROTATE_X = exports.SCALE_3D = exports.SCALE_Z = exports.SCALE_Y = exports.SCALE_X = exports.TRANSLATE_3D = exports.TRANSLATE_Z = exports.TRANSLATE_Y = exports.TRANSLATE_X = exports.TRANSFORM = exports.CONFIG_UNIT = exports.CONFIG_Z_UNIT = exports.CONFIG_Y_UNIT = exports.CONFIG_X_UNIT = exports.CONFIG_VALUE = exports.CONFIG_Z_VALUE = exports.CONFIG_Y_VALUE = exports.CONFIG_X_VALUE = exports.BOUNDARY_SELECTOR = exports.W_MOD_IX = exports.W_MOD_JS = exports.WF_PAGE = exports.IX2_ID_DELIMITER = void 0; 9718var IX2_ID_DELIMITER = '|'; 9719exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; 9720var WF_PAGE = 'data-wf-page'; 9721exports.WF_PAGE = WF_PAGE; 9722var W_MOD_JS = 'w-mod-js'; 9723exports.W_MOD_JS = W_MOD_JS; 9724var W_MOD_IX = 'w-mod-ix'; 9725exports.W_MOD_IX = W_MOD_IX; 9726var BOUNDARY_SELECTOR = '.w-dyn-item'; 9727exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; 9728var CONFIG_X_VALUE = 'xValue'; 9729exports.CONFIG_X_VALUE = CONFIG_X_VALUE; 9730var CONFIG_Y_VALUE = 'yValue'; 9731exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; 9732var CONFIG_Z_VALUE = 'zValue'; 9733exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; 9734var CONFIG_VALUE = 'value'; 9735exports.CONFIG_VALUE = CONFIG_VALUE; 9736var CONFIG_X_UNIT = 'xUnit'; 9737exports.CONFIG_X_UNIT = CONFIG_X_UNIT; 9738var CONFIG_Y_UNIT = 'yUnit'; 9739exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; 9740var CONFIG_Z_UNIT = 'zUnit'; 9741exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; 9742var CONFIG_UNIT = 'unit'; 9743exports.CONFIG_UNIT = CONFIG_UNIT; 9744var TRANSFORM = 'transform'; 9745exports.TRANSFORM = TRANSFORM; 9746var TRANSLATE_X = 'translateX'; 9747exports.TRANSLATE_X = TRANSLATE_X; 9748var TRANSLATE_Y = 'translateY'; 9749exports.TRANSLATE_Y = TRANSLATE_Y; 9750var TRANSLATE_Z = 'translateZ'; 9751exports.TRANSLATE_Z = TRANSLATE_Z; 9752var TRANSLATE_3D = 'translate3d'; 9753exports.TRANSLATE_3D = TRANSLATE_3D; 9754var SCALE_X = 'scaleX'; 9755exports.SCALE_X = SCALE_X; 9756var SCALE_Y = 'scaleY'; 9757exports.SCALE_Y = SCALE_Y; 9758var SCALE_Z = 'scaleZ'; 9759exports.SCALE_Z = SCALE_Z; 9760var SCALE_3D = 'scale3d'; 9761exports.SCALE_3D = SCALE_3D; 9762var ROTATE_X = 'rotateX'; 9763exports.ROTATE_X = ROTATE_X; 9764var ROTATE_Y = 'rotateY'; 9765exports.ROTATE_Y = ROTATE_Y; 9766var ROTATE_Z = 'rotateZ'; 9767exports.ROTATE_Z = ROTATE_Z; 9768var SKEW = 'skew'; 9769exports.SKEW = SKEW; 9770var SKEW_X = 'skewX'; 9771exports.SKEW_X = SKEW_X; 9772var SKEW_Y = 'skewY'; 9773exports.SKEW_Y = SKEW_Y; 9774var OPACITY = 'opacity'; 9775exports.OPACITY = OPACITY; 9776var FILTER = 'filter'; 9777exports.FILTER = FILTER; 9778var WIDTH = 'width'; 9779exports.WIDTH = WIDTH; 9780var HEIGHT = 'height'; 9781exports.HEIGHT = HEIGHT; 9782var BACKGROUND_COLOR = 'backgroundColor'; 9783exports.BACKGROUND_COLOR = BACKGROUND_COLOR; 9784var BACKGROUND = 'background'; 9785exports.BACKGROUND = BACKGROUND; 9786var BORDER_COLOR = 'borderColor'; 9787exports.BORDER_COLOR = BORDER_COLOR; 9788var COLOR = 'color'; 9789exports.COLOR = COLOR; 9790var DISPLAY = 'display'; 9791exports.DISPLAY = DISPLAY; 9792var FLEX = 'flex'; 9793exports.FLEX = FLEX; 9794var WILL_CHANGE = 'willChange'; 9795exports.WILL_CHANGE = WILL_CHANGE; 9796var AUTO = 'AUTO'; 9797exports.AUTO = AUTO; 9798var COMMA_DELIMITER = ','; 9799exports.COMMA_DELIMITER = COMMA_DELIMITER; 9800var COLON_DELIMITER = ':'; 9801exports.COLON_DELIMITER = COLON_DELIMITER; 9802var BAR_DELIMITER = '|'; 9803exports.BAR_DELIMITER = BAR_DELIMITER; 9804var CHILDREN = 'CHILDREN'; 9805exports.CHILDREN = CHILDREN; 9806var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; 9807exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; 9808var SIBLINGS = 'SIBLINGS'; 9809exports.SIBLINGS = SIBLINGS; 9810var PARENT = 'PARENT'; 9811exports.PARENT = PARENT; 9812var PRESERVE_3D = 'preserve-3d'; 9813exports.PRESERVE_3D = PRESERVE_3D; 9814var HTML_ELEMENT = 'HTML_ELEMENT'; 9815exports.HTML_ELEMENT = HTML_ELEMENT; 9816var PLAIN_OBJECT = 'PLAIN_OBJECT'; 9817exports.PLAIN_OBJECT = PLAIN_OBJECT; 9818var ABSTRACT_NODE = 'ABSTRACT_NODE'; 9819exports.ABSTRACT_NODE = ABSTRACT_NODE; 9820var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; 9821exports.RENDER_TRANSFORM = RENDER_TRANSFORM; 9822var RENDER_GENERAL = 'RENDER_GENERAL'; 9823exports.RENDER_GENERAL = RENDER_GENERAL; 9824var RENDER_STYLE = 'RENDER_STYLE'; 9825exports.RENDER_STYLE = RENDER_STYLE; 9826var RENDER_PLUGIN = 'RENDER_PLUGIN'; 9827exports.RENDER_PLUGIN = RENDER_PLUGIN; 9828 9829/***/ }), 9830/* 175 */ 9831/***/ (function(module, exports, __webpack_require__) { 9832 9833"use strict"; 9834 9835 9836var _interopRequireDefault2 = __webpack_require__(0); 9837 9838var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 9839
9840var _Object$create; 9841 9842var _interopRequireDefault = __webpack_require__(0); 9843 9844Object.defineProperty(exports, "__esModule", { 9845 value: true 9846}); 9847exports.ixRequest = void 0; 9848 9849var _extends2 = _interopRequireDefault(__webpack_require__(27)); 9850 9851var _constants = __webpack_require__(2); 9852 9853var _timm = __webpack_require__(19); 9854 9855var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 9856 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 9857 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 9858 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 9859 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; 9860var initialState = { 9861 preview: {}, 9862 playback: {}, 9863 stop: {}, 9864 clear: {} 9865}; 9866var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { 9867 value: 'preview' 9868}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { 9869 value: 'playback' 9870}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { 9871 value: 'stop' 9872}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { 9873 value: 'clear' 9874}), _Object$create)); 9875 9876var ixRequest = function ixRequest() { 9877 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 9878 var action = arguments.length > 1 ? arguments[1] : undefined; 9879 9880 if (action.type in stateKeys) { 9881 var key = [stateKeys[action.type]]; 9882 return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); 9883 } 9884 9885 return state; 9886}; 9887 9888exports.ixRequest = ixRequest; 9889 9890/***/ }), 9891/* 176 */ 9892/***/ (function(module, exports, __webpack_require__) { 9893 9894"use strict"; 9895 9896 9897Object.defineProperty(exports, "__esModule", { 9898 value: true 9899}); 9900exports.ixSession = void 0; 9901 9902var _constants = __webpack_require__(2); 9903 9904var _timm = __webpack_require__(19); 9905 9906var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 9907 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 9908 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 9909 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 9910 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 9911 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 9912 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 9913 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 9914 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 9915 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 9916 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 9917var initialState = { 9918 active: false, 9919 tick: 0, 9920 eventListeners: [], 9921 eventState: {}, 9922 playbackState: {}, 9923 viewportWidth: 0, 9924 mediaQueryKey: null, 9925 hasBoundaryNodes: false, 9926 hasDefinedMediaQueries: false 9927}; 9928var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe 9929 9930var ixSession = function ixSession() { 9931 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 9932 var action = arguments.length > 1 ? arguments[1] : undefined; 9933 9934 switch (action.type) { 9935 case IX2_SESSION_INITIALIZED: 9936 { 9937 var hasBoundaryNodes = action.payload.hasBoundaryNodes; 9938 return (0, _timm.set)(state, 'hasBoundaryNodes', hasBoundaryNodes); 9939 } 9940 9941 case IX2_SESSION_STARTED: 9942 { 9943 return (0, _timm.set)(state, 'active', true); 9944 } 9945 9946 case IX2_TEST_FRAME_RENDERED: 9947 { 9948 var _action$payload$step = action.payload.step, 9949 step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; 9950 return (0, _timm.set)(state, 'tick', state.tick + step); 9951 } 9952 9953 case IX2_SESSION_STOPPED: 9954 { 9955 return initialState; 9956 } 9957 9958 case IX2_ANIMATION_FRAME_CHANGED: 9959 { 9960 var now = action.payload.now; 9961 return (0, _timm.set)(state, 'tick', now); 9962 } 9963 9964 case IX2_EVENT_LISTENER_ADDED: 9965 { 9966 var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); 9967 return (0, _timm.set)(state, 'eventListeners', eventListeners); 9968 } 9969 9970 case IX2_EVENT_STATE_CHANGED: 9971 { 9972 var _action$payload = action.payload, 9973 stateKey = _action$payload.stateKey, 9974 newState = _action$payload.newState; 9975 return (0, _timm.setIn)(state, ['eventState', stateKey], newState); 9976 } 9977 9978 case IX2_ACTION_LIST_PLAYBACK_CHANGED: 9979 { 9980 var _action$payload2 = action.payload, 9981 actionListId = _action$payload2.actionListId, 9982 isPlaying = _action$payload2.isPlaying; 9983 return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); 9984 } 9985 9986 case IX2_VIEWPORT_WIDTH_CHANGED: 9987 { 9988 var _action$payload3 = action.payload, 9989 width = _action$payload3.width, 9990 mediaQueries = _action$payload3.mediaQueries; 9991 var mediaQueryCount = mediaQueries.length; 9992 var mediaQueryKey = null; 9993 9994 for (var i = 0; i < mediaQueryCount; i++) { 9995 var _mediaQueries$i = mediaQueries[i], 9996 key = _mediaQueries$i.key, 9997 min = _mediaQueries$i.min, 9998 max = _mediaQueries$i.max; 9999 10000 if (width >= min && width <= max) { 10001 mediaQueryKey = key; 10002 break; 10003 } 10004 } 10005 10006 return (0, _timm.merge)(state, { 10007 viewportWidth: width, 10008 mediaQueryKey: mediaQueryKey 10009 }); 10010 } 10011 10012 case IX2_MEDIA_QUERIES_DEFINED: 10013 { 10014 return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); 10015 } 10016 10017 default: 10018 { 10019 return state; 10020 } 10021 } 10022}; 10023 10024exports.ixSession = ixSession; 10025 10026/***/ }), 10027/* 177 */ 10028/***/ (function(module, exports, __webpack_require__) { 10029 10030var baseIsMatch = __webpack_require__(178), 10031 getMatchData = __webpack_require__(230), 10032 matchesStrictComparable = __webpack_require__(101); 10033 10034/** 10035 * The base implementation of `_.matches` which doesn't clone `source`. 10036 * 10037 * @private 10038 * @param {Object} source The object of property values to match. 10039 * @returns {Function} Returns the new spec function. 10040 */ 10041function baseMatches(source) { 10042 var matchData = getMatchData(source); 10043 if (matchData.length == 1 && matchData[0][2]) { 10044 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 10045 } 10046 return function(object) { 10047 return object === source || baseIsMatch(object, source, matchData); 10048 }; 10049} 10050 10051module.exports = baseMatches; 10052 10053 10054/***/ }), 10055/* 178 */ 10056/***/ (function(module, exports, __webpack_require__) { 10057 10058var Stack = __webpack_require__(87), 10059 baseIsEqual = __webpack_require__(91); 10060 10061/** Used to compose bitmasks for value comparisons. */ 10062var COMPARE_PARTIAL_FLAG = 1, 10063 COMPARE_UNORDERED_FLAG = 2; 10064 10065/** 10066 * The base implementation of `_.isMatch` without support for iteratee shorthands. 10067 * 10068 * @private 10069 * @param {Object} object The object to inspect. 10070 * @param {Object} source The object of property values to match. 10071 * @param {Array} matchData The property names, values, and compare flags to match. 10072 * @param {Function} [customizer] The function to customize comparisons. 10073 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 10074 */ 10075function baseIsMatch(object, source, matchData, customizer) { 10076 var index = matchData.length, 10077 length = index, 10078 noCustomizer = !customizer; 10079 10080 if (object == null) { 10081 return !length; 10082 } 10083 object = Object(object); 10084 while (index--) { 10085 var data = matchData[index]; 10086 if ((noCustomizer && data[2]) 10087 ? data[1] !== object[data[0]] 10088 : !(data[0] in object) 10089 ) { 10090 return false;
vendor: 4,246 bytes, lines 10091-10307
10091 } 10092 } 10093 while (++index < length) { 10094 data = matchData[index]; 10095 var key = data[0], 10096 objValue = object[key], 10097 srcValue = data[1]; 10098 10099 if (noCustomizer && data[2]) { 10100 if (objValue === undefined && !(key in object)) { 10101 return false; 10102 } 10103 } else { 10104 var stack = new Stack; 10105 if (customizer) { 10106 var result = customizer(objValue, srcValue, key, object, source, stack); 10107 } 10108 if (!(result === undefined 10109 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 10110 : result 10111 )) { 10112 return false; 10113 } 10114 } 10115 } 10116 return true; 10117} 10118 10119module.exports = baseIsMatch; 10120 10121 10122/***/ }), 10123/* 179 */ 10124/***/ (function(module, exports) { 10125 10126/** 10127 * Removes all key-value entries from the list cache. 10128 * 10129 * @private 10130 * @name clear 10131 * @memberOf ListCache 10132 */ 10133function listCacheClear() { 10134 this.__data__ = []; 10135 this.size = 0; 10136} 10137 10138module.exports = listCacheClear; 10139 10140 10141/***/ }), 10142/* 180 */ 10143/***/ (function(module, exports, __webpack_require__) { 10144 10145var assocIndexOf = __webpack_require__(29); 10146 10147/** Used for built-in method references. */ 10148var arrayProto = Array.prototype; 10149 10150/** Built-in value references. */ 10151var splice = arrayProto.splice; 10152 10153/** 10154 * Removes `key` and its value from the list cache. 10155 * 10156 * @private 10157 * @name delete 10158 * @memberOf ListCache 10159 * @param {string} key The key of the value to remove. 10160 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10161 */ 10162function listCacheDelete(key) { 10163 var data = this.__data__, 10164 index = assocIndexOf(data, key); 10165 10166 if (index < 0) { 10167 return false; 10168 } 10169 var lastIndex = data.length - 1; 10170 if (index == lastIndex) { 10171 data.pop(); 10172 } else { 10173 splice.call(data, index, 1); 10174 } 10175 --this.size; 10176 return true; 10177} 10178 10179module.exports = listCacheDelete; 10180 10181 10182/***/ }), 10183/* 181 */ 10184/***/ (function(module, exports, __webpack_require__) { 10185 10186var assocIndexOf = __webpack_require__(29); 10187 10188/** 10189 * Gets the list cache value for `key`. 10190 * 10191 * @private 10192 * @name get 10193 * @memberOf ListCache 10194 * @param {string} key The key of the value to get. 10195 * @returns {*} Returns the entry value. 10196 */ 10197function listCacheGet(key) { 10198 var data = this.__data__, 10199 index = assocIndexOf(data, key); 10200 10201 return index < 0 ? undefined : data[index][1]; 10202} 10203 10204module.exports = listCacheGet; 10205 10206 10207/***/ }), 10208/* 182 */ 10209/***/ (function(module, exports, __webpack_require__) { 10210 10211var assocIndexOf = __webpack_require__(29); 10212 10213/** 10214 * Checks if a list cache value for `key` exists. 10215 * 10216 * @private 10217 * @name has 10218 * @memberOf ListCache 10219 * @param {string} key The key of the entry to check. 10220 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10221 */ 10222function listCacheHas(key) { 10223 return assocIndexOf(this.__data__, key) > -1; 10224} 10225 10226module.exports = listCacheHas; 10227 10228 10229/***/ }), 10230/* 183 */ 10231/***/ (function(module, exports, __webpack_require__) { 10232 10233var assocIndexOf = __webpack_require__(29); 10234 10235/** 10236 * Sets the list cache `key` to `value`. 10237 * 10238 * @private 10239 * @name set 10240 * @memberOf ListCache 10241 * @param {string} key The key of the value to set. 10242 * @param {*} value The value to set. 10243 * @returns {Object} Returns the list cache instance. 10244 */ 10245function listCacheSet(key, value) { 10246 var data = this.__data__, 10247 index = assocIndexOf(data, key); 10248 10249 if (index < 0) { 10250 ++this.size; 10251 data.push([key, value]); 10252 } else { 10253 data[index][1] = value; 10254 } 10255 return this; 10256} 10257 10258module.exports = listCacheSet; 10259 10260 10261/***/ }), 10262/* 184 */ 10263/***/ (function(module, exports, __webpack_require__) { 10264 10265var ListCache = __webpack_require__(28); 10266 10267/** 10268 * Removes all key-value entries from the stack. 10269 * 10270 * @private 10271 * @name clear 10272 * @memberOf Stack 10273 */ 10274function stackClear() { 10275 this.__data__ = new ListCache; 10276 this.size = 0; 10277} 10278 10279module.exports = stackClear; 10280 10281 10282/***/ }), 10283/* 185 */ 10284/***/ (function(module, exports) { 10285 10286/** 10287 * Removes `key` and its value from the stack. 10288 * 10289 * @private 10290 * @name delete 10291 * @memberOf Stack 10292 * @param {string} key The key of the value to remove. 10293 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10294 */ 10295function stackDelete(key) { 10296 var data = this.__data__, 10297 result = data['delete'](key); 10298 10299 this.size = data.size; 10300 return result; 10301} 10302 10303module.exports = stackDelete; 10304 10305 10306/***/ }), 10307/* 186 */
vendor: 11,191 bytes, lines 10308-10804
10308/***/ (function(module, exports) { 10309 10310/** 10311 * Gets the stack value for `key`. 10312 * 10313 * @private 10314 * @name get 10315 * @memberOf Stack 10316 * @param {string} key The key of the value to get. 10317 * @returns {*} Returns the entry value. 10318 */ 10319function stackGet(key) { 10320 return this.__data__.get(key); 10321} 10322 10323module.exports = stackGet; 10324 10325 10326/***/ }), 10327/* 187 */ 10328/***/ (function(module, exports) { 10329 10330/** 10331 * Checks if a stack value for `key` exists. 10332 * 10333 * @private 10334 * @name has 10335 * @memberOf Stack 10336 * @param {string} key The key of the entry to check. 10337 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10338 */ 10339function stackHas(key) { 10340 return this.__data__.has(key); 10341} 10342 10343module.exports = stackHas; 10344 10345 10346/***/ }), 10347/* 188 */ 10348/***/ (function(module, exports, __webpack_require__) { 10349 10350var ListCache = __webpack_require__(28), 10351 Map = __webpack_require__(45), 10352 MapCache = __webpack_require__(46); 10353 10354/** Used as the size to enable large array optimizations. */ 10355var LARGE_ARRAY_SIZE = 200; 10356 10357/** 10358 * Sets the stack `key` to `value`. 10359 * 10360 * @private 10361 * @name set 10362 * @memberOf Stack 10363 * @param {string} key The key of the value to set. 10364 * @param {*} value The value to set. 10365 * @returns {Object} Returns the stack cache instance. 10366 */ 10367function stackSet(key, value) { 10368 var data = this.__data__; 10369 if (data instanceof ListCache) { 10370 var pairs = data.__data__; 10371 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 10372 pairs.push([key, value]); 10373 this.size = ++data.size; 10374 return this; 10375 } 10376 data = this.__data__ = new MapCache(pairs); 10377 } 10378 data.set(key, value); 10379 this.size = data.size; 10380 return this; 10381} 10382 10383module.exports = stackSet; 10384 10385 10386/***/ }), 10387/* 189 */ 10388/***/ (function(module, exports, __webpack_require__) { 10389 10390var isFunction = __webpack_require__(88), 10391 isMasked = __webpack_require__(192), 10392 isObject = __webpack_require__(5), 10393 toSource = __webpack_require__(90); 10394 10395/** 10396 * Used to match `RegExp` 10397 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 10398 */ 10399var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 10400 10401/** Used to detect host constructors (Safari). */ 10402var reIsHostCtor = /^\[object .+?Constructor\]$/; 10403 10404/** Used for built-in method references. */ 10405var funcProto = Function.prototype, 10406 objectProto = Object.prototype; 10407 10408/** Used to resolve the decompiled source of functions. */ 10409var funcToString = funcProto.toString; 10410 10411/** Used to check objects for own properties. */ 10412var hasOwnProperty = objectProto.hasOwnProperty; 10413 10414/** Used to detect if a method is native. */ 10415var reIsNative = RegExp('^' + 10416 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 10417 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 10418); 10419 10420/** 10421 * The base implementation of `_.isNative` without bad shim checks. 10422 * 10423 * @private 10424 * @param {*} value The value to check. 10425 * @returns {boolean} Returns `true` if `value` is a native function, 10426 * else `false`. 10427 */ 10428function baseIsNative(value) { 10429 if (!isObject(value) || isMasked(value)) { 10430 return false; 10431 } 10432 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 10433 return pattern.test(toSource(value)); 10434} 10435 10436module.exports = baseIsNative; 10437 10438 10439/***/ }), 10440/* 190 */ 10441/***/ (function(module, exports, __webpack_require__) { 10442 10443var Symbol = __webpack_require__(20); 10444 10445/** Used for built-in method references. */ 10446var objectProto = Object.prototype; 10447 10448/** Used to check objects for own properties. */ 10449var hasOwnProperty = objectProto.hasOwnProperty; 10450 10451/** 10452 * Used to resolve the 10453 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10454 * of values. 10455 */ 10456var nativeObjectToString = objectProto.toString; 10457 10458/** Built-in value references. */ 10459var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 10460 10461/** 10462 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 10463 * 10464 * @private 10465 * @param {*} value The value to query. 10466 * @returns {string} Returns the raw `toStringTag`. 10467 */ 10468function getRawTag(value) { 10469 var isOwn = hasOwnProperty.call(value, symToStringTag), 10470 tag = value[symToStringTag]; 10471 10472 try { 10473 value[symToStringTag] = undefined; 10474 var unmasked = true; 10475 } catch (e) {} 10476 10477 var result = nativeObjectToString.call(value); 10478 if (unmasked) { 10479 if (isOwn) { 10480 value[symToStringTag] = tag; 10481 } else { 10482 delete value[symToStringTag]; 10483 } 10484 } 10485 return result; 10486} 10487 10488module.exports = getRawTag; 10489 10490 10491/***/ }), 10492/* 191 */ 10493/***/ (function(module, exports) { 10494 10495/** Used for built-in method references. */ 10496var objectProto = Object.prototype; 10497 10498/** 10499 * Used to resolve the 10500 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10501 * of values. 10502 */ 10503var nativeObjectToString = objectProto.toString; 10504 10505/** 10506 * Converts `value` to a string using `Object.prototype.toString`. 10507 * 10508 * @private 10509 * @param {*} value The value to convert. 10510 * @returns {string} Returns the converted string. 10511 */ 10512function objectToString(value) { 10513 return nativeObjectToString.call(value); 10514} 10515 10516module.exports = objectToString; 10517 10518 10519/***/ }), 10520/* 192 */ 10521/***/ (function(module, exports, __webpack_require__) { 10522 10523var coreJsData = __webpack_require__(193); 10524 10525/** Used to detect methods masquerading as native. */ 10526var maskSrcKey = (function() { 10527 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 10528 return uid ? ('Symbol(src)_1.' + uid) : ''; 10529}()); 10530 10531/** 10532 * Checks if `func` has its source masked. 10533 * 10534 * @private 10535 * @param {Function} func The function to check. 10536 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 10537 */ 10538function isMasked(func) { 10539 return !!maskSrcKey && (maskSrcKey in func); 10540} 10541 10542module.exports = isMasked; 10543 10544 10545/***/ }), 10546/* 193 */ 10547/***/ (function(module, exports, __webpack_require__) { 10548 10549var root = __webpack_require__(4); 10550 10551/** Used to detect overreaching core-js shims. */ 10552var coreJsData = root['__core-js_shared__']; 10553 10554module.exports = coreJsData; 10555 10556 10557/***/ }), 10558/* 194 */ 10559/***/ (function(module, exports) { 10560 10561/** 10562 * Gets the value at `key` of `object`. 10563 * 10564 * @private 10565 * @param {Object} [object] The object to query. 10566 * @param {string} key The key of the property to get. 10567 * @returns {*} Returns the property value. 10568 */ 10569function getValue(object, key) { 10570 return object == null ? undefined : object[key]; 10571} 10572 10573module.exports = getValue; 10574 10575 10576/***/ }), 10577/* 195 */ 10578/***/ (function(module, exports, __webpack_require__) { 10579 10580var Hash = __webpack_require__(196), 10581 ListCache = __webpack_require__(28), 10582 Map = __webpack_require__(45); 10583 10584/** 10585 * Removes all key-value entries from the map. 10586 * 10587 * @private 10588 * @name clear 10589 * @memberOf MapCache 10590 */ 10591function mapCacheClear() { 10592 this.size = 0; 10593 this.__data__ = { 10594 'hash': new Hash, 10595 'map': new (Map || ListCache), 10596 'string': new Hash 10597 }; 10598} 10599 10600module.exports = mapCacheClear; 10601 10602 10603/***/ }), 10604/* 196 */ 10605/***/ (function(module, exports, __webpack_require__) { 10606 10607var hashClear = __webpack_require__(197), 10608 hashDelete = __webpack_require__(198), 10609 hashGet = __webpack_require__(199), 10610 hashHas = __webpack_require__(200), 10611 hashSet = __webpack_require__(201); 10612 10613/** 10614 * Creates a hash object. 10615 * 10616 * @private 10617 * @constructor 10618 * @param {Array} [entries] The key-value pairs to cache. 10619 */ 10620function Hash(entries) { 10621 var index = -1, 10622 length = entries == null ? 0 : entries.length; 10623 10624 this.clear(); 10625 while (++index < length) { 10626 var entry = entries[index]; 10627 this.set(entry[0], entry[1]); 10628 } 10629} 10630 10631// Add methods to `Hash`. 10632Hash.prototype.clear = hashClear; 10633Hash.prototype['delete'] = hashDelete; 10634Hash.prototype.get = hashGet; 10635Hash.prototype.has = hashHas; 10636Hash.prototype.set = hashSet; 10637 10638module.exports = Hash; 10639 10640 10641/***/ }), 10642/* 197 */ 10643/***/ (function(module, exports, __webpack_require__) { 10644 10645var nativeCreate = __webpack_require__(30); 10646 10647/** 10648 * Removes all key-value entries from the hash. 10649 * 10650 * @private 10651 * @name clear 10652 * @memberOf Hash 10653 */ 10654function hashClear() { 10655 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 10656 this.size = 0; 10657} 10658 10659module.exports = hashClear; 10660 10661 10662/***/ }), 10663/* 198 */ 10664/***/ (function(module, exports) { 10665 10666/** 10667 * Removes `key` and its value from the hash. 10668 * 10669 * @private 10670 * @name delete 10671 * @memberOf Hash 10672 * @param {Object} hash The hash to modify. 10673 * @param {string} key The key of the value to remove. 10674 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10675 */ 10676function hashDelete(key) { 10677 var result = this.has(key) && delete this.__data__[key]; 10678 this.size -= result ? 1 : 0; 10679 return result; 10680} 10681 10682module.exports = hashDelete; 10683 10684 10685/***/ }), 10686/* 199 */ 10687/***/ (function(module, exports, __webpack_require__) { 10688 10689var nativeCreate = __webpack_require__(30); 10690 10691/** Used to stand-in for `undefined` hash values. */ 10692var HASH_UNDEFINED = '__lodash_hash_undefined__'; 10693 10694/** Used for built-in method references. */ 10695var objectProto = Object.prototype; 10696 10697/** Used to check objects for own properties. */ 10698var hasOwnProperty = objectProto.hasOwnProperty; 10699 10700/** 10701 * Gets the hash value for `key`. 10702 * 10703 * @private 10704 * @name get 10705 * @memberOf Hash 10706 * @param {string} key The key of the value to get. 10707 * @returns {*} Returns the entry value. 10708 */ 10709function hashGet(key) { 10710 var data = this.__data__; 10711 if (nativeCreate) { 10712 var result = data[key]; 10713 return result === HASH_UNDEFINED ? undefined : result; 10714 } 10715 return hasOwnProperty.call(data, key) ? data[key] : undefined; 10716} 10717 10718module.exports = hashGet; 10719 10720 10721/***/ }), 10722/* 200 */ 10723/***/ (function(module, exports, __webpack_require__) { 10724 10725var nativeCreate = __webpack_require__(30); 10726 10727/** Used for built-in method references. */ 10728var objectProto = Object.prototype; 10729 10730/** Used to check objects for own properties. */ 10731var hasOwnProperty = objectProto.hasOwnProperty; 10732 10733/** 10734 * Checks if a hash value for `key` exists. 10735 * 10736 * @private 10737 * @name has 10738 * @memberOf Hash 10739 * @param {string} key The key of the entry to check. 10740 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10741 */ 10742function hashHas(key) { 10743 var data = this.__data__; 10744 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 10745} 10746 10747module.exports = hashHas; 10748 10749 10750/***/ }), 10751/* 201 */ 10752/***/ (function(module, exports, __webpack_require__) { 10753 10754var nativeCreate = __webpack_require__(30); 10755 10756/** Used to stand-in for `undefined` hash values. */ 10757var HASH_UNDEFINED = '__lodash_hash_undefined__'; 10758 10759/** 10760 * Sets the hash `key` to `value`. 10761 * 10762 * @private 10763 * @name set 10764 * @memberOf Hash 10765 * @param {string} key The key of the value to set. 10766 * @param {*} value The value to set. 10767 * @returns {Object} Returns the hash instance. 10768 */ 10769function hashSet(key, value) { 10770 var data = this.__data__; 10771 this.size += this.has(key) ? 0 : 1; 10772 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 10773 return this; 10774} 10775 10776module.exports = hashSet; 10777 10778 10779/***/ }), 10780/* 202 */ 10781/***/ (function(module, exports, __webpack_require__) { 10782 10783var getMapData = __webpack_require__(31); 10784 10785/** 10786 * Removes `key` and its value from the map. 10787 * 10788 * @private 10789 * @name delete 10790 * @memberOf MapCache 10791 * @param {string} key The key of the value to remove. 10792 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10793 */ 10794function mapCacheDelete(key) { 10795 var result = getMapData(this, key)['delete'](key); 10796 this.size -= result ? 1 : 0; 10797 return result; 10798} 10799 10800module.exports = mapCacheDelete; 10801 10802 10803/***/ }), 10804/* 203 */
vendor: 13,821 bytes, lines 10805-11325
10805/***/ (function(module, exports) { 10806 10807/** 10808 * Checks if `value` is suitable for use as unique object key. 10809 * 10810 * @private 10811 * @param {*} value The value to check. 10812 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 10813 */ 10814function isKeyable(value) { 10815 var type = typeof value; 10816 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 10817 ? (value !== '__proto__') 10818 : (value === null); 10819} 10820 10821module.exports = isKeyable; 10822 10823 10824/***/ }), 10825/* 204 */ 10826/***/ (function(module, exports, __webpack_require__) { 10827 10828var getMapData = __webpack_require__(31); 10829 10830/** 10831 * Gets the map value for `key`. 10832 * 10833 * @private 10834 * @name get 10835 * @memberOf MapCache 10836 * @param {string} key The key of the value to get. 10837 * @returns {*} Returns the entry value. 10838 */ 10839function mapCacheGet(key) { 10840 return getMapData(this, key).get(key); 10841} 10842 10843module.exports = mapCacheGet; 10844 10845 10846/***/ }), 10847/* 205 */ 10848/***/ (function(module, exports, __webpack_require__) { 10849 10850var getMapData = __webpack_require__(31); 10851 10852/** 10853 * Checks if a map value for `key` exists. 10854 * 10855 * @private 10856 * @name has 10857 * @memberOf MapCache 10858 * @param {string} key The key of the entry to check. 10859 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10860 */ 10861function mapCacheHas(key) { 10862 return getMapData(this, key).has(key); 10863} 10864 10865module.exports = mapCacheHas; 10866 10867 10868/***/ }), 10869/* 206 */ 10870/***/ (function(module, exports, __webpack_require__) { 10871 10872var getMapData = __webpack_require__(31); 10873 10874/** 10875 * Sets the map `key` to `value`. 10876 * 10877 * @private 10878 * @name set 10879 * @memberOf MapCache 10880 * @param {string} key The key of the value to set. 10881 * @param {*} value The value to set. 10882 * @returns {Object} Returns the map cache instance. 10883 */ 10884function mapCacheSet(key, value) { 10885 var data = getMapData(this, key), 10886 size = data.size; 10887 10888 data.set(key, value); 10889 this.size += data.size == size ? 0 : 1; 10890 return this; 10891} 10892 10893module.exports = mapCacheSet; 10894 10895 10896/***/ }), 10897/* 207 */ 10898/***/ (function(module, exports, __webpack_require__) { 10899 10900var Stack = __webpack_require__(87), 10901 equalArrays = __webpack_require__(92), 10902 equalByTag = __webpack_require__(213), 10903 equalObjects = __webpack_require__(217), 10904 getTag = __webpack_require__(54), 10905 isArray = __webpack_require__(1), 10906 isBuffer = __webpack_require__(48), 10907 isTypedArray = __webpack_require__(50); 10908 10909/** Used to compose bitmasks for value comparisons. */ 10910var COMPARE_PARTIAL_FLAG = 1; 10911 10912/** `Object#toString` result references. */ 10913var argsTag = '[object Arguments]', 10914 arrayTag = '[object Array]', 10915 objectTag = '[object Object]'; 10916 10917/** Used for built-in method references. */ 10918var objectProto = Object.prototype; 10919 10920/** Used to check objects for own properties. */ 10921var hasOwnProperty = objectProto.hasOwnProperty; 10922 10923/** 10924 * A specialized version of `baseIsEqual` for arrays and objects which performs 10925 * deep comparisons and tracks traversed objects enabling objects with circular 10926 * references to be compared. 10927 * 10928 * @private 10929 * @param {Object} object The object to compare. 10930 * @param {Object} other The other object to compare. 10931 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 10932 * @param {Function} customizer The function to customize comparisons. 10933 * @param {Function} equalFunc The function to determine equivalents of values. 10934 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 10935 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 10936 */ 10937function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 10938 var objIsArr = isArray(object), 10939 othIsArr = isArray(other), 10940 objTag = objIsArr ? arrayTag : getTag(object), 10941 othTag = othIsArr ? arrayTag : getTag(other); 10942 10943 objTag = objTag == argsTag ? objectTag : objTag; 10944 othTag = othTag == argsTag ? objectTag : othTag; 10945 10946 var objIsObj = objTag == objectTag, 10947 othIsObj = othTag == objectTag, 10948 isSameTag = objTag == othTag; 10949 10950 if (isSameTag && isBuffer(object)) { 10951 if (!isBuffer(other)) { 10952 return false; 10953 } 10954 objIsArr = true; 10955 objIsObj = false; 10956 } 10957 if (isSameTag && !objIsObj) { 10958 stack || (stack = new Stack); 10959 return (objIsArr || isTypedArray(object)) 10960 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 10961 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 10962 } 10963 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 10964 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 10965 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 10966 10967 if (objIsWrapped || othIsWrapped) { 10968 var objUnwrapped = objIsWrapped ? object.value() : object, 10969 othUnwrapped = othIsWrapped ? other.value() : other; 10970 10971 stack || (stack = new Stack); 10972 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 10973 } 10974 } 10975 if (!isSameTag) { 10976 return false; 10977 } 10978 stack || (stack = new Stack); 10979 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 10980} 10981 10982module.exports = baseIsEqualDeep; 10983 10984 10985/***/ }), 10986/* 208 */ 10987/***/ (function(module, exports, __webpack_require__) { 10988 10989var MapCache = __webpack_require__(46), 10990 setCacheAdd = __webpack_require__(209), 10991 setCacheHas = __webpack_require__(210); 10992 10993/** 10994 * 10995 * Creates an array cache object to store unique values. 10996 * 10997 * @private 10998 * @constructor 10999 * @param {Array} [values] The values to cache. 11000 */ 11001function SetCache(values) { 11002 var index = -1, 11003 length = values == null ? 0 : values.length; 11004 11005 this.__data__ = new MapCache; 11006 while (++index < length) { 11007 this.add(values[index]); 11008 } 11009} 11010 11011// Add methods to `SetCache`. 11012SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 11013SetCache.prototype.has = setCacheHas; 11014 11015module.exports = SetCache; 11016 11017 11018/***/ }), 11019/* 209 */ 11020/***/ (function(module, exports) { 11021 11022/** Used to stand-in for `undefined` hash values. */ 11023var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11024 11025/** 11026 * Adds `value` to the array cache. 11027 * 11028 * @private 11029 * @name add 11030 * @memberOf SetCache 11031 * @alias push 11032 * @param {*} value The value to cache. 11033 * @returns {Object} Returns the cache instance. 11034 */ 11035function setCacheAdd(value) { 11036 this.__data__.set(value, HASH_UNDEFINED); 11037 return this; 11038} 11039 11040module.exports = setCacheAdd; 11041 11042 11043/***/ }), 11044/* 210 */ 11045/***/ (function(module, exports) { 11046 11047/** 11048 * Checks if `value` is in the array cache. 11049 * 11050 * @private 11051 * @name has 11052 * @memberOf SetCache 11053 * @param {*} value The value to search for. 11054 * @returns {number} Returns `true` if `value` is found, else `false`. 11055 */ 11056function setCacheHas(value) { 11057 return this.__data__.has(value); 11058} 11059 11060module.exports = setCacheHas; 11061 11062 11063/***/ }), 11064/* 211 */ 11065/***/ (function(module, exports) { 11066 11067/** 11068 * A specialized version of `_.some` for arrays without support for iteratee 11069 * shorthands. 11070 * 11071 * @private 11072 * @param {Array} [array] The array to iterate over. 11073 * @param {Function} predicate The function invoked per iteration. 11074 * @returns {boolean} Returns `true` if any element passes the predicate check, 11075 * else `false`. 11076 */ 11077function arraySome(array, predicate) { 11078 var index = -1, 11079 length = array == null ? 0 : array.length; 11080 11081 while (++index < length) { 11082 if (predicate(array[index], index, array)) { 11083 return true; 11084 } 11085 } 11086 return false; 11087} 11088 11089module.exports = arraySome; 11090 11091 11092/***/ }), 11093/* 212 */ 11094/***/ (function(module, exports) { 11095 11096/** 11097 * Checks if a `cache` value for `key` exists. 11098 * 11099 * @private 11100 * @param {Object} cache The cache to query. 11101 * @param {string} key The key of the entry to check. 11102 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11103 */ 11104function cacheHas(cache, key) { 11105 return cache.has(key); 11106} 11107 11108module.exports = cacheHas; 11109 11110 11111/***/ }), 11112/* 213 */ 11113/***/ (function(module, exports, __webpack_require__) { 11114 11115var Symbol = __webpack_require__(20), 11116 Uint8Array = __webpack_require__(214), 11117 eq = __webpack_require__(44), 11118 equalArrays = __webpack_require__(92), 11119 mapToArray = __webpack_require__(215), 11120 setToArray = __webpack_require__(216); 11121 11122/** Used to compose bitmasks for value comparisons. */ 11123var COMPARE_PARTIAL_FLAG = 1, 11124 COMPARE_UNORDERED_FLAG = 2; 11125 11126/** `Object#toString` result references. */ 11127var boolTag = '[object Boolean]', 11128 dateTag = '[object Date]', 11129 errorTag = '[object Error]', 11130 mapTag = '[object Map]', 11131 numberTag = '[object Number]', 11132 regexpTag = '[object RegExp]', 11133 setTag = '[object Set]', 11134 stringTag = '[object String]', 11135 symbolTag = '[object Symbol]'; 11136 11137var arrayBufferTag = '[object ArrayBuffer]', 11138 dataViewTag = '[object DataView]'; 11139 11140/** Used to convert symbols to primitives and strings. */ 11141var symbolProto = Symbol ? Symbol.prototype : undefined, 11142 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; 11143 11144/** 11145 * A specialized version of `baseIsEqualDeep` for comparing objects of 11146 * the same `toStringTag`. 11147 * 11148 * **Note:** This function only supports comparing values with tags of 11149 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 11150 * 11151 * @private 11152 * @param {Object} object The object to compare. 11153 * @param {Object} other The other object to compare. 11154 * @param {string} tag The `toStringTag` of the objects to compare. 11155 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11156 * @param {Function} customizer The function to customize comparisons. 11157 * @param {Function} equalFunc The function to determine equivalents of values. 11158 * @param {Object} stack Tracks traversed `object` and `other` objects. 11159 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11160 */ 11161function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 11162 switch (tag) { 11163 case dataViewTag: 11164 if ((object.byteLength != other.byteLength) || 11165 (object.byteOffset != other.byteOffset)) { 11166 return false; 11167 } 11168 object = object.buffer; 11169 other = other.buffer; 11170 11171 case arrayBufferTag: 11172 if ((object.byteLength != other.byteLength) || 11173 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 11174 return false; 11175 } 11176 return true; 11177 11178 case boolTag: 11179 case dateTag: 11180 case numberTag: 11181 // Coerce booleans to `1` or `0` and dates to milliseconds. 11182 // Invalid dates are coerced to `NaN`. 11183 return eq(+object, +other); 11184 11185 case errorTag: 11186 return object.name == other.name && object.message == other.message; 11187 11188 case regexpTag: 11189 case stringTag: 11190 // Coerce regexes to strings and treat strings, primitives and objects, 11191 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 11192 // for more details. 11193 return object == (other + ''); 11194 11195 case mapTag: 11196 var convert = mapToArray; 11197 11198 case setTag: 11199 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 11200 convert || (convert = setToArray); 11201 11202 if (object.size != other.size && !isPartial) { 11203 return false; 11204 } 11205 // Assume cyclic values are equal. 11206 var stacked = stack.get(object); 11207 if (stacked) { 11208 return stacked == other; 11209 } 11210 bitmask |= COMPARE_UNORDERED_FLAG; 11211 11212 // Recursively compare objects (susceptible to call stack limits). 11213 stack.set(object, other); 11214 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 11215 stack['delete'](object); 11216 return result; 11217 11218 case symbolTag: 11219 if (symbolValueOf) { 11220 return symbolValueOf.call(object) == symbolValueOf.call(other); 11221 } 11222 } 11223 return false; 11224} 11225 11226module.exports = equalByTag; 11227 11228 11229/***/ }), 11230/* 214 */ 11231/***/ (function(module, exports, __webpack_require__) { 11232 11233var root = __webpack_require__(4); 11234 11235/** Built-in value references. */ 11236var Uint8Array = root.Uint8Array; 11237 11238module.exports = Uint8Array; 11239 11240 11241/***/ }), 11242/* 215 */ 11243/***/ (function(module, exports) { 11244 11245/** 11246 * Converts `map` to its key-value pairs. 11247 * 11248 * @private 11249 * @param {Object} map The map to convert. 11250 * @returns {Array} Returns the key-value pairs. 11251 */ 11252function mapToArray(map) { 11253 var index = -1, 11254 result = Array(map.size); 11255 11256 map.forEach(function(value, key) { 11257 result[++index] = [key, value]; 11258 }); 11259 return result; 11260} 11261 11262module.exports = mapToArray; 11263 11264 11265/***/ }), 11266/* 216 */ 11267/***/ (function(module, exports) { 11268 11269/** 11270 * Converts `set` to an array of its values. 11271 * 11272 * @private 11273 * @param {Object} set The set to convert. 11274 * @returns {Array} Returns the values. 11275 */ 11276function setToArray(set) { 11277 var index = -1, 11278 result = Array(set.size); 11279 11280 set.forEach(function(value) { 11281 result[++index] = value; 11282 }); 11283 return result; 11284} 11285 11286module.exports = setToArray; 11287 11288 11289/***/ }), 11290/* 217 */ 11291/***/ (function(module, exports, __webpack_require__) { 11292 11293var getAllKeys = __webpack_require__(218); 11294 11295/** Used to compose bitmasks for value comparisons. */ 11296var COMPARE_PARTIAL_FLAG = 1; 11297 11298/** Used for built-in method references. */ 11299var objectProto = Object.prototype; 11300 11301/** Used to check objects for own properties. */ 11302var hasOwnProperty = objectProto.hasOwnProperty; 11303 11304/** 11305 * A specialized version of `baseIsEqualDeep` for objects with support for 11306 * partial deep comparisons. 11307 * 11308 * @private 11309 * @param {Object} object The object to compare. 11310 * @param {Object} other The other object to compare. 11311 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11312 * @param {Function} customizer The function to customize comparisons. 11313 * @param {Function} equalFunc The function to determine equivalents of values. 11314 * @param {Object} stack Tracks traversed `object` and `other` objects. 11315 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11316 */ 11317function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 11318 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 11319 objProps = getAllKeys(object), 11320 objLength = objProps.length, 11321 othProps = getAllKeys(other), 11322 othLength = othProps.length; 11323 11324 if (objLength != othLength && !isPartial) { 11325 return false;
vendor: 1,075 bytes, lines 11326-11360
11326 } 11327 var index = objLength; 11328 while (index--) { 11329 var key = objProps[index]; 11330 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 11331 return false; 11332 } 11333 } 11334 // Check that cyclic values are equal. 11335 var objStacked = stack.get(object); 11336 var othStacked = stack.get(other); 11337 if (objStacked && othStacked) { 11338 return objStacked == other && othStacked == object; 11339 } 11340 var result = true; 11341 stack.set(object, other); 11342 stack.set(other, object); 11343 11344 var skipCtor = isPartial; 11345 while (++index < objLength) { 11346 key = objProps[index]; 11347 var objValue = object[key], 11348 othValue = other[key]; 11349 11350 if (customizer) { 11351 var compared = isPartial 11352 ? customizer(othValue, objValue, key, other, object, stack) 11353 : customizer(objValue, othValue, key, object, other, stack); 11354 } 11355 // Recursively compare objects (susceptible to call stack limits). 11356 if (!(compared === undefined 11357 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 11358 : compared 11359 )) { 11360 result = false;
vendor: 10,618 bytes, lines 11361-11768
11361 break; 11362 } 11363 skipCtor || (skipCtor = key == 'constructor'); 11364 } 11365 if (result && !skipCtor) { 11366 var objCtor = object.constructor, 11367 othCtor = other.constructor; 11368 11369 // Non `Object` object instances with different constructors are not equal. 11370 if (objCtor != othCtor && 11371 ('constructor' in object && 'constructor' in other) && 11372 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 11373 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 11374 result = false; 11375 } 11376 } 11377 stack['delete'](object); 11378 stack['delete'](other); 11379 return result; 11380} 11381 11382module.exports = equalObjects; 11383 11384 11385/***/ }), 11386/* 218 */ 11387/***/ (function(module, exports, __webpack_require__) { 11388 11389var baseGetAllKeys = __webpack_require__(93), 11390 getSymbols = __webpack_require__(94), 11391 keys = __webpack_require__(32); 11392 11393/** 11394 * Creates an array of own enumerable property names and symbols of `object`. 11395 * 11396 * @private 11397 * @param {Object} object The object to query. 11398 * @returns {Array} Returns the array of property names and symbols. 11399 */ 11400function getAllKeys(object) { 11401 return baseGetAllKeys(object, keys, getSymbols); 11402} 11403 11404module.exports = getAllKeys; 11405 11406 11407/***/ }), 11408/* 219 */ 11409/***/ (function(module, exports) { 11410 11411/** 11412 * A specialized version of `_.filter` for arrays without support for 11413 * iteratee shorthands. 11414 * 11415 * @private 11416 * @param {Array} [array] The array to iterate over. 11417 * @param {Function} predicate The function invoked per iteration. 11418 * @returns {Array} Returns the new filtered array. 11419 */ 11420function arrayFilter(array, predicate) { 11421 var index = -1, 11422 length = array == null ? 0 : array.length, 11423 resIndex = 0, 11424 result = []; 11425 11426 while (++index < length) { 11427 var value = array[index]; 11428 if (predicate(value, index, array)) { 11429 result[resIndex++] = value; 11430 } 11431 } 11432 return result; 11433} 11434 11435module.exports = arrayFilter; 11436 11437 11438/***/ }), 11439/* 220 */ 11440/***/ (function(module, exports) { 11441 11442/** 11443 * The base implementation of `_.times` without support for iteratee shorthands 11444 * or max array length checks. 11445 * 11446 * @private 11447 * @param {number} n The number of times to invoke `iteratee`. 11448 * @param {Function} iteratee The function invoked per iteration. 11449 * @returns {Array} Returns the array of results. 11450 */ 11451function baseTimes(n, iteratee) { 11452 var index = -1, 11453 result = Array(n); 11454 11455 while (++index < n) { 11456 result[index] = iteratee(index); 11457 } 11458 return result; 11459} 11460 11461module.exports = baseTimes; 11462 11463 11464/***/ }), 11465/* 221 */ 11466/***/ (function(module, exports, __webpack_require__) { 11467 11468var baseGetTag = __webpack_require__(11), 11469 isObjectLike = __webpack_require__(9); 11470 11471/** `Object#toString` result references. */ 11472var argsTag = '[object Arguments]'; 11473 11474/** 11475 * The base implementation of `_.isArguments`. 11476 * 11477 * @private 11478 * @param {*} value The value to check. 11479 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 11480 */ 11481function baseIsArguments(value) { 11482 return isObjectLike(value) && baseGetTag(value) == argsTag; 11483} 11484 11485module.exports = baseIsArguments; 11486 11487 11488/***/ }), 11489/* 222 */ 11490/***/ (function(module, exports) { 11491 11492/** 11493 * This method returns `false`. 11494 * 11495 * @static 11496 * @memberOf _ 11497 * @since 4.13.0 11498 * @category Util 11499 * @returns {boolean} Returns `false`. 11500 * @example 11501 * 11502 * _.times(2, _.stubFalse); 11503 * // => [false, false] 11504 */ 11505function stubFalse() { 11506 return false; 11507} 11508 11509module.exports = stubFalse; 11510 11511 11512/***/ }), 11513/* 223 */ 11514/***/ (function(module, exports, __webpack_require__) { 11515 11516var baseGetTag = __webpack_require__(11), 11517 isLength = __webpack_require__(51), 11518 isObjectLike = __webpack_require__(9); 11519 11520/** `Object#toString` result references. */ 11521var argsTag = '[object Arguments]', 11522 arrayTag = '[object Array]', 11523 boolTag = '[object Boolean]', 11524 dateTag = '[object Date]', 11525 errorTag = '[object Error]', 11526 funcTag = '[object Function]', 11527 mapTag = '[object Map]', 11528 numberTag = '[object Number]', 11529 objectTag = '[object Object]', 11530 regexpTag = '[object RegExp]', 11531 setTag = '[object Set]', 11532 stringTag = '[object String]', 11533 weakMapTag = '[object WeakMap]'; 11534 11535var arrayBufferTag = '[object ArrayBuffer]', 11536 dataViewTag = '[object DataView]', 11537 float32Tag = '[object Float32Array]', 11538 float64Tag = '[object Float64Array]', 11539 int8Tag = '[object Int8Array]', 11540 int16Tag = '[object Int16Array]', 11541 int32Tag = '[object Int32Array]', 11542 uint8Tag = '[object Uint8Array]', 11543 uint8ClampedTag = '[object Uint8ClampedArray]', 11544 uint16Tag = '[object Uint16Array]', 11545 uint32Tag = '[object Uint32Array]'; 11546 11547/** Used to identify `toStringTag` values of typed arrays. */ 11548var typedArrayTags = {}; 11549typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 11550typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 11551typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 11552typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 11553typedArrayTags[uint32Tag] = true; 11554typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 11555typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = 11556typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 11557typedArrayTags[errorTag] = typedArrayTags[funcTag] = 11558typedArrayTags[mapTag] = typedArrayTags[numberTag] = 11559typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 11560typedArrayTags[setTag] = typedArrayTags[stringTag] = 11561typedArrayTags[weakMapTag] = false; 11562 11563/** 11564 * The base implementation of `_.isTypedArray` without Node.js optimizations. 11565 * 11566 * @private 11567 * @param {*} value The value to check. 11568 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 11569 */ 11570function baseIsTypedArray(value) { 11571 return isObjectLike(value) && 11572 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 11573} 11574 11575module.exports = baseIsTypedArray; 11576 11577 11578/***/ }), 11579/* 224 */ 11580/***/ (function(module, exports) { 11581 11582/** 11583 * The base implementation of `_.unary` without support for storing metadata. 11584 * 11585 * @private 11586 * @param {Function} func The function to cap arguments for. 11587 * @returns {Function} Returns the new capped function. 11588 */ 11589function baseUnary(func) { 11590 return function(value) { 11591 return func(value); 11592 }; 11593} 11594 11595module.exports = baseUnary; 11596 11597 11598/***/ }), 11599/* 225 */ 11600/***/ (function(module, exports, __webpack_require__) { 11601 11602/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(89); 11603 11604/** Detect free variable `exports`. */ 11605var freeExports = true && exports && !exports.nodeType && exports; 11606 11607/** Detect free variable `module`. */ 11608var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 11609 11610/** Detect the popular CommonJS extension `module.exports`. */ 11611var moduleExports = freeModule && freeModule.exports === freeExports; 11612 11613/** Detect free variable `process` from Node.js. */ 11614var freeProcess = moduleExports && freeGlobal.process; 11615 11616/** Used to access faster Node.js helpers. */ 11617var nodeUtil = (function() { 11618 try { 11619 // Use `util.types` for Node.js 10+. 11620 var types = freeModule && freeModule.require && freeModule.require('util').types; 11621 11622 if (types) { 11623 return types; 11624 } 11625 11626 // Legacy `process.binding('util')` for Node.js < 10. 11627 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 11628 } catch (e) {} 11629}()); 11630 11631module.exports = nodeUtil; 11632 11633/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) 11634 11635/***/ }), 11636/* 226 */ 11637/***/ (function(module, exports, __webpack_require__) { 11638 11639var overArg = __webpack_require__(98); 11640 11641/* Built-in method references for those with the same name as other `lodash` methods. */ 11642var nativeKeys = overArg(Object.keys, Object); 11643 11644module.exports = nativeKeys; 11645 11646 11647/***/ }), 11648/* 227 */ 11649/***/ (function(module, exports, __webpack_require__) { 11650 11651var getNative = __webpack_require__(8), 11652 root = __webpack_require__(4); 11653 11654/* Built-in method references that are verified to be native. */ 11655var DataView = getNative(root, 'DataView'); 11656 11657module.exports = DataView; 11658 11659 11660/***/ }), 11661/* 228 */ 11662/***/ (function(module, exports, __webpack_require__) { 11663 11664var getNative = __webpack_require__(8), 11665 root = __webpack_require__(4); 11666 11667/* Built-in method references that are verified to be native. */ 11668var Promise = getNative(root, 'Promise'); 11669 11670module.exports = Promise; 11671 11672 11673/***/ }), 11674/* 229 */ 11675/***/ (function(module, exports, __webpack_require__) { 11676 11677var getNative = __webpack_require__(8), 11678 root = __webpack_require__(4); 11679 11680/* Built-in method references that are verified to be native. */ 11681var Set = getNative(root, 'Set'); 11682 11683module.exports = Set; 11684 11685 11686/***/ }), 11687/* 230 */ 11688/***/ (function(module, exports, __webpack_require__) { 11689 11690var isStrictComparable = __webpack_require__(100), 11691 keys = __webpack_require__(32); 11692 11693/** 11694 * Gets the property names, values, and compare flags of `object`. 11695 * 11696 * @private 11697 * @param {Object} object The object to query. 11698 * @returns {Array} Returns the match data of `object`. 11699 */ 11700function getMatchData(object) { 11701 var result = keys(object), 11702 length = result.length; 11703 11704 while (length--) { 11705 var key = result[length], 11706 value = object[key]; 11707 11708 result[length] = [key, value, isStrictComparable(value)]; 11709 } 11710 return result; 11711} 11712 11713module.exports = getMatchData; 11714 11715 11716/***/ }), 11717/* 231 */ 11718/***/ (function(module, exports, __webpack_require__) { 11719 11720var baseIsEqual = __webpack_require__(91), 11721 get = __webpack_require__(55), 11722 hasIn = __webpack_require__(237), 11723 isKey = __webpack_require__(57), 11724 isStrictComparable = __webpack_require__(100), 11725 matchesStrictComparable = __webpack_require__(101), 11726 toKey = __webpack_require__(21); 11727 11728/** Used to compose bitmasks for value comparisons. */ 11729var COMPARE_PARTIAL_FLAG = 1, 11730 COMPARE_UNORDERED_FLAG = 2; 11731 11732/** 11733 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 11734 * 11735 * @private 11736 * @param {string} path The path of the property to get. 11737 * @param {*} srcValue The value to match. 11738 * @returns {Function} Returns the new spec function. 11739 */ 11740function baseMatchesProperty(path, srcValue) { 11741 if (isKey(path) && isStrictComparable(srcValue)) { 11742 return matchesStrictComparable(toKey(path), srcValue); 11743 } 11744 return function(object) { 11745 var objValue = get(object, path); 11746 return (objValue === undefined && objValue === srcValue) 11747 ? hasIn(object, path) 11748 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 11749 }; 11750} 11751 11752module.exports = baseMatchesProperty; 11753 11754 11755/***/ }), 11756/* 232 */ 11757/***/ (function(module, exports, __webpack_require__) { 11758 11759var memoizeCapped = __webpack_require__(233); 11760 11761/** Used to match property names within property paths. */ 11762var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 11763 11764/** Used to match backslashes in property paths. */ 11765var reEscapeChar = /\\(\\)?/g; 11766 11767/** 11768 * Converts `string` to a property path array.
vendor: 5,053 bytes, lines 11769-11962
11769 * 11770 * @private 11771 * @param {string} string The string to convert. 11772 * @returns {Array} Returns the property path array. 11773 */ 11774var stringToPath = memoizeCapped(function(string) { 11775 var result = []; 11776 if (string.charCodeAt(0) === 46 /* . */) { 11777 result.push(''); 11778 } 11779 string.replace(rePropName, function(match, number, quote, subString) { 11780 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 11781 }); 11782 return result; 11783}); 11784 11785module.exports = stringToPath; 11786 11787 11788/***/ }), 11789/* 233 */ 11790/***/ (function(module, exports, __webpack_require__) { 11791 11792var memoize = __webpack_require__(234); 11793 11794/** Used as the maximum memoize cache size. */ 11795var MAX_MEMOIZE_SIZE = 500; 11796 11797/** 11798 * A specialized version of `_.memoize` which clears the memoized function's 11799 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 11800 * 11801 * @private 11802 * @param {Function} func The function to have its output memoized. 11803 * @returns {Function} Returns the new memoized function. 11804 */ 11805function memoizeCapped(func) { 11806 var result = memoize(func, function(key) { 11807 if (cache.size === MAX_MEMOIZE_SIZE) { 11808 cache.clear(); 11809 } 11810 return key; 11811 }); 11812 11813 var cache = result.cache; 11814 return result; 11815} 11816 11817module.exports = memoizeCapped; 11818 11819 11820/***/ }), 11821/* 234 */ 11822/***/ (function(module, exports, __webpack_require__) { 11823 11824var MapCache = __webpack_require__(46); 11825 11826/** Error message constants. */ 11827var FUNC_ERROR_TEXT = 'Expected a function'; 11828 11829/** 11830 * Creates a function that memoizes the result of `func`. If `resolver` is 11831 * provided, it determines the cache key for storing the result based on the 11832 * arguments provided to the memoized function. By default, the first argument 11833 * provided to the memoized function is used as the map cache key. The `func` 11834 * is invoked with the `this` binding of the memoized function. 11835 * 11836 * **Note:** The cache is exposed as the `cache` property on the memoized 11837 * function. Its creation may be customized by replacing the `_.memoize.Cache` 11838 * constructor with one whose instances implement the 11839 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 11840 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 11841 * 11842 * @static 11843 * @memberOf _ 11844 * @since 0.1.0 11845 * @category Function 11846 * @param {Function} func The function to have its output memoized. 11847 * @param {Function} [resolver] The function to resolve the cache key. 11848 * @returns {Function} Returns the new memoized function. 11849 * @example 11850 * 11851 * var object = { 'a': 1, 'b': 2 }; 11852 * var other = { 'c': 3, 'd': 4 }; 11853 * 11854 * var values = _.memoize(_.values); 11855 * values(object); 11856 * // => [1, 2] 11857 * 11858 * values(other); 11859 * // => [3, 4] 11860 * 11861 * object.a = 2; 11862 * values(object); 11863 * // => [1, 2] 11864 * 11865 * // Modify the result cache. 11866 * values.cache.set(object, ['a', 'b']); 11867 * values(object); 11868 * // => ['a', 'b'] 11869 * 11870 * // Replace `_.memoize.Cache`. 11871 * _.memoize.Cache = WeakMap; 11872 */ 11873function memoize(func, resolver) { 11874 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 11875 throw new TypeError(FUNC_ERROR_TEXT); 11876 } 11877 var memoized = function() { 11878 var args = arguments, 11879 key = resolver ? resolver.apply(this, args) : args[0], 11880 cache = memoized.cache; 11881 11882 if (cache.has(key)) { 11883 return cache.get(key); 11884 } 11885 var result = func.apply(this, args); 11886 memoized.cache = cache.set(key, result) || cache; 11887 return result; 11888 }; 11889 memoized.cache = new (memoize.Cache || MapCache); 11890 return memoized; 11891} 11892 11893// Expose `MapCache`. 11894memoize.Cache = MapCache; 11895 11896module.exports = memoize; 11897 11898 11899/***/ }), 11900/* 235 */ 11901/***/ (function(module, exports, __webpack_require__) { 11902 11903var baseToString = __webpack_require__(236); 11904 11905/** 11906 * Converts `value` to a string. An empty string is returned for `null` 11907 * and `undefined` values. The sign of `-0` is preserved. 11908 * 11909 * @static 11910 * @memberOf _ 11911 * @since 4.0.0 11912 * @category Lang 11913 * @param {*} value The value to convert. 11914 * @returns {string} Returns the converted string. 11915 * @example 11916 * 11917 * _.toString(null); 11918 * // => '' 11919 * 11920 * _.toString(-0); 11921 * // => '-0' 11922 * 11923 * _.toString([1, 2, 3]); 11924 * // => '1,2,3' 11925 */ 11926function toString(value) { 11927 return value == null ? '' : baseToString(value); 11928} 11929 11930module.exports = toString; 11931 11932 11933/***/ }), 11934/* 236 */ 11935/***/ (function(module, exports, __webpack_require__) { 11936 11937var Symbol = __webpack_require__(20), 11938 arrayMap = __webpack_require__(102), 11939 isArray = __webpack_require__(1), 11940 isSymbol = __webpack_require__(35); 11941 11942/** Used as references for various `Number` constants. */ 11943var INFINITY = 1 / 0; 11944 11945/** Used to convert symbols to primitives and strings. */ 11946var symbolProto = Symbol ? Symbol.prototype : undefined, 11947 symbolToString = symbolProto ? symbolProto.toString : undefined; 11948 11949/** 11950 * The base implementation of `_.toString` which doesn't convert nullish 11951 * values to empty strings. 11952 * 11953 * @private 11954 * @param {*} value The value to process. 11955 * @returns {string} Returns the string. 11956 */ 11957function baseToString(value) { 11958 // Exit early for strings to avoid a performance hit in some environments. 11959 if (typeof value == 'string') { 11960 return value; 11961 } 11962 if (isArray(value)) {
vendor: 2,364 bytes, lines 11963-12060
11963 // Recursively convert values (susceptible to call stack limits). 11964 return arrayMap(value, baseToString) + ''; 11965 } 11966 if (isSymbol(value)) { 11967 return symbolToString ? symbolToString.call(value) : ''; 11968 } 11969 var result = (value + ''); 11970 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 11971} 11972 11973module.exports = baseToString; 11974 11975 11976/***/ }), 11977/* 237 */ 11978/***/ (function(module, exports, __webpack_require__) { 11979 11980var baseHasIn = __webpack_require__(238), 11981 hasPath = __webpack_require__(239); 11982 11983/** 11984 * Checks if `path` is a direct or inherited property of `object`. 11985 * 11986 * @static 11987 * @memberOf _ 11988 * @since 4.0.0 11989 * @category Object 11990 * @param {Object} object The object to query. 11991 * @param {Array|string} path The path to check. 11992 * @returns {boolean} Returns `true` if `path` exists, else `false`. 11993 * @example 11994 * 11995 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 11996 * 11997 * _.hasIn(object, 'a'); 11998 * // => true 11999 * 12000 * _.hasIn(object, 'a.b'); 12001 * // => true 12002 * 12003 * _.hasIn(object, ['a', 'b']); 12004 * // => true 12005 * 12006 * _.hasIn(object, 'b'); 12007 * // => false 12008 */ 12009function hasIn(object, path) { 12010 return object != null && hasPath(object, path, baseHasIn); 12011} 12012 12013module.exports = hasIn; 12014 12015 12016/***/ }), 12017/* 238 */ 12018/***/ (function(module, exports) { 12019 12020/** 12021 * The base implementation of `_.hasIn` without support for deep paths. 12022 * 12023 * @private 12024 * @param {Object} [object] The object to query. 12025 * @param {Array|string} key The key to check. 12026 * @returns {boolean} Returns `true` if `key` exists, else `false`. 12027 */ 12028function baseHasIn(object, key) { 12029 return object != null && key in Object(object); 12030} 12031 12032module.exports = baseHasIn; 12033 12034 12035/***/ }), 12036/* 239 */ 12037/***/ (function(module, exports, __webpack_require__) { 12038 12039var castPath = __webpack_require__(34), 12040 isArguments = __webpack_require__(33), 12041 isArray = __webpack_require__(1), 12042 isIndex = __webpack_require__(49), 12043 isLength = __webpack_require__(51), 12044 toKey = __webpack_require__(21); 12045 12046/** 12047 * Checks if `path` exists on `object`. 12048 * 12049 * @private 12050 * @param {Object} object The object to query. 12051 * @param {Array|string} path The path to check. 12052 * @param {Function} hasFunc The function to check properties. 12053 * @returns {boolean} Returns `true` if `path` exists, else `false`. 12054 */ 12055function hasPath(object, path, hasFunc) { 12056 path = castPath(path, object); 12057 12058 var index = -1, 12059 length = path.length, 12060 result = false;
vendor: 4,465 bytes, lines 12061-12250
12061 12062 while (++index < length) { 12063 var key = toKey(path[index]); 12064 if (!(result = object != null && hasFunc(object, key))) { 12065 break; 12066 } 12067 object = object[key]; 12068 } 12069 if (result || ++index != length) { 12070 return result; 12071 } 12072 length = object == null ? 0 : object.length; 12073 return !!length && isLength(length) && isIndex(key, length) && 12074 (isArray(object) || isArguments(object)); 12075} 12076 12077module.exports = hasPath; 12078 12079 12080/***/ }), 12081/* 240 */ 12082/***/ (function(module, exports, __webpack_require__) { 12083 12084var baseProperty = __webpack_require__(103), 12085 basePropertyDeep = __webpack_require__(241), 12086 isKey = __webpack_require__(57), 12087 toKey = __webpack_require__(21); 12088 12089/** 12090 * Creates a function that returns the value at `path` of a given object. 12091 * 12092 * @static 12093 * @memberOf _ 12094 * @since 2.4.0 12095 * @category Util 12096 * @param {Array|string} path The path of the property to get. 12097 * @returns {Function} Returns the new accessor function. 12098 * @example 12099 * 12100 * var objects = [ 12101 * { 'a': { 'b': 2 } }, 12102 * { 'a': { 'b': 1 } } 12103 * ]; 12104 * 12105 * _.map(objects, _.property('a.b')); 12106 * // => [2, 1] 12107 * 12108 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 12109 * // => [1, 2] 12110 */ 12111function property(path) { 12112 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 12113} 12114 12115module.exports = property; 12116 12117 12118/***/ }), 12119/* 241 */ 12120/***/ (function(module, exports, __webpack_require__) { 12121 12122var baseGet = __webpack_require__(56); 12123 12124/** 12125 * A specialized version of `baseProperty` which supports deep paths. 12126 * 12127 * @private 12128 * @param {Array|string} path The path of the property to get. 12129 * @returns {Function} Returns the new accessor function. 12130 */ 12131function basePropertyDeep(path) { 12132 return function(object) { 12133 return baseGet(object, path); 12134 }; 12135} 12136 12137module.exports = basePropertyDeep; 12138 12139 12140/***/ }), 12141/* 242 */ 12142/***/ (function(module, exports, __webpack_require__) { 12143 12144var baseFindIndex = __webpack_require__(104), 12145 baseIteratee = __webpack_require__(7), 12146 toInteger = __webpack_require__(105); 12147 12148/* Built-in method references for those with the same name as other `lodash` methods. */ 12149var nativeMax = Math.max; 12150 12151/** 12152 * This method is like `_.find` except that it returns the index of the first 12153 * element `predicate` returns truthy for instead of the element itself. 12154 * 12155 * @static 12156 * @memberOf _ 12157 * @since 1.1.0 12158 * @category Array 12159 * @param {Array} array The array to inspect. 12160 * @param {Function} [predicate=_.identity] The function invoked per iteration. 12161 * @param {number} [fromIndex=0] The index to search from. 12162 * @returns {number} Returns the index of the found element, else `-1`. 12163 * @example 12164 * 12165 * var users = [ 12166 * { 'user': 'barney', 'active': false }, 12167 * { 'user': 'fred', 'active': false }, 12168 * { 'user': 'pebbles', 'active': true } 12169 * ]; 12170 * 12171 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 12172 * // => 0 12173 * 12174 * // The `_.matches` iteratee shorthand. 12175 * _.findIndex(users, { 'user': 'fred', 'active': false }); 12176 * // => 1 12177 * 12178 * // The `_.matchesProperty` iteratee shorthand. 12179 * _.findIndex(users, ['active', false]); 12180 * // => 0 12181 * 12182 * // The `_.property` iteratee shorthand. 12183 * _.findIndex(users, 'active'); 12184 * // => 2 12185 */ 12186function findIndex(array, predicate, fromIndex) { 12187 var length = array == null ? 0 : array.length; 12188 if (!length) { 12189 return -1; 12190 } 12191 var index = fromIndex == null ? 0 : toInteger(fromIndex); 12192 if (index < 0) { 12193 index = nativeMax(length + index, 0); 12194 } 12195 return baseFindIndex(array, baseIteratee(predicate, 3), index); 12196} 12197 12198module.exports = findIndex; 12199 12200 12201/***/ }), 12202/* 243 */ 12203/***/ (function(module, exports, __webpack_require__) { 12204 12205var toNumber = __webpack_require__(59); 12206 12207/** Used as references for various `Number` constants. */ 12208var INFINITY = 1 / 0, 12209 MAX_INTEGER = 1.7976931348623157e+308; 12210 12211/** 12212 * Converts `value` to a finite number. 12213 * 12214 * @static 12215 * @memberOf _ 12216 * @since 4.12.0 12217 * @category Lang 12218 * @param {*} value The value to convert. 12219 * @returns {number} Returns the converted number. 12220 * @example 12221 * 12222 * _.toFinite(3.2); 12223 * // => 3.2 12224 * 12225 * _.toFinite(Number.MIN_VALUE); 12226 * // => 5e-324 12227 * 12228 * _.toFinite(Infinity); 12229 * // => 1.7976931348623157e+308 12230 * 12231 * _.toFinite('3.2'); 12232 * // => 3.2 12233 */ 12234function toFinite(value) { 12235 if (!value) { 12236 return value === 0 ? value : 0; 12237 } 12238 value = toNumber(value); 12239 if (value === INFINITY || value === -INFINITY) { 12240 var sign = (value < 0 ? -1 : 1); 12241 return sign * MAX_INTEGER; 12242 } 12243 return value === value ? value : 0; 12244} 12245 12246module.exports = toFinite; 12247 12248 12249/***/ }), 12250/* 244 */
12251/***/ (function(module, exports) { 12252 12253function _arrayWithoutHoles(arr) { 12254 if (Array.isArray(arr)) { 12255 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 12256 arr2[i] = arr[i]; 12257 } 12258 12259 return arr2; 12260 } 12261} 12262 12263module.exports = _arrayWithoutHoles; 12264 12265/***/ }), 12266/* 245 */ 12267/***/ (function(module, exports) { 12268 12269function _iterableToArray(iter) { 12270 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 12271} 12272 12273module.exports = _iterableToArray; 12274 12275/***/ }), 12276/* 246 */ 12277/***/ (function(module, exports) { 12278 12279function _nonIterableSpread() { 12280 throw new TypeError("Invalid attempt to spread non-iterable instance"); 12281} 12282 12283module.exports = _nonIterableSpread; 12284 12285/***/ }), 12286/* 247 */ 12287/***/ (function(module, exports, __webpack_require__) { 12288 12289"use strict"; 12290 12291 12292Object.defineProperty(exports, "__esModule", { 12293 value: true 12294}); 12295exports.createElementState = createElementState; 12296exports.mergeActionState = mergeActionState; 12297exports.ixElements = void 0; 12298 12299var _timm = __webpack_require__(19); 12300 12301var _constants = __webpack_require__(2); 12302 12303var _constants$IX2EngineC = _constants.IX2EngineConstants, 12304 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 12305 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 12306 ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, 12307 CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, 12308 CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, 12309 CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, 12310 CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, 12311 CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, 12312 CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, 12313 CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, 12314 CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; 12315var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 12316 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 12317 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 12318 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; 12319var initialState = {}; 12320var refState = 'refState'; 12321 12322var ixElements = function ixElements() { 12323 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 12324 var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12325 12326 switch (action.type) { 12327 case IX2_SESSION_STOPPED: 12328 { 12329 return initialState; 12330 } 12331 12332 case IX2_INSTANCE_ADDED: 12333 { 12334 var _action$payload = action.payload, 12335 elementId = _action$payload.elementId, 12336 ref = _action$payload.element, 12337 origin = _action$payload.origin, 12338 actionItem = _action$payload.actionItem, 12339 refType = _action$payload.refType; 12340 var actionTypeId = actionItem.actionTypeId; 12341 var newState = state; // Create new ref entry if it doesn't exist 12342 12343 if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { 12344 newState = createElementState(newState, ref, refType, elementId, actionItem); 12345 } // Merge origin values into ref state 12346 12347 12348 return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); 12349 } 12350 12351 case IX2_ELEMENT_STATE_CHANGED: 12352 { 12353 var _action$payload2 = action.payload, 12354 _elementId = _action$payload2.elementId, 12355 _actionTypeId = _action$payload2.actionTypeId, 12356 current = _action$payload2.current, 12357 _actionItem = _action$payload2.actionItem; 12358 return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); 12359 } 12360 12361 default: 12362 { 12363 return state; 12364 } 12365 } 12366}; 12367 12368exports.ixElements = ixElements; 12369 12370function createElementState(state, ref, refType, elementId, actionItem) { 12371 var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; 12372 return (0, _timm.mergeIn)(state, [elementId], { 12373 id: elementId, 12374 ref: ref, 12375 refId: refId, 12376 refType: refType 12377 }); 12378} 12379 12380function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used 12381actionItem) { 12382 var units = pickUnits(actionItem); 12383 var mergePath = [elementId, refState, actionTypeId]; 12384 return (0, _timm.mergeIn)(state, mergePath, actionState, units); 12385} 12386 12387var valueUnitPairs = [[CONFIG_X_VALUE, CONFIG_X_UNIT], [CONFIG_Y_VALUE, CONFIG_Y_UNIT], [CONFIG_Z_VALUE, CONFIG_Z_UNIT], [CONFIG_VALUE, CONFIG_UNIT]]; // FIXME: weak type is used 12388// eslint-disable-next-line flowtype/no-weak-types 12389 12390function pickUnits(actionItem) { 12391 var config = actionItem.config; 12392 return valueUnitPairs.reduce(function (result, pair) { 12393 var valueKey = pair[0]; 12394 var unitKey = pair[1]; 12395 var configValue = config[valueKey]; 12396 var configUnit = config[unitKey]; 12397 12398 if (configValue != null && configUnit != null) { 12399 result[unitKey] = configUnit; 12400 } 12401 12402 return result; 12403 }, {}); 12404} 12405 12406/***/ }), 12407/* 248 */ 12408/***/ (function(module, exports, __webpack_require__) { 12409 12410"use strict"; 12411 12412 12413Object.defineProperty(exports, "__esModule", { 12414 value: true 12415}); 12416exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; 12417/* eslint-env browser */ 12418// $FlowFixMe 12419 12420var getPluginConfig = function getPluginConfig(actionItemConfig) { 12421 return actionItemConfig.value; 12422}; // $FlowFixMe 12423 12424 12425exports.getPluginConfig = getPluginConfig; 12426 12427var getPluginDuration = function getPluginDuration(element, actionItem) { 12428 if (actionItem.config.duration !== 'auto') { 12429 return null; 12430 } 12431 12432 var duration = parseFloat(element.getAttribute('data-duration')); 12433 12434 if (duration > 0) { 12435 return duration * 1000; 12436 } 12437 12438 return parseFloat(element.getAttribute('data-default-duration')) * 1000; 12439}; // $FlowFixMe 12440 12441 12442exports.getPluginDuration = getPluginDuration; 12443 12444var getPluginOrigin = function getPluginOrigin(refState) { 12445 return refState || { 12446 value: 0 12447 }; 12448}; // $FlowFixMe 12449 12450 12451exports.getPluginOrigin = getPluginOrigin; 12452 12453var getPluginDestination = function getPluginDestination(actionItemConfig) { 12454 return { 12455 value: actionItemConfig.value 12456 }; 12457}; // $FlowFixMe 12458 12459 12460exports.getPluginDestination = getPluginDestination; 12461 12462var createPluginInstance = function createPluginInstance(element) { 12463 var instance = window.Webflow.require('lottie').createInstance(element); 12464 12465 instance.stop(); 12466 instance.setSubframe(true); 12467 return instance; 12468}; // $FlowFixMe 12469 12470 12471exports.createPluginInstance = createPluginInstance; 12472 12473var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { 12474 if (!pluginInstance) { 12475 return; 12476 } 12477 12478 var percent = refState[actionItem.actionTypeId].value / 100; 12479 pluginInstance.goToFrame(pluginInstance.frames * percent); 12480}; // $FlowFixMe 12481 12482 12483exports.renderPlugin = renderPlugin; 12484 12485var clearPlugin = function clearPlugin(element) { 12486 var instance = window.Webflow.require('lottie').createInstance(element); 12487 12488 instance.stop(); 12489}; 12490 12491exports.clearPlugin = clearPlugin; 12492 12493/***/ }), 12494/* 249 */ 12495/***/ (function(module, exports, __webpack_require__) { 12496 12497"use strict"; 12498 12499 12500var _interopRequireDefault2 = __webpack_require__(0); 12501 12502var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 12503 12504var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 12505
12506var _Object$freeze, _Object$freeze2, _transformDefaults; 12507 12508var _interopRequireDefault = __webpack_require__(0); 12509 12510Object.defineProperty(exports, "__esModule", { 12511 value: true 12512}); 12513exports.getInstanceId = getInstanceId; 12514exports.getElementId = getElementId; 12515exports.reifyState = reifyState; 12516exports.observeStore = observeStore; 12517exports.getAffectedElements = getAffectedElements; 12518exports.getComputedStyle = getComputedStyle; 12519exports.getInstanceOrigin = getInstanceOrigin; 12520exports.getDestinationValues = getDestinationValues; 12521exports.getRenderType = getRenderType; 12522exports.getStyleProp = getStyleProp; 12523exports.renderHTMLElement = renderHTMLElement; 12524exports.clearAllStyles = clearAllStyles; 12525exports.cleanupHTMLElement = cleanupHTMLElement; 12526exports.getMaxDurationItemIndex = getMaxDurationItemIndex; 12527exports.getActionListProgress = getActionListProgress; 12528exports.reduceListToGroup = reduceListToGroup; 12529exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; 12530exports.getNamespacedParameterId = getNamespacedParameterId; 12531exports.shouldAllowMediaQuery = shouldAllowMediaQuery; 12532exports.mediaQueriesEqual = mediaQueriesEqual; 12533exports.stringifyTarget = stringifyTarget; 12534exports.getItemConfigByKey = void 0; 12535 12536var _defaultTo = _interopRequireDefault(__webpack_require__(250)); 12537 12538var _reduce = _interopRequireDefault(__webpack_require__(251)); 12539 12540var _findLast = _interopRequireDefault(__webpack_require__(257)); 12541 12542var _timm = __webpack_require__(19); 12543 12544var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); 12545 12546var _constants = __webpack_require__(2); 12547 12548var _IX2EasingUtils = __webpack_require__(108); 12549 12550var _IX2VanillaPlugins = __webpack_require__(110); 12551 12552var _IX2BrowserSupport = __webpack_require__(43); 12553/* eslint-env browser */ 12554 12555 12556var _constants$IX2EngineC = _constants.IX2EngineConstants, 12557 BACKGROUND = _constants$IX2EngineC.BACKGROUND, 12558 TRANSFORM = _constants$IX2EngineC.TRANSFORM, 12559 TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, 12560 SCALE_3D = _constants$IX2EngineC.SCALE_3D, 12561 ROTATE_X = _constants$IX2EngineC.ROTATE_X, 12562 ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, 12563 ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, 12564 SKEW = _constants$IX2EngineC.SKEW, 12565 PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, 12566 FLEX = _constants$IX2EngineC.FLEX, 12567 OPACITY = _constants$IX2EngineC.OPACITY, 12568 FILTER = _constants$IX2EngineC.FILTER, 12569 WIDTH = _constants$IX2EngineC.WIDTH, 12570 HEIGHT = _constants$IX2EngineC.HEIGHT, 12571 BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, 12572 BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, 12573 COLOR = _constants$IX2EngineC.COLOR, 12574 CHILDREN = _constants$IX2EngineC.CHILDREN, 12575 IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, 12576 SIBLINGS = _constants$IX2EngineC.SIBLINGS, 12577 PARENT = _constants$IX2EngineC.PARENT, 12578 DISPLAY = _constants$IX2EngineC.DISPLAY, 12579 WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, 12580 AUTO = _constants$IX2EngineC.AUTO, 12581 COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, 12582 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 12583 BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, 12584 RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, 12585 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 12586 RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, 12587 RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; 12588var _constants$ActionType = _constants.ActionTypeConsts, 12589 TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, 12590 TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, 12591 TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, 12592 TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, 12593 STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, 12594 STYLE_FILTER = _constants$ActionType.STYLE_FILTER, 12595 STYLE_SIZE = _constants$ActionType.STYLE_SIZE,
12596 STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, 12597 STYLE_BORDER = _constants$ActionType.STYLE_BORDER, 12598 STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, 12599 GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; 12600var OBJECT_VALUE = 'OBJECT_VALUE'; 12601 12602var trim = function trim(v) { 12603 return v.trim(); 12604}; 12605 12606var colorStyleProps = Object.freeze((_Object$freeze = {}, (0, _defineProperty2["default"])(_Object$freeze, STYLE_BACKGROUND_COLOR, BACKGROUND_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_BORDER, BORDER_COLOR), (0, _defineProperty2["default"])(_Object$freeze, STYLE_TEXT_COLOR, COLOR), _Object$freeze)); 12607var willChangeProps = Object.freeze((_Object$freeze2 = {}, (0, _defineProperty2["default"])(_Object$freeze2, _IX2BrowserSupport.TRANSFORM_PREFIXED, TRANSFORM), (0, _defineProperty2["default"])(_Object$freeze2, BACKGROUND_COLOR, BACKGROUND), (0, _defineProperty2["default"])(_Object$freeze2, OPACITY, OPACITY), (0, _defineProperty2["default"])(_Object$freeze2, FILTER, FILTER), (0, _defineProperty2["default"])(_Object$freeze2, WIDTH, WIDTH), (0, _defineProperty2["default"])(_Object$freeze2, HEIGHT, HEIGHT), _Object$freeze2)); 12608var objectCache = {}; 12609var instanceCount = 1; 12610 12611function getInstanceId() { 12612 return 'i' + instanceCount++; 12613} 12614 12615var elementCount = 1; // $FlowFixMe 12616 12617function getElementId(ixElements, ref) { 12618 // TODO: optimize element lookup 12619 for (var key in ixElements) { 12620 var ixEl = ixElements[key]; 12621 12622 if (ixEl && ixEl.ref === ref) { 12623 return ixEl.id; 12624 } 12625 } 12626 12627 return 'e' + elementCount++; 12628} // $FlowFixMe 12629 12630 12631function reifyState() { 12632 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 12633 events = _ref2.events, 12634 actionLists = _ref2.actionLists, 12635 site = _ref2.site; 12636 12637 var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { 12638 var eventTypeId = event.eventTypeId; 12639 12640 if (!result[eventTypeId]) { 12641 result[eventTypeId] = {}; 12642 } 12643 12644 result[eventTypeId][event.id] = event; 12645 return result; 12646 }, {}); 12647 var mediaQueries = site && site.mediaQueries; 12648 var mediaQueryKeys = []; 12649 12650 if (mediaQueries) { 12651 mediaQueryKeys = mediaQueries.map(function (mq) { 12652 return mq.key; 12653 }); 12654 } else { 12655 mediaQueries = []; 12656 console.warn("IX2 missing mediaQueries in site data"); 12657 } 12658 12659 return { 12660 ixData: { 12661 events: events, 12662 actionLists: actionLists, 12663 eventTypeMap: eventTypeMap, 12664 mediaQueries: mediaQueries, 12665 mediaQueryKeys: mediaQueryKeys 12666 } 12667 }; 12668} 12669 12670var strictEqual = function strictEqual(a, b) { 12671 return a === b; 12672}; // $FlowFixMe 12673 12674 12675function observeStore(_ref3) { 12676 var store = _ref3.store, 12677 select = _ref3.select, 12678 onChange = _ref3.onChange, 12679 _ref3$comparator = _ref3.comparator, 12680 comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; 12681 var getState = store.getState, 12682 subscribe = store.subscribe; 12683 var unsubscribe = subscribe(handleChange); 12684 var currentState = select(getState()); 12685 12686 function handleChange() { 12687 var nextState = select(getState()); 12688 12689 if (nextState == null) { 12690 unsubscribe(); 12691 return; 12692 } 12693 12694 if (!comparator(nextState, currentState)) { 12695 currentState = nextState; 12696 onChange(currentState, store); 12697 } 12698 } 12699 12700 return unsubscribe; 12701} 12702 12703function normalizeTarget(target) { 12704 var type = (0, _typeof2["default"])(target); 12705 12706 if (type === 'string') { 12707 return { 12708 id: target 12709 }; 12710 } else if (target != null && type === 'object') { 12711 var id = target.id, 12712 objectId = target.objectId, 12713 selector = target.selector, 12714 selectorGuids = target.selectorGuids, 12715 appliesTo = target.appliesTo, 12716 useEventTarget = target.useEventTarget; 12717 return { 12718 id: id, 12719 objectId: objectId, 12720 selector: selector, 12721 selectorGuids: selectorGuids, 12722 appliesTo: appliesTo, 12723 useEventTarget: useEventTarget 12724 }; 12725 } 12726 12727 return {}; 12728} 12729 12730function getAffectedElements(_ref4) { 12731 var config = _ref4.config, 12732 event = _ref4.event, 12733 eventTarget = _ref4.eventTarget, 12734 elementRoot = _ref4.elementRoot, 12735 elementApi = _ref4.elementApi; 12736 12737 var _ref, _event$action, _event$action$config; 12738 12739 if (!elementApi) { 12740 throw new Error('IX2 missing elementApi'); 12741 } 12742 12743 var targets = config.targets; 12744 12745 if (Array.isArray(targets) && targets.length > 0) { 12746 return targets.reduce(function (accumulator, target) { 12747 return accumulator.concat(getAffectedElements({ 12748 config: { 12749 target: target 12750 }, 12751 event: event, 12752 eventTarget: eventTarget, 12753 elementRoot: elementRoot, 12754 elementApi: elementApi 12755 })); 12756 }, []); 12757 } 12758 12759 var getValidDocument = elementApi.getValidDocument, 12760 getQuerySelector = elementApi.getQuerySelector, 12761 queryDocument = elementApi.queryDocument, 12762 getChildElements = elementApi.getChildElements,
12763 getSiblingElements = elementApi.getSiblingElements, 12764 matchSelector = elementApi.matchSelector, 12765 elementContains = elementApi.elementContains, 12766 isSiblingNode = elementApi.isSiblingNode; 12767 var target = config.target; 12768 12769 if (!target) { 12770 return []; 12771 } 12772 12773 var _normalizeTarget = normalizeTarget(target), 12774 id = _normalizeTarget.id, 12775 objectId = _normalizeTarget.objectId, 12776 selector = _normalizeTarget.selector, 12777 selectorGuids = _normalizeTarget.selectorGuids, 12778 appliesTo = _normalizeTarget.appliesTo, 12779 useEventTarget = _normalizeTarget.useEventTarget; 12780 12781 if (objectId) { 12782 var ref = objectCache[objectId] || (objectCache[objectId] = {}); 12783 return [ref]; 12784 } 12785 12786 if (appliesTo === _constants.EventAppliesTo.PAGE) { 12787 var doc = getValidDocument(id); 12788 return doc ? [doc] : []; 12789 } 12790 12791 var overrides = (_ref = event === null || event === void 0 ? void 0 : (_event$action = event.action) === null || _event$action === void 0 ? void 0 : (_event$action$config = _event$action.config) === null || _event$action$config === void 0 ? void 0 : _event$action$config.affectedElements) !== null && _ref !== void 0 ? _ref : {}; 12792 var override = overrides[id || selector] || {}; 12793 var validOverride = Boolean(override.id || override.selector); 12794 var limitAffectedElements; 12795 var baseSelector; 12796 var finalSelector; 12797 var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); 12798 12799 if (validOverride) { 12800 limitAffectedElements = override.limitAffectedElements; 12801 baseSelector = eventTargetSelector; 12802 finalSelector = getQuerySelector(override); 12803 } else { 12804 // pass in selectorGuids as well for server-side rendering. 12805 baseSelector = finalSelector = getQuerySelector({ 12806 id: id, 12807 selector: selector, 12808 selectorGuids: selectorGuids 12809 }); 12810 } 12811 12812 if (event && useEventTarget) { 12813 // eventTarget is not defined when this function is called in a clear request, so find 12814 // all target elements associated with the event data, and return affected elements. 12815 var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); 12816 12817 if (finalSelector) { 12818 if (useEventTarget === PARENT) { 12819 return queryDocument(finalSelector).filter(function (parentElement) { 12820 return eventTargets.some(function (targetElement) { 12821 return elementContains(parentElement, targetElement); 12822 }); 12823 }); 12824 } 12825 12826 if (useEventTarget === CHILDREN) { 12827 return queryDocument(finalSelector).filter(function (childElement) { 12828 return eventTargets.some(function (targetElement) { 12829 return elementContains(targetElement, childElement); 12830 }); 12831 }); 12832 } 12833 12834 if (useEventTarget === SIBLINGS) { 12835 return queryDocument(finalSelector).filter(function (siblingElement) { 12836 return eventTargets.some(function (targetElement) { 12837 return isSiblingNode(targetElement, siblingElement); 12838 }); 12839 }); 12840 } 12841 } 12842 12843 return eventTargets; 12844 } 12845 12846 if (baseSelector == null || finalSelector == null) { 12847 return []; 12848 } 12849 12850 if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { 12851 return queryDocument(finalSelector).filter(function (element) { 12852 return elementRoot.contains(element); 12853 }); 12854 } 12855 12856 if (limitAffectedElements === CHILDREN) { 12857 return queryDocument(baseSelector, finalSelector); 12858 } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { 12859 return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 12860 } else if (limitAffectedElements === SIBLINGS) { 12861 return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 12862 } else { 12863 return queryDocument(finalSelector); 12864 } 12865} // $FlowFixMe 12866 12867 12868function getComputedStyle(_ref5) { 12869 var element = _ref5.element, 12870 actionItem = _ref5.actionItem; 12871 12872 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 12873 return {}; 12874 } 12875 12876 var actionTypeId = actionItem.actionTypeId; 12877 12878 switch (actionTypeId) { 12879 case STYLE_SIZE: 12880 case STYLE_BACKGROUND_COLOR: 12881 case STYLE_BORDER: 12882 case STYLE_TEXT_COLOR: 12883 case GENERAL_DISPLAY: 12884 return window.getComputedStyle(element); 12885 12886 default: 12887 return {}; 12888 } 12889} 12890 12891var pxValueRegex = /px/; 12892 12893var getFilterDefaults = function getFilterDefaults(actionState, filters) { 12894 return filters.reduce(function (result, filter) { 12895 if (result[filter.type] == null) { 12896 result[filter.type] = filterDefaults[filter.type]; 12897 } 12898 12899 return result; 12900 }, actionState || {}); 12901}; 12902 12903function getInstanceOrigin( // $FlowFixMe 12904element) { 12905 var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12906 var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 12907 var // $FlowFixMe 12908 actionItem = arguments.length > 3 ? arguments[3] : undefined; 12909 var // $FlowFixMe 12910 elementApi = arguments.length > 4 ? arguments[4] : undefined;
12911 var getStyle = elementApi.getStyle; 12912 var actionTypeId = actionItem.actionTypeId, 12913 config = actionItem.config; 12914 12915 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12916 // $FlowFixMe 12917 return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); 12918 } 12919 12920 switch (actionTypeId) { 12921 case TRANSFORM_MOVE: 12922 case TRANSFORM_SCALE: 12923 case TRANSFORM_ROTATE: 12924 case TRANSFORM_SKEW: 12925 return refState[actionTypeId] || transformDefaults[actionTypeId]; 12926 12927 case STYLE_FILTER: 12928 return getFilterDefaults(refState[actionTypeId], actionItem.config.filters); 12929 12930 case STYLE_OPACITY: 12931 return { 12932 value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) 12933 }; 12934 12935 case STYLE_SIZE: 12936 { 12937 var inlineWidth = getStyle(element, WIDTH); 12938 var inlineHeight = getStyle(element, HEIGHT); 12939 var widthValue; 12940 var heightValue; // When destination unit is 'AUTO', ensure origin values are in px 12941 12942 if (config.widthUnit === AUTO) { 12943 widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); 12944 } else { 12945 widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); 12946 } 12947 12948 if (config.heightUnit === AUTO) { 12949 heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); 12950 } else { 12951 heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); 12952 } 12953 12954 return { 12955 widthValue: widthValue, 12956 heightValue: heightValue 12957 }; 12958 } 12959 12960 case STYLE_BACKGROUND_COLOR: 12961 case STYLE_BORDER: 12962 case STYLE_TEXT_COLOR: 12963 return parseColor({ 12964 element: element, 12965 actionTypeId: actionTypeId, 12966 computedStyle: computedStyle, 12967 getStyle: getStyle 12968 }); 12969 12970 case GENERAL_DISPLAY: 12971 return { 12972 value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) 12973 }; 12974 12975 case OBJECT_VALUE: 12976 return refState[actionTypeId] || { 12977 value: 0 12978 }; 12979 12980 default: 12981 return; 12982 } 12983} 12984 12985var reduceFilters = function reduceFilters(result, filter) { 12986 if (filter) { 12987 result[filter.type] = filter.value || 0; 12988 } 12989 12990 return result; 12991}; // $FlowFixMe 12992 12993 12994var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { 12995 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12996 // $FlowFixMe 12997 return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); 12998 } 12999 13000 switch (actionTypeId) { 13001 case STYLE_FILTER: 13002 { 13003 var filter = (0, _findLast["default"])(config.filters, function (_ref6) { 13004 var type = _ref6.type; 13005 return type === key; 13006 }); 13007 return filter ? filter.value : 0; 13008 } 13009 13010 default: 13011 return config[key]; 13012 } 13013}; // $FlowFixMe 13014 13015 13016exports.getItemConfigByKey = getItemConfigByKey; 13017 13018function getDestinationValues(_ref7) { 13019 var element = _ref7.element, 13020 actionItem = _ref7.actionItem, 13021 elementApi = _ref7.elementApi; 13022 var actionTypeId = actionItem.actionTypeId; 13023 13024 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13025 // $FlowFixMe 13026 return (0, _IX2VanillaPlugins.getPluginDestination)(actionTypeId)(actionItem.config); 13027 } 13028 13029 switch (actionTypeId) { 13030 case TRANSFORM_MOVE: 13031 case TRANSFORM_SCALE: 13032 case TRANSFORM_ROTATE: 13033 case TRANSFORM_SKEW: 13034 { 13035 var _actionItem$config = actionItem.config, 13036 xValue = _actionItem$config.xValue, 13037 yValue = _actionItem$config.yValue, 13038 zValue = _actionItem$config.zValue; 13039 return { 13040 xValue: xValue, 13041 yValue: yValue, 13042 zValue: zValue 13043 }; 13044 } 13045 13046 case STYLE_SIZE: 13047 {
13048 var getStyle = elementApi.getStyle, 13049 setStyle = elementApi.setStyle, 13050 getProperty = elementApi.getProperty; 13051 var _actionItem$config2 = actionItem.config, 13052 widthUnit = _actionItem$config2.widthUnit, 13053 heightUnit = _actionItem$config2.heightUnit; 13054 var _actionItem$config3 = actionItem.config, 13055 widthValue = _actionItem$config3.widthValue, 13056 heightValue = _actionItem$config3.heightValue; 13057 13058 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13059 return { 13060 widthValue: widthValue, 13061 heightValue: heightValue 13062 }; 13063 } 13064 13065 if (widthUnit === AUTO) { 13066 var temp = getStyle(element, WIDTH); 13067 setStyle(element, WIDTH, ''); 13068 widthValue = getProperty(element, 'offsetWidth'); 13069 setStyle(element, WIDTH, temp); 13070 } 13071 13072 if (heightUnit === AUTO) { 13073 var _temp = getStyle(element, HEIGHT); 13074 13075 setStyle(element, HEIGHT, ''); 13076 heightValue = getProperty(element, 'offsetHeight'); 13077 setStyle(element, HEIGHT, _temp); 13078 } 13079 13080 return { 13081 widthValue: widthValue, 13082 heightValue: heightValue 13083 }; 13084 } 13085 13086 case STYLE_BACKGROUND_COLOR: 13087 case STYLE_BORDER: 13088 case STYLE_TEXT_COLOR: 13089 { 13090 var _actionItem$config4 = actionItem.config, 13091 rValue = _actionItem$config4.rValue, 13092 gValue = _actionItem$config4.gValue, 13093 bValue = _actionItem$config4.bValue, 13094 aValue = _actionItem$config4.aValue; 13095 return { 13096 rValue: rValue, 13097 gValue: gValue, 13098 bValue: bValue, 13099 aValue: aValue 13100 }; 13101 } 13102 13103 case STYLE_FILTER: 13104 { 13105 return actionItem.config.filters.reduce(reduceFilters, {}); 13106 } 13107 13108 default: 13109 { 13110 var value = actionItem.config.value; 13111 return { 13112 value: value 13113 }; 13114 } 13115 } 13116} // $FlowFixMe 13117 13118 13119function getRenderType(actionTypeId) { 13120 if (/^TRANSFORM_/.test(actionTypeId)) { 13121 return RENDER_TRANSFORM; 13122 } 13123 13124 if (/^STYLE_/.test(actionTypeId)) { 13125 return RENDER_STYLE; 13126 } 13127 13128 if (/^GENERAL_/.test(actionTypeId)) { 13129 return RENDER_GENERAL; 13130 } 13131 13132 if (/^PLUGIN_/.test(actionTypeId)) { 13133 return RENDER_PLUGIN; 13134 } 13135} // $FlowFixMe 13136 13137 13138function getStyleProp(renderType, actionTypeId) { 13139 return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; 13140} 13141 13142function renderHTMLElement( // $FlowFixMe 13143element, // $FlowFixMe 13144refState, // $FlowFixMe 13145actionState, // $FlowFixMe 13146eventId, // $FlowFixMe 13147actionItem, // $FlowFixMe 13148styleProp, // $FlowFixMe 13149elementApi, // $FlowFixMe 13150renderType, // $FlowFixMe 13151pluginInstance) { 13152 switch (renderType) { 13153 case RENDER_TRANSFORM: 13154 { 13155 return renderTransform(element, refState, actionState, actionItem, elementApi); 13156 } 13157 13158 case RENDER_STYLE: 13159 { 13160 return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); 13161 } 13162 13163 case RENDER_GENERAL: 13164 { 13165 return renderGeneral(element, actionItem, elementApi); 13166 } 13167 13168 case RENDER_PLUGIN: 13169 { 13170 var actionTypeId = actionItem.actionTypeId; 13171 13172 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13173 // $FlowFixMe 13174 return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); 13175 } 13176 } 13177 } 13178} 13179 13180var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ 13181 xValue: 0, 13182 yValue: 0, 13183 zValue: 0 13184})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ 13185 xValue: 1, 13186 yValue: 1, 13187 zValue: 1 13188})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ 13189 xValue: 0, 13190 yValue: 0, 13191 zValue: 0 13192})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ 13193 xValue: 0, 13194 yValue: 0 13195})), _transformDefaults); 13196var filterDefaults = Object.freeze({ 13197 blur: 0, 13198 'hue-rotate': 0, 13199 invert: 0, 13200 grayscale: 0, 13201 saturate: 100, 13202 sepia: 0, 13203 contrast: 100, 13204 brightness: 100 13205}); 13206 13207var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { 13208 var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref8) { 13209 var type = _ref8.type; 13210 return type === filterType; 13211 }); 13212 13213 if (filter && filter.unit) { 13214 return filter.unit; 13215 } 13216 13217 switch (filterType) { 13218 case 'blur': 13219 return 'px'; 13220 13221 case 'hue-rotate': 13222 return 'deg'; 13223 13224 default: 13225 return '%'; 13226 } 13227}; 13228 13229var transformKeys = Object.keys(transformDefaults); 13230 13231function renderTransform(element, refState, actionState, actionItem, elementApi) { 13232 var newTransform = transformKeys.map(function (actionTypeId) { 13233 var defaults = transformDefaults[actionTypeId]; 13234 13235 var _ref9 = refState[actionTypeId] || {}, 13236 _ref9$xValue = _ref9.xValue, 13237 xValue = _ref9$xValue === void 0 ? defaults.xValue : _ref9$xValue, 13238 _ref9$yValue = _ref9.yValue, 13239 yValue = _ref9$yValue === void 0 ? defaults.yValue : _ref9$yValue, 13240 _ref9$zValue = _ref9.zValue, 13241 zValue = _ref9$zValue === void 0 ? defaults.zValue : _ref9$zValue, 13242 _ref9$xUnit = _ref9.xUnit, 13243 xUnit = _ref9$xUnit === void 0 ? '' : _ref9$xUnit, 13244 _ref9$yUnit = _ref9.yUnit, 13245 yUnit = _ref9$yUnit === void 0 ? '' : _ref9$yUnit, 13246 _ref9$zUnit = _ref9.zUnit, 13247 zUnit = _ref9$zUnit === void 0 ? '' : _ref9$zUnit; 13248 13249 switch (actionTypeId) { 13250 case TRANSFORM_MOVE: 13251 return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13252 13253 case TRANSFORM_SCALE:
13254 return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13255 13256 case TRANSFORM_ROTATE: 13257 return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); 13258 13259 case TRANSFORM_SKEW: 13260 return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); 13261 13262 default: 13263 return ''; 13264 } 13265 }).join(' '); 13266 var setStyle = elementApi.setStyle; 13267 addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13268 setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d 13269 13270 if (hasDefined3dTransform(actionItem, actionState)) { 13271 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); 13272 } 13273} 13274 13275function renderFilter(element, actionState, actionItemConfig, elementApi) { 13276 var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { 13277 return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); 13278 }, ''); 13279 var setStyle = elementApi.setStyle; 13280 addWillChange(element, FILTER, elementApi); 13281 setStyle(element, FILTER, filterValue); 13282} 13283 13284function hasDefined3dTransform(_ref10, _ref11) { 13285 var actionTypeId = _ref10.actionTypeId; 13286 var xValue = _ref11.xValue, 13287 yValue = _ref11.yValue, 13288 zValue = _ref11.zValue; 13289 // TRANSLATE_Z 13290 return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z 13291 actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y 13292 actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); 13293} 13294 13295var paramCapture = '\\(([^)]+)\\)'; 13296var rgbValidRegex = /^rgb/; 13297var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); 13298 13299function getFirstMatch(regex, value) { 13300 var match = regex.exec(value); 13301 return match ? match[1] : ''; 13302} 13303 13304function parseColor(_ref12) { 13305 var element = _ref12.element, 13306 actionTypeId = _ref12.actionTypeId, 13307 computedStyle = _ref12.computedStyle, 13308 getStyle = _ref12.getStyle; 13309 var prop = colorStyleProps[actionTypeId]; 13310 var inlineValue = getStyle(element, prop); 13311 var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; 13312 var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); 13313 return { 13314 rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), 13315 gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), 13316 bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), 13317 aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) 13318 }; 13319} 13320
13321function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { 13322 var setStyle = elementApi.setStyle; 13323 var actionTypeId = actionItem.actionTypeId, 13324 config = actionItem.config; 13325 13326 switch (actionTypeId) { 13327 case STYLE_SIZE: 13328 { 13329 var _actionItem$config5 = actionItem.config, 13330 _actionItem$config5$w = _actionItem$config5.widthUnit, 13331 widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, 13332 _actionItem$config5$h = _actionItem$config5.heightUnit, 13333 heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; 13334 var widthValue = actionState.widthValue, 13335 heightValue = actionState.heightValue; 13336 13337 if (widthValue !== undefined) { 13338 if (widthUnit === AUTO) { 13339 widthUnit = 'px'; 13340 } 13341 13342 addWillChange(element, WIDTH, elementApi); 13343 setStyle(element, WIDTH, widthValue + widthUnit); 13344 } 13345 13346 if (heightValue !== undefined) { 13347 if (heightUnit === AUTO) { 13348 heightUnit = 'px'; 13349 } 13350 13351 addWillChange(element, HEIGHT, elementApi); 13352 setStyle(element, HEIGHT, heightValue + heightUnit); 13353 } 13354 13355 break; 13356 } 13357 13358 case STYLE_FILTER: 13359 { 13360 renderFilter(element, actionState, config, elementApi); 13361 break; 13362 } 13363 13364 case STYLE_BACKGROUND_COLOR: 13365 case STYLE_BORDER: 13366 case STYLE_TEXT_COLOR: 13367 { 13368 var prop = colorStyleProps[actionTypeId]; 13369 var rValue = Math.round(actionState.rValue); 13370 var gValue = Math.round(actionState.gValue); 13371 var bValue = Math.round(actionState.bValue); 13372 var aValue = actionState.aValue; 13373 addWillChange(element, prop, elementApi); 13374 setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); 13375 break; 13376 } 13377 13378 default: 13379 { 13380 var _config$unit = config.unit, 13381 unit = _config$unit === void 0 ? '' : _config$unit; 13382 addWillChange(element, styleProp, elementApi); 13383 setStyle(element, styleProp, actionState.value + unit); 13384 break; 13385 } 13386 } 13387} 13388 13389function renderGeneral(element, actionItem, elementApi) { 13390 var setStyle = elementApi.setStyle; 13391 13392 switch (actionItem.actionTypeId) { 13393 case GENERAL_DISPLAY: 13394 { 13395 var value = actionItem.config.value; 13396 13397 if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { 13398 setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); 13399 } else { 13400 setStyle(element, DISPLAY, value); 13401 } 13402 13403 return; 13404 } 13405 } 13406} 13407 13408function addWillChange(element, prop, elementApi) { 13409 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13410 return; 13411 } // $FlowFixMe 13412 13413
13414 var validProp = willChangeProps[prop]; 13415 13416 if (!validProp) { 13417 return; 13418 } 13419 13420 var getStyle = elementApi.getStyle, 13421 setStyle = elementApi.setStyle; 13422 var value = getStyle(element, WILL_CHANGE); 13423 13424 if (!value) { 13425 setStyle(element, WILL_CHANGE, validProp); 13426 return; 13427 } 13428 13429 var values = value.split(COMMA_DELIMITER).map(trim); 13430 13431 if (values.indexOf(validProp) === -1) { 13432 setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); 13433 } 13434} 13435 13436function removeWillChange(element, prop, elementApi) { 13437 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13438 return; 13439 } // $FlowFixMe 13440 13441 13442 var validProp = willChangeProps[prop]; 13443 13444 if (!validProp) { 13445 return; 13446 } 13447 13448 var getStyle = elementApi.getStyle, 13449 setStyle = elementApi.setStyle; 13450 var value = getStyle(element, WILL_CHANGE); 13451 13452 if (!value || value.indexOf(validProp) === -1) { 13453 return; 13454 } 13455 13456 setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { 13457 return v !== validProp; 13458 }).join(COMMA_DELIMITER)); 13459} // $FlowFixMe 13460 13461 13462function clearAllStyles(_ref13) { 13463 var store = _ref13.store, 13464 elementApi = _ref13.elementApi; 13465 13466 var _store$getState = store.getState(), 13467 ixData = _store$getState.ixData; 13468 13469 var _ixData$events = ixData.events, 13470 events = _ixData$events === void 0 ? {} : _ixData$events, 13471 _ixData$actionLists = ixData.actionLists, 13472 actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; 13473 Object.keys(events).forEach(function (eventId) { 13474 var event = events[eventId]; 13475 var config = event.action.config; 13476 var actionListId = config.actionListId; 13477 var actionList = actionLists[actionListId]; 13478 13479 if (actionList) { 13480 clearActionListStyles({ 13481 actionList: actionList, 13482 event: event, 13483 elementApi: elementApi 13484 }); 13485 } 13486 }); 13487 Object.keys(actionLists).forEach(function (actionListId) { 13488 clearActionListStyles({ 13489 actionList: actionLists[actionListId], 13490 elementApi: elementApi 13491 }); 13492 }); 13493} // $FlowFixMe 13494 13495 13496function clearActionListStyles(_ref14) { 13497 var _ref14$actionList = _ref14.actionList, 13498 actionList = _ref14$actionList === void 0 ? {} : _ref14$actionList, 13499 event = _ref14.event, 13500 elementApi = _ref14.elementApi; 13501 var actionItemGroups = actionList.actionItemGroups, 13502 continuousParameterGroups = actionList.continuousParameterGroups; 13503 actionItemGroups && actionItemGroups.forEach(function (actionGroup) { 13504 clearActionGroupStyles({ 13505 actionGroup: actionGroup, 13506 event: event, 13507 elementApi: elementApi 13508 }); 13509 }); 13510 continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { 13511 var continuousActionGroups = paramGroup.continuousActionGroups; 13512 continuousActionGroups.forEach(function (actionGroup) { 13513 clearActionGroupStyles({ 13514 actionGroup: actionGroup, 13515 event: event, 13516 elementApi: elementApi 13517 }); 13518 }); 13519 }); 13520} 13521 13522function clearActionGroupStyles(_ref15) { 13523 var actionGroup = _ref15.actionGroup, 13524 event = _ref15.event, 13525 elementApi = _ref15.elementApi; 13526 var actionItems = actionGroup.actionItems; 13527 actionItems.forEach(function (_ref16) { 13528 var actionTypeId = _ref16.actionTypeId, 13529 config = _ref16.config; 13530 var clearElement; 13531 13532 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13533 clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); 13534 } else { 13535 clearElement = processElementByType({ 13536 effect: clearStyleProp, 13537 actionTypeId: actionTypeId, 13538 elementApi: elementApi 13539 }); 13540 } 13541 13542 getAffectedElements({ 13543 config: config, 13544 event: event, 13545 elementApi: elementApi 13546 }
13546).forEach(clearElement); 13547 }); 13548} // $FlowFixMe 13549 13550 13551function cleanupHTMLElement(element, actionItem, elementApi) { 13552 var setStyle = elementApi.setStyle, 13553 getStyle = elementApi.getStyle; 13554 var actionTypeId = actionItem.actionTypeId; 13555 13556 if (actionTypeId === STYLE_SIZE) { 13557 var config = actionItem.config; 13558 13559 if (config.widthUnit === AUTO) { 13560 setStyle(element, WIDTH, ''); 13561 } 13562 13563 if (config.heightUnit === AUTO) { 13564 setStyle(element, HEIGHT, ''); 13565 } 13566 } 13567 13568 if (getStyle(element, WILL_CHANGE)) { 13569 processElementByType({ 13570 effect: removeWillChange, 13571 actionTypeId: actionTypeId, 13572 elementApi: elementApi 13573 })(element); 13574 } 13575} 13576 13577var processElementByType = function processElementByType(_ref17) { 13578 var effect = _ref17.effect, 13579 actionTypeId = _ref17.actionTypeId, 13580 elementApi = _ref17.elementApi; 13581 return function (element) { 13582 switch (actionTypeId) { 13583 case TRANSFORM_MOVE: 13584 case TRANSFORM_SCALE: 13585 case TRANSFORM_ROTATE: 13586 case TRANSFORM_SKEW: 13587 effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13588 break; 13589 13590 case STYLE_FILTER: 13591 effect(element, FILTER, elementApi); 13592 break; 13593 13594 case STYLE_OPACITY: 13595 effect(element, OPACITY, elementApi); 13596 break; 13597 13598 case STYLE_SIZE: 13599 effect(element, WIDTH, elementApi); 13600 effect(element, HEIGHT, elementApi); 13601 break; 13602 13603 case STYLE_BACKGROUND_COLOR: 13604 case STYLE_BORDER: 13605 case STYLE_TEXT_COLOR: 13606 effect(element, colorStyleProps[actionTypeId], elementApi); 13607 break; 13608 13609 case GENERAL_DISPLAY: 13610 effect(element, DISPLAY, elementApi); 13611 break; 13612 } 13613 }; 13614}; 13615 13616function clearStyleProp(element, prop, elementApi) { 13617 var setStyle = elementApi.setStyle; 13618 removeWillChange(element, prop, elementApi); 13619 setStyle(element, prop, ''); // Clear transform-style: preserve-3d 13620 13621 if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { 13622 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); 13623 } 13624} // $FlowFixMe 13625 13626 13627function getMaxDurationItemIndex(actionItems) { 13628 var maxDuration = 0; 13629 var resultIndex = 0; 13630 actionItems.forEach(function (actionItem, index) { 13631 var config = actionItem.config; 13632 var total = config.delay + config.duration; 13633 13634 if (total >= maxDuration) { 13635 maxDuration = total; 13636 resultIndex = index; 13637 } 13638 }); 13639 return resultIndex; 13640} // $FlowFixMe 13641 13642 13643function getActionListProgress(actionList, instance) { 13644 var actionItemGroups = actionList.actionItemGroups, 13645 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; 13646 var instanceItem = instance.actionItem, 13647 _instance$verboseTime = instance.verboseTimeElapsed, 13648 verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; 13649 var totalDuration = 0; 13650 var elapsedDuration = 0; 13651 actionItemGroups.forEach(function (group, index) { 13652 if (useFirstGroupAsInitialState && index === 0) { 13653 return; 13654 } 13655 13656 var actionItems = group.actionItems; 13657 var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; 13658 var config = carrierItem.config, 13659 actionTypeId = carrierItem.actionTypeId; 13660 13661 if (instanceItem.id === carrierItem.id) { 13662 elapsedDuration = totalDuration + verboseTimeElapsed; 13663 } 13664 13665 var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; 13666 totalDuration += config.delay + duration; 13667 }); 13668 return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; 13669} // $FlowFixMe 13670 13671 13672function reduceListToGroup(_ref18) { 13673 var actionList = _ref18.actionList, 13674 actionItemId = _ref18.actionItemId, 13675 rawData = _ref18.rawData; 13676 var actionItemGroups = actionList.actionItemGroups, 13677 continuousParameterGroups = actionList.continuousParameterGroups; 13678 var newActionItems = []; 13679 13680 var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { 13681 newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { 13682 delay: 0, 13683 duration: 0 13684 })); 13685 return actionItem.id === actionItemId; 13686 }; 13687 13688 actionItemGroups && actionItemGroups.some(function (_ref19) { 13689 var actionItems = _ref19.actionItems; 13690 return actionItems.some(takeItemUntilMatch); 13691 }); 13692 continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { 13693 var continuousActionGroups = paramGroup.continuousActionGroups; 13694 return continuousActionGroups.some(function (_ref20) { 13695 var actionItems = _ref20.actionItems; 13696 return actionItems.some(takeItemUntilMatch); 13697 }); 13698 }); 13699 return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { 13700 id: actionList.id, 13701 actionItemGroups: [{ 13702 actionItems: newActionItems 13703 }] 13704 })); 13705} // $FlowFixMe 13706 13707 13708function shouldNamespaceEventParameter(eventTypeId, _ref22) { 13709 var basedOn = _ref22.basedOn; 13710 return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; 13711} 13712 13713function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { 13714 var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; 13715 return namespacedParameterId; 13716} // $FlowFixMe 13717 13718 13719function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { 13720 // During design mode, current media query key does not exist 13721 if (mediaQueryKey == null) { 13722 return true; 13723 } 13724 13725 return mediaQueries.indexOf(mediaQueryKey) !== -1; 13726} // $FlowFixMe 13727 13728 13729function mediaQueriesEqual(listA, listB) { 13730 return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); 13731} // $FlowFixMe 13732 13733 13734function stringifyTarget(target) { 13735 if (typeof target === 'string') { 13736 return target; 13737 } 13738 13739 var _target$id = target.id, 13740 id = _target$id === void 0 ? '' : _target$id, 13741 _target$selector = target.selector, 13742 selector = _target$selector === void 0 ? '' : _target$selector, 13743 _target$useEventTarge = target.useEventTarget, 13744 useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; 13745 return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; 13746} 13747 13748/***/ }), 13749/* 250 */
vendor: 5,734 bytes, lines 13750-13960
13750/***/ (function(module, exports) { 13751 13752/** 13753 * Checks `value` to determine whether a default value should be returned in 13754 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 13755 * or `undefined`. 13756 * 13757 * @static 13758 * @memberOf _ 13759 * @since 4.14.0 13760 * @category Util 13761 * @param {*} value The value to check. 13762 * @param {*} defaultValue The default value. 13763 * @returns {*} Returns the resolved value. 13764 * @example 13765 * 13766 * _.defaultTo(1, 10); 13767 * // => 1 13768 * 13769 * _.defaultTo(undefined, 10); 13770 * // => 10 13771 */ 13772function defaultTo(value, defaultValue) { 13773 return (value == null || value !== value) ? defaultValue : value; 13774} 13775 13776module.exports = defaultTo; 13777 13778 13779/***/ }), 13780/* 251 */ 13781/***/ (function(module, exports, __webpack_require__) { 13782 13783var arrayReduce = __webpack_require__(252), 13784 baseEach = __webpack_require__(111), 13785 baseIteratee = __webpack_require__(7), 13786 baseReduce = __webpack_require__(256), 13787 isArray = __webpack_require__(1); 13788 13789/** 13790 * Reduces `collection` to a value which is the accumulated result of running 13791 * each element in `collection` thru `iteratee`, where each successive 13792 * invocation is supplied the return value of the previous. If `accumulator` 13793 * is not given, the first element of `collection` is used as the initial 13794 * value. The iteratee is invoked with four arguments: 13795 * (accumulator, value, index|key, collection). 13796 * 13797 * Many lodash methods are guarded to work as iteratees for methods like 13798 * `_.reduce`, `_.reduceRight`, and `_.transform`. 13799 * 13800 * The guarded methods are: 13801 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 13802 * and `sortBy` 13803 * 13804 * @static 13805 * @memberOf _ 13806 * @since 0.1.0 13807 * @category Collection 13808 * @param {Array|Object} collection The collection to iterate over. 13809 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 13810 * @param {*} [accumulator] The initial value. 13811 * @returns {*} Returns the accumulated value. 13812 * @see _.reduceRight 13813 * @example 13814 * 13815 * _.reduce([1, 2], function(sum, n) { 13816 * return sum + n; 13817 * }, 0); 13818 * // => 3 13819 * 13820 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 13821 * (result[value] || (result[value] = [])).push(key); 13822 * return result; 13823 * }, {}); 13824 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 13825 */ 13826function reduce(collection, iteratee, accumulator) { 13827 var func = isArray(collection) ? arrayReduce : baseReduce, 13828 initAccum = arguments.length < 3; 13829 13830 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 13831} 13832 13833module.exports = reduce; 13834 13835 13836/***/ }), 13837/* 252 */ 13838/***/ (function(module, exports) { 13839 13840/** 13841 * A specialized version of `_.reduce` for arrays without support for 13842 * iteratee shorthands. 13843 * 13844 * @private 13845 * @param {Array} [array] The array to iterate over. 13846 * @param {Function} iteratee The function invoked per iteration. 13847 * @param {*} [accumulator] The initial value. 13848 * @param {boolean} [initAccum] Specify using the first element of `array` as 13849 * the initial value. 13850 * @returns {*} Returns the accumulated value. 13851 */ 13852function arrayReduce(array, iteratee, accumulator, initAccum) { 13853 var index = -1, 13854 length = array == null ? 0 : array.length; 13855 13856 if (initAccum && length) { 13857 accumulator = array[++index]; 13858 } 13859 while (++index < length) { 13860 accumulator = iteratee(accumulator, array[index], index, array); 13861 } 13862 return accumulator; 13863} 13864 13865module.exports = arrayReduce; 13866 13867 13868/***/ }), 13869/* 253 */ 13870/***/ (function(module, exports, __webpack_require__) { 13871 13872var createBaseFor = __webpack_require__(254); 13873 13874/** 13875 * The base implementation of `baseForOwn` which iterates over `object` 13876 * properties returned by `keysFunc` and invokes `iteratee` for each property. 13877 * Iteratee functions may exit iteration early by explicitly returning `false`. 13878 * 13879 * @private 13880 * @param {Object} object The object to iterate over. 13881 * @param {Function} iteratee The function invoked per iteration. 13882 * @param {Function} keysFunc The function to get the keys of `object`. 13883 * @returns {Object} Returns `object`. 13884 */ 13885var baseFor = createBaseFor(); 13886 13887module.exports = baseFor; 13888 13889 13890/***/ }), 13891/* 254 */ 13892/***/ (function(module, exports) { 13893 13894/** 13895 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 13896 * 13897 * @private 13898 * @param {boolean} [fromRight] Specify iterating from right to left. 13899 * @returns {Function} Returns the new base function. 13900 */ 13901function createBaseFor(fromRight) { 13902 return function(object, iteratee, keysFunc) { 13903 var index = -1, 13904 iterable = Object(object), 13905 props = keysFunc(object), 13906 length = props.length; 13907 13908 while (length--) { 13909 var key = props[fromRight ? length : ++index]; 13910 if (iteratee(iterable[key], key, iterable) === false) { 13911 break; 13912 } 13913 } 13914 return object; 13915 }; 13916} 13917 13918module.exports = createBaseFor; 13919 13920 13921/***/ }), 13922/* 255 */ 13923/***/ (function(module, exports, __webpack_require__) { 13924 13925var isArrayLike = __webpack_require__(12); 13926 13927/** 13928 * Creates a `baseEach` or `baseEachRight` function. 13929 * 13930 * @private 13931 * @param {Function} eachFunc The function to iterate over a collection. 13932 * @param {boolean} [fromRight] Specify iterating from right to left. 13933 * @returns {Function} Returns the new base function. 13934 */ 13935function createBaseEach(eachFunc, fromRight) { 13936 return function(collection, iteratee) { 13937 if (collection == null) { 13938 return collection; 13939 } 13940 if (!isArrayLike(collection)) { 13941 return eachFunc(collection, iteratee); 13942 } 13943 var length = collection.length, 13944 index = fromRight ? length : -1, 13945 iterable = Object(collection); 13946 13947 while ((fromRight ? index-- : ++index < length)) { 13948 if (iteratee(iterable[index], index, iterable) === false) { 13949 break; 13950 } 13951 } 13952 return collection; 13953 }; 13954} 13955 13956module.exports = createBaseEach; 13957 13958 13959/***/ }), 13960/* 256 */
13961/***/ (function(module, exports) { 13962 13963/** 13964 * The base implementation of `_.reduce` and `_.reduceRight`, without support 13965 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 13966 * 13967 * @private 13968 * @param {Array|Object} collection The collection to iterate over. 13969 * @param {Function} iteratee The function invoked per iteration. 13970 * @param {*} accumulator The initial value. 13971 * @param {boolean} initAccum Specify using the first or last element of 13972 * `collection` as the initial value. 13973 * @param {Function} eachFunc The function to iterate over `collection`. 13974 * @returns {*} Returns the accumulated value. 13975 */ 13976function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 13977 eachFunc(collection, function(value, index, collection) { 13978 accumulator = initAccum 13979 ? (initAccum = false, value) 13980 : iteratee(accumulator, value, index, collection); 13981 }); 13982 return accumulator; 13983} 13984 13985module.exports = baseReduce; 13986 13987 13988/***/ }), 13989/* 257 */ 13990/***/ (function(module, exports, __webpack_require__) { 13991 13992var createFind = __webpack_require__(86), 13993 findLastIndex = __webpack_require__(258); 13994 13995/** 13996 * This method is like `_.find` except that it iterates over elements of 13997 * `collection` from right to left. 13998 * 13999 * @static 14000 * @memberOf _ 14001 * @since 2.0.0 14002 * @category Collection 14003 * @param {Array|Object} collection The collection to inspect. 14004 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14005 * @param {number} [fromIndex=collection.length-1] The index to search from. 14006 * @returns {*} Returns the matched element, else `undefined`. 14007 * @example 14008 * 14009 * _.findLast([1, 2, 3, 4], function(n) { 14010 * return n % 2 == 1; 14011 * }); 14012 * // => 3 14013 */ 14014var findLast = createFind(findLastIndex); 14015 14016module.exports = findLast; 14017 14018 14019/***/ }), 14020/* 258 */ 14021/***/ (function(module, exports, __webpack_require__) { 14022 14023var baseFindIndex = __webpack_require__(104), 14024 baseIteratee = __webpack_require__(7), 14025 toInteger = __webpack_require__(105); 14026 14027/* Built-in method references for those with the same name as other `lodash` methods. */ 14028var nativeMax = Math.max, 14029 nativeMin = Math.min; 14030 14031/** 14032 * This method is like `_.findIndex` except that it iterates over elements 14033 * of `collection` from right to left. 14034 * 14035 * @static 14036 * @memberOf _ 14037 * @since 2.0.0 14038 * @category Array 14039 * @param {Array} array The array to inspect. 14040 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14041 * @param {number} [fromIndex=array.length-1] The index to search from. 14042 * @returns {number} Returns the index of the found element, else `-1`. 14043 * @example 14044 * 14045 * var users = [ 14046 * { 'user': 'barney', 'active': true }, 14047 * { 'user': 'fred', 'active': false }, 14048 * { 'user': 'pebbles', 'active': false } 14049 * ]; 14050 * 14051 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 14052 * // => 2 14053 * 14054 * // The `_.matches` iteratee shorthand. 14055 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 14056 * // => 0 14057 * 14058 * // The `_.matchesProperty` iteratee shorthand. 14059 * _.findLastIndex(users, ['active', false]); 14060 * // => 2 14061 * 14062 * // The `_.property` iteratee shorthand. 14063 * _.findLastIndex(users, 'active'); 14064 * // => 0 14065 */ 14066function findLastIndex(array, predicate, fromIndex) { 14067 var length = array == null ? 0 : array.length; 14068 if (!length) { 14069 return -1; 14070 } 14071 var index = length - 1; 14072 if (fromIndex !== undefined) { 14073 index = toInteger(fromIndex); 14074 index = fromIndex < 0 14075 ? nativeMax(length + index, 0) 14076 : nativeMin(index, length - 1); 14077 } 14078 return baseFindIndex(array, baseIteratee(predicate, 3), index, true); 14079} 14080 14081module.exports = findLastIndex; 14082 14083 14084/***/ }), 14085/* 259 */ 14086/***/ (function(module, exports) { 14087 14088function _interopRequireDefault(obj) { 14089 return obj && obj.__esModule ? obj : { 14090 default: obj 14091 }; 14092} 14093 14094module.exports = _interopRequireDefault; 14095 14096/***/ }), 14097/* 260 */ 14098/***/ (function(module, exports, __webpack_require__) { 14099 14100"use strict"; 14101/** 14102 * Copyright (c) 2013-present, Facebook, Inc. 14103 * 14104 * This source code is licensed under the MIT license found in the 14105 * LICENSE file in the root directory of this source tree. 14106 * 14107 * @typechecks 14108 * 14109 */ 14110 14111/*eslint-disable no-self-compare */ 14112 14113 14114 14115var hasOwnProperty = Object.prototype.hasOwnProperty; 14116 14117/** 14118 * inlined Object.is polyfill to avoid requiring consumers ship their own 14119 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 14120 */ 14121function is(x, y) { 14122 // SameValue algorithm 14123 if (x === y) { 14124 // Steps 1-5, 7-10 14125 // Steps 6.b-6.e: +0 != -0 14126 // Added the nonzero y check to make Flow happy, but it is redundant 14127 return x !== 0 || y !== 0 || 1 / x === 1 / y; 14128 } else { 14129 // Step 6.a: NaN == NaN 14130 return x !== x && y !== y; 14131 } 14132} 14133 14134/**
14135 * Performs equality by iterating through keys on an object and returning false 14136 * when any key has values which are not strictly equal between the arguments. 14137 * Returns true when the values of all keys are strictly equal. 14138 */ 14139function shallowEqual(objA, objB) { 14140 if (is(objA, objB)) { 14141 return true; 14142 } 14143 14144 if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { 14145 return false; 14146 } 14147 14148 var keysA = Object.keys(objA); 14149 var keysB = Object.keys(objB); 14150 14151 if (keysA.length !== keysB.length) { 14152 return false; 14153 } 14154 14155 // Test for A's keys different from B. 14156 for (var i = 0; i < keysA.length; i++) { 14157 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 14158 return false; 14159 } 14160 } 14161 14162 return true; 14163} 14164 14165module.exports = shallowEqual; 14166 14167/***/ }), 14168/* 261 */ 14169/***/ (function(module, exports, __webpack_require__) { 14170 14171"use strict"; 14172 14173 14174Object.defineProperty(exports, "__esModule", { 14175 value: true 14176}); 14177exports.ixInstances = void 0; 14178 14179var _constants = __webpack_require__(2); 14180 14181var _shared = __webpack_require__(10); 14182 14183var _timm = __webpack_require__(19); 14184/* eslint-env browser */ 14185 14186 14187var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 14188 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 14189 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 14190 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 14191 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 14192 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 14193 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; 14194var _shared$IX2EasingUtil = _shared.IX2EasingUtils, 14195 optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, 14196 applyEasing = _shared$IX2EasingUtil.applyEasing, 14197 createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; 14198var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; 14199var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 14200 getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, 14201 getRenderType = _shared$IX2VanillaUti.getRenderType, 14202 getStyleProp = _shared$IX2VanillaUti.getStyleProp; 14203
14204var continuousInstance = function continuousInstance(state, action) { 14205 var lastPosition = state.position, 14206 parameterId = state.parameterId, 14207 actionGroups = state.actionGroups, 14208 destinationKeys = state.destinationKeys, 14209 smoothing = state.smoothing, 14210 restingValue = state.restingValue, 14211 actionTypeId = state.actionTypeId, 14212 customEasingFn = state.customEasingFn; 14213 var parameters = action.payload.parameters; 14214 var velocity = Math.max(1 - smoothing, 0.01); 14215 var paramValue = parameters[parameterId]; 14216 14217 if (paramValue == null) { 14218 velocity = 1; 14219 paramValue = restingValue; 14220 } 14221 14222 var nextPosition = Math.max(paramValue, 0) || 0; 14223 var positionDiff = optimizeFloat(nextPosition - lastPosition); 14224 var position = optimizeFloat(lastPosition + positionDiff * velocity); 14225 var keyframePosition = position * 100; 14226 14227 if (position === lastPosition && state.current) { 14228 return state; 14229 } 14230 14231 var fromActionItem; 14232 var toActionItem; 14233 var positionOffset; 14234 var positionRange; 14235 14236 for (var i = 0, length = actionGroups.length; i < length; i++) { 14237 var _actionGroups$i = actionGroups[i], 14238 keyframe = _actionGroups$i.keyframe, 14239 actionItems = _actionGroups$i.actionItems; 14240 14241 if (i === 0) { 14242 fromActionItem = actionItems[0]; 14243 } 14244 14245 if (keyframePosition >= keyframe) { 14246 fromActionItem = actionItems[0]; 14247 var nextGroup = actionGroups[i + 1]; 14248 var hasNextItem = nextGroup && keyframePosition !== keyframe; 14249 toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; 14250 14251 if (hasNextItem) { 14252 positionOffset = keyframe / 100; 14253 positionRange = (nextGroup.keyframe - keyframe) / 100; 14254 } 14255 } 14256 } 14257 14258 var current = {}; 14259 14260 if (fromActionItem && !toActionItem) { 14261 for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { 14262 var key = destinationKeys[_i]; 14263 current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); 14264 } 14265 } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { 14266 var localPosition = (position - positionOffset) / positionRange; 14267 var easing = fromActionItem.config.easing; 14268 var eased = applyEasing(easing, localPosition, customEasingFn); 14269 14270 for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { 14271 var _key = destinationKeys[_i2]; 14272 var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); 14273 var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe â toVal and fromVal could potentially be null, need to update type higher to determine number 14274 14275 var diff = toVal - fromVal; // $FlowFixMe 14276 14277 var value = diff * eased + fromVal; 14278 current[_key] = value; 14279 } 14280 } 14281 14282 return (0, _timm.merge)(state, { 14283 position: position, 14284 current: current 14285 }); 14286}; 14287 14288var timedInstance = function timedInstance(state, action) { 14289 var _state = state, 14290 active = _state.active, 14291 origin = _state.origin, 14292 start = _state.start, 14293 immediate = _state.immediate, 14294 renderType = _state.renderType, 14295 verbose = _state.verbose, 14296 actionItem = _state.actionItem, 14297 destination = _state.destination, 14298 destinationKeys = _state.destinationKeys, 14299 pluginDuration = _state.pluginDuration, 14300 instanceDelay = _state.instanceDelay, 14301 customEasingFn = _state.customEasingFn; 14302 var easing = actionItem.config.easing; 14303 var _actionItem$config = actionItem.config, 14304 duration = _actionItem$config.duration, 14305 delay = _actionItem$config.delay; 14306 14307 if (pluginDuration != null) { 14308 duration = pluginDuration; 14309 } 14310 14311 delay = instanceDelay != null ? instanceDelay : delay; 14312 14313 if (renderType === RENDER_GENERAL) { 14314 duration = 0; 14315 } else if (immediate) { 14316 duration = delay = 0; 14317 } 14318 14319 var now = action.payload.now; 14320 14321 if (active && origin) { 14322 var delta = now - (start + delay); 14323 14324 if (verbose) { 14325 var verboseDelta = now - start; 14326 var verboseDuration = duration + delay; 14327 var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); 14328 state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); 14329 } 14330 14331 if (delta < 0) { 14332 return state; 14333 } 14334 14335 var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); 14336 var eased = applyEasing(easing, position, customEasingFn); 14337 var newProps = {}; 14338 var current = null; 14339 14340 if (destinationKeys.length) { 14341 current = destinationKeys.reduce(function (result, key) { 14342 var destValue = destination[key]; 14343 var originVal = parseFloat(origin[key]) || 0; 14344 var diff = parseFloat(destValue) - originVal; 14345 var value = diff * eased + originVal; 14346 result[key] = value; 14347 return result; 14348 }, {}); 14349 } 14350 14351 newProps.current = current; 14352 newProps.position = position; 14353 14354 if (position === 1) { 14355 newProps.active = false;
14356 newProps.complete = true; 14357 } 14358 14359 return (0, _timm.merge)(state, newProps); 14360 } 14361 14362 return state; 14363}; 14364 14365var ixInstances = function ixInstances() { 14366 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 14367 var action = arguments.length > 1 ? arguments[1] : undefined; 14368 14369 switch (action.type) { 14370 case IX2_RAW_DATA_IMPORTED: 14371 { 14372 return action.payload.ixInstances || Object.freeze({}); 14373 } 14374 14375 case IX2_SESSION_STOPPED: 14376 { 14377 return Object.freeze({}); 14378 } 14379 14380 case IX2_INSTANCE_ADDED: 14381 { 14382 var _action$payload = action.payload, 14383 instanceId = _action$payload.instanceId, 14384 elementId = _action$payload.elementId, 14385 actionItem = _action$payload.actionItem, 14386 eventId = _action$payload.eventId, 14387 eventTarget = _action$payload.eventTarget, 14388 eventStateKey = _action$payload.eventStateKey, 14389 actionListId = _action$payload.actionListId, 14390 groupIndex = _action$payload.groupIndex, 14391 isCarrier = _action$payload.isCarrier, 14392 origin = _action$payload.origin, 14393 destination = _action$payload.destination, 14394 immediate = _action$payload.immediate, 14395 verbose = _action$payload.verbose, 14396 continuous = _action$payload.continuous, 14397 parameterId = _action$payload.parameterId, 14398 actionGroups = _action$payload.actionGroups, 14399 smoothing = _action$payload.smoothing, 14400 restingValue = _action$payload.restingValue, 14401 pluginInstance = _action$payload.pluginInstance, 14402 pluginDuration = _action$payload.pluginDuration, 14403 instanceDelay = _action$payload.instanceDelay; 14404 var actionTypeId = actionItem.actionTypeId; 14405 var renderType = getRenderType(actionTypeId); 14406 var styleProp = getStyleProp(renderType, actionTypeId); 14407 var destinationKeys = Object.keys(destination).filter(function (key) { 14408 return destination[key] != null; 14409 }); 14410 var easing = actionItem.config.easing; 14411 return (0, _timm.set)(state, instanceId, { 14412 id: instanceId, 14413 elementId: elementId, 14414 active: false, 14415 position: 0, 14416 start: 0, 14417 origin: origin, 14418 destination: destination, 14419 destinationKeys: destinationKeys, 14420 immediate: immediate, 14421 verbose: verbose, 14422 current: null, 14423 actionItem: actionItem, 14424 actionTypeId: actionTypeId, 14425 eventId: eventId, 14426 eventTarget: eventTarget, 14427 eventStateKey: eventStateKey, 14428 actionListId: actionListId, 14429 groupIndex: groupIndex, 14430 renderType: renderType, 14431 isCarrier: isCarrier, 14432 styleProp: styleProp, 14433 continuous: continuous, 14434 parameterId: parameterId, 14435 actionGroups: actionGroups, 14436 smoothing: smoothing, 14437 restingValue: restingValue, 14438 pluginInstance: pluginInstance, 14439 pluginDuration: pluginDuration, 14440 instanceDelay: instanceDelay, 14441 customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined 14442 }); 14443 } 14444 14445 case IX2_INSTANCE_STARTED: 14446 { 14447 var _action$payload2 = action.payload, 14448 _instanceId = _action$payload2.instanceId, 14449 time = _action$payload2.time; 14450 return (0, _timm.mergeIn)(state, [_instanceId], { 14451 active: true, 14452 complete: false, 14453 start: time 14454 }); 14455 } 14456 14457 case IX2_INSTANCE_REMOVED: 14458 { 14459 var _instanceId2 = action.payload.instanceId; 14460 14461 if (!state[_instanceId2]) { 14462 return state; 14463 } 14464 14465 var newState = {}; 14466 var keys = Object.keys(state); 14467 var length = keys.length; 14468 14469 for (var i = 0; i < length; i++) { 14470 var key = keys[i]; 14471 14472 if (key !== _instanceId2) { 14473 newState[key] = state[key]; 14474 } 14475 } 14476 14477 return newState; 14478 } 14479 14480 case IX2_ANIMATION_FRAME_CHANGED: 14481 { 14482 var _newState = state; 14483 14484 var _keys = Object.keys(state); 14485 14486 var _length3 = _keys.length; 14487 14488 for (var _i3 = 0; _i3 < _length3; _i3++) { 14489 var _key2 = _keys[_i3]; 14490 var instance = state[_key2]; 14491 var reducer = instance.continuous ? continuousInstance : timedInstance; 14492 _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); 14493 } 14494 14495 return _newState; 14496 } 14497 14498 default: 14499 { 14500 return state; 14501 } 14502 } 14503}; 14504 14505exports.ixInstances = ixInstances; 14506 14507/***/ }), 14508/* 262 */ 14509/***/ (function(module, exports, __webpack_require__) { 14510 14511"use strict"; 14512 14513 14514Object.defineProperty(exports, "__esModule", { 14515 value: true 14516}); 14517exports.ixParameters = void 0; 14518 14519var _constants = __webpack_require__(2); 14520 14521var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
14522 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 14523 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 14524 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore 14525 14526var ixParameters = function ixParameters() { 14527 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { 14528 /*mutable flat state*/ 14529 }; 14530 var action = arguments.length > 1 ? arguments[1] : undefined; 14531 14532 switch (action.type) { 14533 case IX2_RAW_DATA_IMPORTED: 14534 { 14535 return action.payload.ixParameters || { 14536 /*mutable flat state*/ 14537 }; 14538 } 14539 14540 case IX2_SESSION_STOPPED: 14541 { 14542 return { 14543 /*mutable flat state*/ 14544 }; 14545 } 14546 14547 case IX2_PARAMETER_CHANGED: 14548 { 14549 var _action$payload = action.payload, 14550 key = _action$payload.key, 14551 value = _action$payload.value; 14552 state[key] = value; 14553 return state; 14554 } 14555 14556 default: 14557 { 14558 return state; 14559 } 14560 } 14561}; 14562 14563exports.ixParameters = ixParameters; 14564 14565/***/ }), 14566/* 263 */ 14567/***/ (function(module, exports) { 14568 14569function _objectWithoutPropertiesLoose(source, excluded) { 14570 if (source == null) return {}; 14571 var target = {}; 14572 var sourceKeys = Object.keys(source); 14573 var key, i; 14574 14575 for (i = 0; i < sourceKeys.length; i++) { 14576 key = sourceKeys[i]; 14577 if (excluded.indexOf(key) >= 0) continue; 14578 target[key] = source[key]; 14579 } 14580 14581 return target; 14582} 14583 14584module.exports = _objectWithoutPropertiesLoose; 14585 14586/***/ }), 14587/* 264 */ 14588/***/ (function(module, exports, __webpack_require__) { 14589 14590var baseKeys = __webpack_require__(52), 14591 getTag = __webpack_require__(54), 14592 isArrayLike = __webpack_require__(12), 14593 isString = __webpack_require__(265), 14594 stringSize = __webpack_require__(266); 14595 14596/** `Object#toString` result references. */ 14597var mapTag = '[object Map]', 14598 setTag = '[object Set]'; 14599 14600/** 14601 * Gets the size of `collection` by returning its length for array-like 14602 * values or the number of own enumerable string keyed properties for objects. 14603 * 14604 * @static 14605 * @memberOf _ 14606 * @since 0.1.0 14607 * @category Collection 14608 * @param {Array|Object|string} collection The collection to inspect. 14609 * @returns {number} Returns the collection size. 14610 * @example 14611 * 14612 * _.size([1, 2, 3]); 14613 * // => 3 14614 * 14615 * _.size({ 'a': 1, 'b': 2 }); 14616 * // => 2 14617 * 14618 * _.size('pebbles'); 14619 * // => 7 14620 */ 14621function size(collection) { 14622 if (collection == null) { 14623 return 0; 14624 } 14625 if (isArrayLike(collection)) { 14626 return isString(collection) ? stringSize(collection) : collection.length; 14627 } 14628 var tag = getTag(collection); 14629 if (tag == mapTag || tag == setTag) { 14630 return collection.size; 14631 } 14632 return baseKeys(collection).length; 14633} 14634 14635module.exports = size; 14636 14637 14638/***/ }), 14639/* 265 */ 14640/***/ (function(module, exports, __webpack_require__) { 14641 14642var baseGetTag = __webpack_require__(11), 14643 isArray = __webpack_require__(1), 14644 isObjectLike = __webpack_require__(9); 14645 14646/** `Object#toString` result references. */ 14647var stringTag = '[object String]'; 14648 14649/** 14650 * Checks if `value` is classified as a `String` primitive or object. 14651 * 14652 * @static 14653 * @since 0.1.0 14654 * @memberOf _ 14655 * @category Lang 14656 * @param {*} value The value to check. 14657 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 14658 * @example 14659 * 14660 * _.isString('abc'); 14661 * // => true 14662 * 14663 * _.isString(1); 14664 * // => false 14665 */ 14666function isString(value) { 14667 return typeof value == 'string' || 14668 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 14669} 14670 14671module.exports = isString; 14672 14673 14674/***/ }), 14675/* 266 */ 14676/***/ (function(module, exports, __webpack_require__) { 14677 14678var asciiSize = __webpack_require__(267), 14679 hasUnicode = __webpack_require__(268), 14680 unicodeSize = __webpack_require__(269); 14681 14682/** 14683 * Gets the number of symbols in `string`. 14684 * 14685 * @private 14686 * @param {string} string The string to inspect. 14687 * @returns {number} Returns the string size. 14688 */ 14689function stringSize(string) { 14690 return hasUnicode(string) 14691 ? unicodeSize(string) 14692 : asciiSize(string); 14693} 14694 14695module.exports = stringSize; 14696 14697 14698/***/ }), 14699/* 267 */ 14700/***/ (function(module, exports, __webpack_require__) { 14701 14702var baseProperty = __webpack_require__(103); 14703 14704/** 14705 * Gets the size of an ASCII `string`. 14706 * 14707 * @private 14708 * @param {string} string The string inspect. 14709 * @returns {number} Returns the string size. 14710 */ 14711var asciiSize = baseProperty('length'); 14712 14713module.exports = asciiSize; 14714 14715 14716/***/ }), 14717/* 268 */
vendor: 2,920 bytes, lines 14718-14807
14718/***/ (function(module, exports) { 14719 14720/** Used to compose unicode character classes. */ 14721var rsAstralRange = '\\ud800-\\udfff', 14722 rsComboMarksRange = '\\u0300-\\u036f', 14723 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 14724 rsComboSymbolsRange = '\\u20d0-\\u20ff', 14725 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 14726 rsVarRange = '\\ufe0e\\ufe0f'; 14727 14728/** Used to compose unicode capture groups. */ 14729var rsZWJ = '\\u200d'; 14730 14731/** 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/). */ 14732var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 14733 14734/** 14735 * Checks if `string` contains Unicode symbols. 14736 * 14737 * @private 14738 * @param {string} string The string to inspect. 14739 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 14740 */ 14741function hasUnicode(string) { 14742 return reHasUnicode.test(string); 14743} 14744 14745module.exports = hasUnicode; 14746 14747 14748/***/ }), 14749/* 269 */ 14750/***/ (function(module, exports) { 14751 14752/** Used to compose unicode character classes. */ 14753var rsAstralRange = '\\ud800-\\udfff', 14754 rsComboMarksRange = '\\u0300-\\u036f', 14755 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 14756 rsComboSymbolsRange = '\\u20d0-\\u20ff', 14757 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 14758 rsVarRange = '\\ufe0e\\ufe0f'; 14759 14760/** Used to compose unicode capture groups. */ 14761var rsAstral = '[' + rsAstralRange + ']', 14762 rsCombo = '[' + rsComboRange + ']', 14763 rsFitz = '\\ud83c[\\udffb-\\udfff]', 14764 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 14765 rsNonAstral = '[^' + rsAstralRange + ']', 14766 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 14767 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 14768 rsZWJ = '\\u200d'; 14769 14770/** Used to compose unicode regexes. */ 14771var reOptMod = rsModifier + '?', 14772 rsOptVar = '[' + rsVarRange + ']?', 14773 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 14774 rsSeq = rsOptVar + reOptMod + rsOptJoin, 14775 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 14776 14777/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 14778var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 14779 14780/** 14781 * Gets the size of a Unicode `string`. 14782 * 14783 * @private 14784 * @param {string} string The string inspect. 14785 * @returns {number} Returns the string size. 14786 */ 14787function unicodeSize(string) { 14788 var result = reUnicode.lastIndex = 0; 14789 while (reUnicode.test(string)) { 14790 ++result; 14791 } 14792 return result; 14793} 14794 14795module.exports = unicodeSize; 14796 14797 14798/***/ }), 14799/* 270 */ 14800/***/ (function(module, exports, __webpack_require__) { 14801 14802var baseIteratee = __webpack_require__(7), 14803 negate = __webpack_require__(271), 14804 pickBy = __webpack_require__(272); 14805 14806/** 14807 * The opposite of `_.pickBy`;
14807 this method creates an object composed of 14808 * the own and inherited enumerable string keyed properties of `object` that 14809 * `predicate` doesn't return truthy for. The predicate is invoked with two 14810 * arguments: (value, key). 14811 * 14812 * @static 14813 * @memberOf _ 14814 * @since 4.0.0 14815 * @category Object 14816 * @param {Object} object The source object. 14817 * @param {Function} [predicate=_.identity] The function invoked per property. 14818 * @returns {Object} Returns the new object. 14819 * @example 14820 * 14821 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 14822 * 14823 * _.omitBy(object, _.isNumber); 14824 * // => { 'b': '2' } 14825 */ 14826function omitBy(object, predicate) { 14827 return pickBy(object, negate(baseIteratee(predicate))); 14828} 14829 14830module.exports = omitBy; 14831 14832 14833/***/ }), 14834/* 271 */ 14835/***/ (function(module, exports) { 14836 14837/** Error message constants. */ 14838var FUNC_ERROR_TEXT = 'Expected a function'; 14839 14840/** 14841 * Creates a function that negates the result of the predicate `func`. The 14842 * `func` predicate is invoked with the `this` binding and arguments of the 14843 * created function. 14844 * 14845 * @static 14846 * @memberOf _ 14847 * @since 3.0.0 14848 * @category Function 14849 * @param {Function} predicate The predicate to negate. 14850 * @returns {Function} Returns the new negated function. 14851 * @example 14852 * 14853 * function isEven(n) { 14854 * return n % 2 == 0; 14855 * } 14856 * 14857 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 14858 * // => [1, 3, 5] 14859 */ 14860function negate(predicate) { 14861 if (typeof predicate != 'function') { 14862 throw new TypeError(FUNC_ERROR_TEXT); 14863 } 14864 return function() { 14865 var args = arguments; 14866 switch (args.length) { 14867 case 0: return !predicate.call(this); 14868 case 1: return !predicate.call(this, args[0]); 14869 case 2: return !predicate.call(this, args[0], args[1]); 14870 case 3: return !predicate.call(this, args[0], args[1], args[2]); 14871 } 14872 return !predicate.apply(this, args); 14873 }; 14874} 14875 14876module.exports = negate; 14877 14878 14879/***/ }), 14880/* 272 */ 14881/***/ (function(module, exports, __webpack_require__) { 14882 14883var arrayMap = __webpack_require__(102), 14884 baseIteratee = __webpack_require__(7), 14885 basePickBy = __webpack_require__(273), 14886 getAllKeysIn = __webpack_require__(276); 14887 14888/**
14889 * Creates an object composed of the `object` properties `predicate` returns 14890 * truthy for. The predicate is invoked with two arguments: (value, key). 14891 * 14892 * @static 14893 * @memberOf _ 14894 * @since 4.0.0 14895 * @category Object 14896 * @param {Object} object The source object. 14897 * @param {Function} [predicate=_.identity] The function invoked per property. 14898 * @returns {Object} Returns the new object. 14899 * @example 14900 * 14901 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 14902 * 14903 * _.pickBy(object, _.isNumber); 14904 * // => { 'a': 1, 'c': 3 } 14905 */ 14906function pickBy(object, predicate) { 14907 if (object == null) { 14908 return {}; 14909 } 14910 var props = arrayMap(getAllKeysIn(object), function(prop) { 14911 return [prop]; 14912 }); 14913 predicate = baseIteratee(predicate); 14914 return basePickBy(object, props, function(value, path) { 14915 return predicate(value, path[0]); 14916 }); 14917} 14918 14919module.exports = pickBy; 14920 14921 14922/***/ }), 14923/* 273 */ 14924/***/ (function(module, exports, __webpack_require__) { 14925 14926var baseGet = __webpack_require__(56), 14927 baseSet = __webpack_require__(274), 14928 castPath = __webpack_require__(34); 14929 14930/** 14931 * The base implementation of `_.pickBy` without support for iteratee shorthands. 14932 * 14933 * @private 14934 * @param {Object} object The source object. 14935 * @param {string[]} paths The property paths to pick. 14936 * @param {Function} predicate The function invoked per property. 14937 * @returns {Object} Returns the new object. 14938 */ 14939function basePickBy(object, paths, predicate) { 14940 var index = -1, 14941 length = paths.length, 14942 result = {}; 14943 14944 while (++index < length) { 14945 var path = paths[index], 14946 value = baseGet(object, path); 14947 14948 if (predicate(value, path)) { 14949 baseSet(result, castPath(path, object), value); 14950 } 14951 } 14952 return result; 14953} 14954 14955module.exports = basePickBy; 14956 14957 14958/***/ }), 14959/* 274 */ 14960/***/ (function(module, exports, __webpack_require__) { 14961 14962var assignValue = __webpack_require__(275), 14963 castPath = __webpack_require__(34), 14964 isIndex = __webpack_require__(49), 14965 isObject = __webpack_require__(5), 14966 toKey = __webpack_require__(21); 14967 14968/** 14969 * The base implementation of `_.set`. 14970 * 14971 * @private 14972 * @param {Object} object The object to modify. 14973 * @param {Array|string} path The path of the property to set. 14974 * @param {*} value The value to set. 14975 * @param {Function} [customizer] The function to customize path creation. 14976 * @returns {Object} Returns `object`. 14977 */ 14978function baseSet(object, path, value, customizer) { 14979 if (!isObject(object)) { 14980 return object; 14981 } 14982 path = castPath(path, object); 14983 14984 var index = -1, 14985 length = path.length, 14986 lastIndex = length - 1, 14987 nested = object; 14988 14989 while (nested != null && ++index < length) { 14990 var key = toKey(path[index]), 14991 newValue = value; 14992 14993 if (key === '__proto__' || key === 'constructor' || key === 'prototype') { 14994 return object; 14995 } 14996 14997 if (index != lastIndex) { 14998 var objValue = nested[key]; 14999 newValue = customizer ? customizer(objValue, key, nested) : undefined; 15000 if (newValue === undefined) { 15001 newValue = isObject(objValue) 15002 ? objValue 15003 : (isIndex(path[index + 1]) ? [] : {}); 15004 } 15005 } 15006 assignValue(nested, key, newValue); 15007 nested = nested[key]; 15008 } 15009 return object; 15010} 15011 15012module.exports = baseSet; 15013 15014 15015/***/ }), 15016/* 275 */ 15017/***/ (function(module, exports, __webpack_require__) { 15018 15019var baseAssignValue = __webpack_require__(115), 15020 eq = __webpack_require__(44); 15021 15022/** Used for built-in method references. */ 15023var objectProto = Object.prototype; 15024 15025/** Used to check objects for own properties. */ 15026var hasOwnProperty = objectProto.hasOwnProperty; 15027 15028/** 15029 * Assigns `value` to `key` of `object` if the existing value is not equivalent 15030 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 15031 * for equality comparisons. 15032 * 15033 * @private 15034 * @param {Object} object The object to modify. 15035 * @param {string} key The key of the property to assign. 15036 * @param {*} value The value to assign. 15037 */ 15038function assignValue(object, key, value) { 15039 var objValue = object[key]; 15040 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 15041 (value === undefined && !(key in object))) { 15042 baseAssignValue(object, key, value); 15043 } 15044} 15045 15046module.exports = assignValue; 15047 15048 15049/***/ }), 15050/* 276 */ 15051/***/ (function(module, exports, __webpack_require__) { 15052 15053var baseGetAllKeys = __webpack_require__(93), 15054 getSymbolsIn = __webpack_require__(277), 15055 keysIn = __webpack_require__(279); 15056 15057/** 15058 * Creates an array of own and inherited enumerable property names and 15059 * symbols of `object`. 15060 * 15061 * @private 15062 * @param {Object} object The object to query. 15063 * @returns {Array} Returns the array of property names and symbols. 15064 */ 15065function getAllKeysIn(object) { 15066 return baseGetAllKeys(object, keysIn, getSymbolsIn); 15067} 15068 15069module.exports = getAllKeysIn; 15070 15071 15072/***/ }), 15073/* 277 */ 15074/***/ (function(module, exports, __webpack_require__) { 15075 15076var arrayPush = __webpack_require__(47), 15077 getPrototype = __webpack_require__(278), 15078 getSymbols = __webpack_require__(94), 15079 stubArray = __webpack_require__(95); 15080 15081/* Built-in method references for those with the same name as other `lodash` methods. */ 15082var nativeGetSymbols = Object.getOwnPropertySymbols; 15083 15084/** 15085 * Creates an array of the own and inherited enumerable symbols of `object`. 15086 * 15087 * @private 15088 * @param {Object} object The object to query. 15089 * @returns {Array} Returns the array of symbols. 15090 */ 15091var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 15092 var result = []; 15093 while (object) {
vendor: 8,844 bytes, lines 15094-15452
15094 arrayPush(result, getSymbols(object)); 15095 object = getPrototype(object); 15096 } 15097 return result; 15098}; 15099 15100module.exports = getSymbolsIn; 15101 15102 15103/***/ }), 15104/* 278 */ 15105/***/ (function(module, exports, __webpack_require__) { 15106 15107var overArg = __webpack_require__(98); 15108 15109/** Built-in value references. */ 15110var getPrototype = overArg(Object.getPrototypeOf, Object); 15111 15112module.exports = getPrototype; 15113 15114 15115/***/ }), 15116/* 279 */ 15117/***/ (function(module, exports, __webpack_require__) { 15118 15119var arrayLikeKeys = __webpack_require__(96), 15120 baseKeysIn = __webpack_require__(280), 15121 isArrayLike = __webpack_require__(12); 15122 15123/** 15124 * Creates an array of the own and inherited enumerable property names of `object`. 15125 * 15126 * **Note:** Non-object values are coerced to objects. 15127 * 15128 * @static 15129 * @memberOf _ 15130 * @since 3.0.0 15131 * @category Object 15132 * @param {Object} object The object to query. 15133 * @returns {Array} Returns the array of property names. 15134 * @example 15135 * 15136 * function Foo() { 15137 * this.a = 1; 15138 * this.b = 2; 15139 * } 15140 * 15141 * Foo.prototype.c = 3; 15142 * 15143 * _.keysIn(new Foo); 15144 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 15145 */ 15146function keysIn(object) { 15147 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 15148} 15149 15150module.exports = keysIn; 15151 15152 15153/***/ }), 15154/* 280 */ 15155/***/ (function(module, exports, __webpack_require__) { 15156 15157var isObject = __webpack_require__(5), 15158 isPrototype = __webpack_require__(53), 15159 nativeKeysIn = __webpack_require__(281); 15160 15161/** Used for built-in method references. */ 15162var objectProto = Object.prototype; 15163 15164/** Used to check objects for own properties. */ 15165var hasOwnProperty = objectProto.hasOwnProperty; 15166 15167/** 15168 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 15169 * 15170 * @private 15171 * @param {Object} object The object to query. 15172 * @returns {Array} Returns the array of property names. 15173 */ 15174function baseKeysIn(object) { 15175 if (!isObject(object)) { 15176 return nativeKeysIn(object); 15177 } 15178 var isProto = isPrototype(object), 15179 result = []; 15180 15181 for (var key in object) { 15182 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 15183 result.push(key); 15184 } 15185 } 15186 return result; 15187} 15188 15189module.exports = baseKeysIn; 15190 15191 15192/***/ }), 15193/* 281 */ 15194/***/ (function(module, exports) { 15195 15196/** 15197 * This function is like 15198 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 15199 * except that it includes inherited enumerable properties. 15200 * 15201 * @private 15202 * @param {Object} object The object to query. 15203 * @returns {Array} Returns the array of property names. 15204 */ 15205function nativeKeysIn(object) { 15206 var result = []; 15207 if (object != null) { 15208 for (var key in Object(object)) { 15209 result.push(key); 15210 } 15211 } 15212 return result; 15213} 15214 15215module.exports = nativeKeysIn; 15216 15217 15218/***/ }), 15219/* 282 */ 15220/***/ (function(module, exports, __webpack_require__) { 15221 15222var baseKeys = __webpack_require__(52), 15223 getTag = __webpack_require__(54), 15224 isArguments = __webpack_require__(33), 15225 isArray = __webpack_require__(1), 15226 isArrayLike = __webpack_require__(12), 15227 isBuffer = __webpack_require__(48), 15228 isPrototype = __webpack_require__(53), 15229 isTypedArray = __webpack_require__(50); 15230 15231/** `Object#toString` result references. */ 15232var mapTag = '[object Map]', 15233 setTag = '[object Set]'; 15234 15235/** Used for built-in method references. */ 15236var objectProto = Object.prototype; 15237 15238/** Used to check objects for own properties. */ 15239var hasOwnProperty = objectProto.hasOwnProperty; 15240 15241/** 15242 * Checks if `value` is an empty object, collection, map, or set. 15243 * 15244 * Objects are considered empty if they have no own enumerable string keyed 15245 * properties. 15246 * 15247 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 15248 * jQuery-like collections are considered empty if they have a `length` of `0`. 15249 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 15250 * 15251 * @static 15252 * @memberOf _ 15253 * @since 0.1.0 15254 * @category Lang 15255 * @param {*} value The value to check. 15256 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 15257 * @example 15258 * 15259 * _.isEmpty(null); 15260 * // => true 15261 * 15262 * _.isEmpty(true); 15263 * // => true 15264 * 15265 * _.isEmpty(1); 15266 * // => true 15267 * 15268 * _.isEmpty([1, 2, 3]); 15269 * // => false 15270 * 15271 * _.isEmpty({ 'a': 1 }); 15272 * // => false 15273 */ 15274function isEmpty(value) { 15275 if (value == null) { 15276 return true; 15277 } 15278 if (isArrayLike(value) && 15279 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 15280 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 15281 return !value.length; 15282 } 15283 var tag = getTag(value); 15284 if (tag == mapTag || tag == setTag) { 15285 return !value.size; 15286 } 15287 if (isPrototype(value)) { 15288 return !baseKeys(value).length; 15289 } 15290 for (var key in value) { 15291 if (hasOwnProperty.call(value, key)) { 15292 return false; 15293 } 15294 } 15295 return true; 15296} 15297 15298module.exports = isEmpty; 15299 15300 15301/***/ }), 15302/* 283 */ 15303/***/ (function(module, exports, __webpack_require__) { 15304 15305var baseAssignValue = __webpack_require__(115), 15306 baseForOwn = __webpack_require__(112), 15307 baseIteratee = __webpack_require__(7); 15308 15309/** 15310 * Creates an object with the same keys as `object` and values generated 15311 * by running each own enumerable string keyed property of `object` thru 15312 * `iteratee`. The iteratee is invoked with three arguments: 15313 * (value, key, object). 15314 * 15315 * @static 15316 * @memberOf _ 15317 * @since 2.4.0 15318 * @category Object 15319 * @param {Object} object The object to iterate over. 15320 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15321 * @returns {Object} Returns the new mapped object. 15322 * @see _.mapKeys 15323 * @example 15324 * 15325 * var users = { 15326 * 'fred': { 'user': 'fred', 'age': 40 }, 15327 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 15328 * }; 15329 * 15330 * _.mapValues(users, function(o) { return o.age; }); 15331 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15332 * 15333 * // The `_.property` iteratee shorthand. 15334 * _.mapValues(users, 'age'); 15335 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15336 */ 15337function mapValues(object, iteratee) { 15338 var result = {}; 15339 iteratee = baseIteratee(iteratee, 3); 15340 15341 baseForOwn(object, function(value, key, object) { 15342 baseAssignValue(result, key, iteratee(value, key, object)); 15343 }); 15344 return result; 15345} 15346 15347module.exports = mapValues; 15348 15349 15350/***/ }), 15351/* 284 */ 15352/***/ (function(module, exports, __webpack_require__) { 15353 15354var arrayEach = __webpack_require__(285), 15355 baseEach = __webpack_require__(111), 15356 castFunction = __webpack_require__(286), 15357 isArray = __webpack_require__(1); 15358 15359/** 15360 * Iterates over elements of `collection` and invokes `iteratee` for each element. 15361 * The iteratee is invoked with three arguments: (value, index|key, collection). 15362 * Iteratee functions may exit iteration early by explicitly returning `false`. 15363 * 15364 * **Note:** As with other "Collections" methods, objects with a "length" 15365 * property are iterated like arrays. To avoid this behavior use `_.forIn` 15366 * or `_.forOwn` for object iteration. 15367 * 15368 * @static 15369 * @memberOf _ 15370 * @since 0.1.0 15371 * @alias each 15372 * @category Collection 15373 * @param {Array|Object} collection The collection to iterate over. 15374 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15375 * @returns {Array|Object} Returns `collection`. 15376 * @see _.forEachRight 15377 * @example 15378 * 15379 * _.forEach([1, 2], function(value) { 15380 * console.log(value); 15381 * }); 15382 * // => Logs `1` then `2`. 15383 * 15384 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 15385 * console.log(key); 15386 * }); 15387 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 15388 */ 15389function forEach(collection, iteratee) { 15390 var func = isArray(collection) ? arrayEach : baseEach; 15391 return func(collection, castFunction(iteratee)); 15392} 15393 15394module.exports = forEach; 15395 15396 15397/***/ }), 15398/* 285 */ 15399/***/ (function(module, exports) { 15400 15401/** 15402 * A specialized version of `_.forEach` for arrays without support for 15403 * iteratee shorthands. 15404 * 15405 * @private 15406 * @param {Array} [array] The array to iterate over. 15407 * @param {Function} iteratee The function invoked per iteration. 15408 * @returns {Array} Returns `array`. 15409 */ 15410function arrayEach(array, iteratee) { 15411 var index = -1, 15412 length = array == null ? 0 : array.length; 15413 15414 while (++index < length) { 15415 if (iteratee(array[index], index, array) === false) { 15416 break; 15417 } 15418 } 15419 return array; 15420} 15421 15422module.exports = arrayEach; 15423 15424 15425/***/ }), 15426/* 286 */ 15427/***/ (function(module, exports, __webpack_require__) { 15428 15429var identity = __webpack_require__(58); 15430 15431/** 15432 * Casts `value` to `identity` if it's not a function. 15433 * 15434 * @private 15435 * @param {*} value The value to inspect. 15436 * @returns {Function} Returns cast function. 15437 */ 15438function castFunction(value) { 15439 return typeof value == 'function' ? value : identity; 15440} 15441 15442module.exports = castFunction; 15443 15444 15445/***/ }), 15446/* 287 */ 15447/***/ (function(module, exports, __webpack_require__) { 15448 15449var debounce = __webpack_require__(288), 15450 isObject = __webpack_require__(5); 15451 15452/** Error message constants. */
vendor: 9,976 bytes, lines 15453-15767
15453var FUNC_ERROR_TEXT = 'Expected a function'; 15454 15455/** 15456 * Creates a throttled function that only invokes `func` at most once per 15457 * every `wait` milliseconds. The throttled function comes with a `cancel` 15458 * method to cancel delayed `func` invocations and a `flush` method to 15459 * immediately invoke them. Provide `options` to indicate whether `func` 15460 * should be invoked on the leading and/or trailing edge of the `wait` 15461 * timeout. The `func` is invoked with the last arguments provided to the 15462 * throttled function. Subsequent calls to the throttled function return the 15463 * result of the last `func` invocation. 15464 * 15465 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15466 * invoked on the trailing edge of the timeout only if the throttled function 15467 * is invoked more than once during the `wait` timeout. 15468 * 15469 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15470 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15471 * 15472 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15473 * for details over the differences between `_.throttle` and `_.debounce`. 15474 * 15475 * @static 15476 * @memberOf _ 15477 * @since 0.1.0 15478 * @category Function 15479 * @param {Function} func The function to throttle. 15480 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 15481 * @param {Object} [options={}] The options object. 15482 * @param {boolean} [options.leading=true] 15483 * Specify invoking on the leading edge of the timeout. 15484 * @param {boolean} [options.trailing=true] 15485 * Specify invoking on the trailing edge of the timeout. 15486 * @returns {Function} Returns the new throttled function. 15487 * @example 15488 * 15489 * // Avoid excessively updating the position while scrolling. 15490 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 15491 * 15492 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 15493 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 15494 * jQuery(element).on('click', throttled); 15495 * 15496 * // Cancel the trailing throttled invocation. 15497 * jQuery(window).on('popstate', throttled.cancel); 15498 */ 15499function throttle(func, wait, options) { 15500 var leading = true, 15501 trailing = true; 15502 15503 if (typeof func != 'function') { 15504 throw new TypeError(FUNC_ERROR_TEXT); 15505 } 15506 if (isObject(options)) { 15507 leading = 'leading' in options ? !!options.leading : leading; 15508 trailing = 'trailing' in options ? !!options.trailing : trailing; 15509 } 15510 return debounce(func, wait, { 15511 'leading': leading, 15512 'maxWait': wait, 15513 'trailing': trailing 15514 }); 15515} 15516 15517module.exports = throttle; 15518 15519 15520/***/ }), 15521/* 288 */ 15522/***/ (function(module, exports, __webpack_require__) { 15523 15524var isObject = __webpack_require__(5), 15525 now = __webpack_require__(289), 15526 toNumber = __webpack_require__(59); 15527 15528/** Error message constants. */ 15529var FUNC_ERROR_TEXT = 'Expected a function'; 15530 15531/* Built-in method references for those with the same name as other `lodash` methods. */ 15532var nativeMax = Math.max, 15533 nativeMin = Math.min; 15534 15535/** 15536 * Creates a debounced function that delays invoking `func` until after `wait` 15537 * milliseconds have elapsed since the last time the debounced function was 15538 * invoked. The debounced function comes with a `cancel` method to cancel 15539 * delayed `func` invocations and a `flush` method to immediately invoke them. 15540 * Provide `options` to indicate whether `func` should be invoked on the 15541 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 15542 * with the last arguments provided to the debounced function. Subsequent 15543 * calls to the debounced function return the result of the last `func` 15544 * invocation. 15545 * 15546 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15547 * invoked on the trailing edge of the timeout only if the debounced function 15548 * is invoked more than once during the `wait` timeout. 15549 * 15550 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15551 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15552 * 15553 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15554 * for details over the differences between `_.debounce` and `_.throttle`. 15555 * 15556 * @static 15557 * @memberOf _ 15558 * @since 0.1.0 15559 * @category Function 15560 * @param {Function} func The function to debounce. 15561 * @param {number} [wait=0] The number of milliseconds to delay. 15562 * @param {Object} [options={}] The options object. 15563 * @param {boolean} [options.leading=false] 15564 * Specify invoking on the leading edge of the timeout. 15565 * @param {number} [options.maxWait] 15566 * The maximum time `func` is allowed to be delayed before it's invoked. 15567 * @param {boolean} [options.trailing=true] 15568 * Specify invoking on the trailing edge of the timeout. 15569 * @returns {Function} Returns the new debounced function. 15570 * @example 15571 * 15572 * // Avoid costly calculations while the window size is in flux. 15573 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 15574 * 15575 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 15576 * jQuery(element).on('click', _.debounce(sendMail, 300, { 15577 * 'leading': true, 15578 * 'trailing': false 15579 * })); 15580 * 15581 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 15582 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 15583 * var source = new EventSource('/stream'); 15584 * jQuery(source).on('message', debounced); 15585 * 15586 * // Cancel the trailing debounced invocation. 15587 * jQuery(window).on('popstate', debounced.cancel); 15588 */ 15589function debounce(func, wait, options) { 15590 var lastArgs, 15591 lastThis, 15592 maxWait, 15593 result, 15594 timerId, 15595 lastCallTime, 15596 lastInvokeTime = 0, 15597 leading = false, 15598 maxing = false, 15599 trailing = true; 15600 15601 if (typeof func != 'function') { 15602 throw new TypeError(FUNC_ERROR_TEXT); 15603 } 15604 wait = toNumber(wait) || 0; 15605 if (isObject(options)) { 15606 leading = !!options.leading; 15607 maxing = 'maxWait' in options; 15608 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 15609 trailing = 'trailing' in options ? !!options.trailing : trailing; 15610 } 15611 15612 function invokeFunc(time) { 15613 var args = lastArgs, 15614 thisArg = lastThis; 15615 15616 lastArgs = lastThis = undefined; 15617 lastInvokeTime = time; 15618 result = func.apply(thisArg, args); 15619 return result; 15620 } 15621 15622 function leadingEdge(time) { 15623 // Reset any `maxWait` timer. 15624 lastInvokeTime = time; 15625 // Start the timer for the trailing edge. 15626 timerId = setTimeout(timerExpired, wait); 15627 // Invoke the leading edge. 15628 return leading ? invokeFunc(time) : result; 15629 } 15630 15631 function remainingWait(time) { 15632 var timeSinceLastCall = time - lastCallTime, 15633 timeSinceLastInvoke = time - lastInvokeTime, 15634 timeWaiting = wait - timeSinceLastCall; 15635 15636 return maxing 15637 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 15638 : timeWaiting; 15639 } 15640 15641 function shouldInvoke(time) { 15642 var timeSinceLastCall = time - lastCallTime, 15643 timeSinceLastInvoke = time - lastInvokeTime; 15644 15645 // Either this is the first call, activity has stopped and we're at the 15646 // trailing edge, the system time has gone backwards and we're treating 15647 // it as the trailing edge, or we've hit the `maxWait` limit. 15648 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 15649 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 15650 } 15651 15652 function timerExpired() { 15653 var time = now(); 15654 if (shouldInvoke(time)) { 15655 return trailingEdge(time); 15656 } 15657 // Restart the timer. 15658 timerId = setTimeout(timerExpired, remainingWait(time)); 15659 } 15660 15661 function trailingEdge(time) { 15662 timerId = undefined; 15663 15664 // Only invoke if we have `lastArgs` which means `func` has been 15665 // debounced at least once. 15666 if (trailing && lastArgs) { 15667 return invokeFunc(time); 15668 } 15669 lastArgs = lastThis = undefined; 15670 return result; 15671 } 15672 15673 function cancel() { 15674 if (timerId !== undefined) { 15675 clearTimeout(timerId); 15676 } 15677 lastInvokeTime = 0; 15678 lastArgs = lastCallTime = lastThis = timerId = undefined; 15679 } 15680 15681 function flush() { 15682 return timerId === undefined ? result : trailingEdge(now()); 15683 } 15684 15685 function debounced() { 15686 var time = now(), 15687 isInvoking = shouldInvoke(time); 15688 15689 lastArgs = arguments; 15690 lastThis = this; 15691 lastCallTime = time; 15692 15693 if (isInvoking) { 15694 if (timerId === undefined) { 15695 return leadingEdge(lastCallTime); 15696 } 15697 if (maxing) { 15698 // Handle invocations in a tight loop. 15699 clearTimeout(timerId); 15700 timerId = setTimeout(timerExpired, wait); 15701 return invokeFunc(lastCallTime); 15702 } 15703 } 15704 if (timerId === undefined) { 15705 timerId = setTimeout(timerExpired, wait); 15706 } 15707 return result; 15708 } 15709 debounced.cancel = cancel; 15710 debounced.flush = flush; 15711 return debounced; 15712} 15713 15714module.exports = debounce; 15715 15716 15717/***/ }), 15718/* 289 */ 15719/***/ (function(module, exports, __webpack_require__) { 15720 15721var root = __webpack_require__(4); 15722 15723/** 15724 * Gets the timestamp of the number of milliseconds that have elapsed since 15725 * the Unix epoch (1 January 1970 00:00:00 UTC). 15726 * 15727 * @static 15728 * @memberOf _ 15729 * @since 2.4.0 15730 * @category Date 15731 * @returns {number} Returns the timestamp. 15732 * @example 15733 * 15734 * _.defer(function(stamp) { 15735 * console.log(_.now() - stamp); 15736 * }, _.now()); 15737 * // => Logs the number of milliseconds it took for the deferred invocation. 15738 */ 15739var now = function() { 15740 return root.Date.now(); 15741}; 15742 15743module.exports = now; 15744 15745 15746/***/ }), 15747/* 290 */ 15748/***/ (function(module, exports, __webpack_require__) { 15749 15750"use strict"; 15751 15752 15753var _interopRequireDefault = __webpack_require__(0); 15754 15755var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 15756 15757Object.defineProperty(exports, "__esModule", { 15758 value: true 15759}); 15760exports.setStyle = setStyle; 15761exports.getStyle = getStyle; 15762exports.getProperty = getProperty; 15763exports.matchSelector = matchSelector; 15764exports.getQuerySelector = getQuerySelector; 15765exports.getValidDocument = getValidDocument; 15766exports.queryDocument = queryDocument; 15767exports.elementContains = elementContains;
15768exports.isSiblingNode = isSiblingNode; 15769exports.getChildElements = getChildElements; 15770exports.getSiblingElements = getSiblingElements; 15771exports.getRefType = getRefType; 15772exports.getClosestElement = void 0; 15773 15774var _shared = __webpack_require__(10); 15775 15776var _constants = __webpack_require__(2); 15777/* eslint-env browser */ 15778 15779 15780var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; 15781var _constants$IX2EngineC = _constants.IX2EngineConstants, 15782 IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, 15783 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 15784 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 15785 WF_PAGE = _constants$IX2EngineC.WF_PAGE; 15786 15787function setStyle(element, prop, value) { 15788 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15789 element.style[prop] = value; 15790} 15791 15792function getStyle(element, prop) { 15793 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15794 return element.style[prop]; 15795} 15796 15797function getProperty(element, prop) { 15798 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15799 return element[prop]; 15800} 15801 15802function matchSelector(selector) { 15803 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 15804 return function (element) { 15805 return element[ELEMENT_MATCHES](selector); 15806 }; 15807} 15808 15809function getQuerySelector(_ref) { 15810 var id = _ref.id, 15811 selector = _ref.selector; 15812 15813 if (id) { 15814 var nodeId = id; 15815 15816 if (id.indexOf(IX2_ID_DELIMITER) !== -1) { 15817 var pair = id.split(IX2_ID_DELIMITER); 15818 var pageId = pair[0]; 15819 nodeId = pair[1]; // Short circuit query if we're on the wrong page 15820 // $FlowIgnore â if documentElement is null crash 15821 15822 if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { 15823 return null; 15824 } 15825 } 15826 15827 return "[data-w-id^=\"".concat(nodeId, "\"]"); 15828 } 15829 15830 return selector; 15831} 15832 15833function getValidDocument(pageId) { 15834 if (pageId == null || // $FlowIgnore â if documentElement is null crash 15835 pageId === document.documentElement.getAttribute(WF_PAGE)) { 15836 return document; 15837 } 15838 15839 return null; 15840} 15841 15842function queryDocument(baseSelector, descendantSelector) { 15843 return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); 15844} 15845 15846function elementContains(parent, child) { 15847 return parent.contains(child); 15848} 15849 15850function isSiblingNode(a, b) { 15851 return a !== b && a.parentNode === b.parentNode; 15852} 15853 15854function getChildElements(sourceElements) { 15855 var childElements = []; 15856 15857 for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { 15858 var children = sourceElements[i].children; 15859 var childCount = children.length; 15860 15861 if (!childCount) { 15862 continue; 15863 } 15864 15865 for (var j = 0; j < childCount; j++) { 15866 childElements.push(children[j]); 15867 } 15868 } 15869 15870 return childElements; 15871} // $FlowFixMe 15872 15873 15874function getSiblingElements() { 15875 var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 15876 var elements = []; 15877 var parentCache = []; 15878 15879 for (var i = 0, length = sourceElements.length; i < length; i++) { 15880 var parentNode = sourceElements[i].parentNode; 15881 15882 if (!parentNode || !parentNode.children || !parentNode.children.length) { 15883 continue; 15884 } 15885 15886 if (parentCache.indexOf(parentNode) !== -1) { 15887 continue; 15888 } 15889 15890 parentCache.push(parentNode); 15891 var el = parentNode.firstElementChild; 15892 15893 while (el != null) { 15894 if (sourceElements.indexOf(el) === -1) { 15895 elements.push(el); 15896 } 15897 15898 el = el.nextElementSibling; 15899 } 15900 } 15901 15902 return elements; 15903} 15904 15905var getClosestElement = Element.prototype.closest ? function (element, selector) { 15906 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 15907 if (!document.documentElement.contains(element)) { 15908 return null; 15909 } 15910 15911 return element.closest(selector); 15912} : function (element, selector) { 15913 // $FlowIgnore â if documentElement is null crash 15914 if (!document.documentElement.contains(element)) { 15915 return null; 15916 } 15917 15918 var el = element; 15919 15920 do { 15921 // $FlowIgnore â if documentElement is null crash 15922 if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { 15923 return el; 15924 } 15925 15926 el = el.parentNode; 15927 } while (el != null); 15928 15929 return null; 15930}; 15931exports.getClosestElement = getClosestElement; 15932 15933function getRefType(ref) { 15934 if (ref != null && (0, _typeof2["default"])(ref) == 'object') { 15935 return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; 15936 } 15937 15938 return null; 15939} 15940 15941/***/ }), 15942/* 291 */ 15943/***/ (function(module, exports, __webpack_require__) { 15944 15945"use strict"; 15946 15947 15948var _interopRequireDefault2 = __webpack_require__(0); 15949 15950var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 15951 15952var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 15953 15954var _default2; 15955 15956var _interopRequireDefault = __webpack_require__(0); 15957 15958Object.defineProperty(exports, "__esModule", { 15959 value: true 15960}); 15961exports["default"] = void 0; 15962 15963var _extends2 = _interopRequireDefault(__webpack_require__(27)); 15964 15965var _flow = _interopRequireDefault(__webpack_require__(292)); 15966 15967var _get = _interopRequireDefault(__webpack_require__(55)); 15968 15969var _clamp = _interopRequireDefault(__webpack_require__(311)); 15970 15971var _constants = __webpack_require__(2); 15972 15973var _IX2VanillaEngine = __webpack_require__(114); 15974 15975var _IX2EngineActions = __webpack_require__(60); 15976 15977var _shared = __webpack_require__(10); 15978/* eslint-env browser */ 15979 15980 15981var _constants$EventTypeC = _constants.EventTypeConsts, 15982 MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, 15983 MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, 15984 MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, 15985 MOUSE_UP = _constants$EventTypeC.MOUSE_UP, 15986 MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, 15987 MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, 15988 DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, 15989 DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, 15990 SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, 15991 SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, 15992 TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, 15993 TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, 15994 NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, 15995 NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, 15996 MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, 15997 PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, 15998 SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW,
15999 SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, 16000 PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, 16001 SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, 16002 PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, 16003 ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, 16004 ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, 16005 PAGE_START = _constants$EventTypeC.PAGE_START, 16006 PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; 16007var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; 16008var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; 16009var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; 16010var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; 16011 16012var composableFilter = function composableFilter(predicate) { 16013 return function (options) { 16014 if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { 16015 return true; 16016 } 16017 16018 return options; 16019 }; 16020}; 16021 16022var isElement = composableFilter(function (_ref) { 16023 var element = _ref.element, 16024 nativeEvent = _ref.nativeEvent; 16025 return element === nativeEvent.target; 16026}); 16027var containsElement = composableFilter(function (_ref2) { 16028 var element = _ref2.element, 16029 nativeEvent = _ref2.nativeEvent; 16030 return element.contains(nativeEvent.target); 16031}); 16032var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); 16033 16034var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { 16035 if (autoStopEventId) { 16036 var _store$getState = store.getState(), 16037 ixData = _store$getState.ixData; 16038 16039 var events = ixData.events; 16040 var eventToStop = events[autoStopEventId]; 16041 16042 if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { 16043 return eventToStop; 16044 } 16045 } 16046 16047 return null; 16048}; 16049 16050var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { 16051 var store = _ref3.store, 16052 event = _ref3.event; 16053 var eventAction = event.action; 16054 var autoStopEventId = eventAction.config.autoStopEventId; 16055 return Boolean(getAutoStopEvent(store, autoStopEventId)); 16056}; 16057 16058var actionGroupCreator = function actionGroupCreator(_ref4, state) { 16059 var store = _ref4.store, 16060 event = _ref4.event, 16061 element = _ref4.element, 16062 eventStateKey = _ref4.eventStateKey; 16063 var eventAction = event.action, 16064 eventId = event.id; 16065 var _eventAction$config = eventAction.config, 16066 actionListId = _eventAction$config.actionListId, 16067 autoStopEventId = _eventAction$config.autoStopEventId; 16068 var eventToStop = getAutoStopEvent(store, autoStopEventId); 16069 16070 if (eventToStop) { 16071 (0, _IX2VanillaEngine.stopActionGroup)({ 16072 store: store, 16073 eventId: autoStopEventId, 16074 eventTarget: element, 16075 eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], 16076 actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') 16077 }); 16078 } 16079 16080 (0, _IX2VanillaEngine.stopActionGroup)({ 16081 store: store, 16082 eventId: eventId, 16083 eventTarget: element, 16084 eventStateKey: eventStateKey, 16085 actionListId: actionListId 16086 }); 16087 (0, _IX2VanillaEngine.startActionGroup)({ 16088 store: store, 16089 eventId: eventId, 16090 eventTarget: element, 16091 eventStateKey: eventStateKey, 16092 actionListId: actionListId 16093 }); 16094 return state; 16095}; // $FlowFixMe 16096 16097 16098var withFilter = function withFilter(filter, handler) { 16099 return function (options, state) { 16100 return (// $FlowFixMe 16101 filter(options, state) === true ? handler(options, state) : state 16102 ); 16103 }; 16104}; 16105 16106var baseActionGroupOptions = { 16107 handler: withFilter(isOrContainsElement, actionGroupCreator) 16108}; 16109var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { 16110 types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') 16111}); 16112var SCROLL_EVENT_TYPES = [{ 16113 target: window, 16114 types: 'resize orientationchange', 16115 throttle: true 16116}, { 16117 target: document, 16118 types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', 16119 throttle: true 16120}]; 16121var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; 16122var baseScrollActionGroupOptions = { 16123 types: SCROLL_EVENT_TYPES 16124}; 16125var AUTO_STOP_DISABLED_EVENTS = { 16126 PAGE_START: PAGE_START, 16127 PAGE_FINISH: PAGE_FINISH 16128}; 16129 16130var getDocumentState = function () { 16131 var supportOffset = window.pageXOffset !== undefined; 16132 var isCSS1Compat = document.compatMode === 'CSS1Compat'; 16133 var rootElement = isCSS1Compat ? document.documentElement : document.body; 16134 return function () { 16135 return { 16136 // $FlowFixMe 16137 scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, 16138 // $FlowFixMe 16139 scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, 16140 // required to remove elasticity in Safari scrolling. 16141 stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe 16142 supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe 16143 rootElement.scrollHeight - window.innerHeight), 16144 // $FlowFixMe 16145 scrollWidth: rootElement.scrollWidth, 16146 // $FlowFixMe 16147 scrollHeight: rootElement.scrollHeight, 16148 // $FlowFixMe 16149 clientWidth: rootElement.clientWidth, 16150 // $FlowFixMe 16151 clientHeight: rootElement.clientHeight, 16152 innerWidth: window.innerWidth, 16153 innerHeight: window.innerHeight 16154 }; 16155 }; 16156}(); 16157 16158var areBoxesIntersecting = function areBoxesIntersecting(a, b) { 16159 return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); 16160}; 16161 16162var isElementHovered = function isElementHovered(_ref5) { 16163 var element = _ref5.element, 16164 nativeEvent = _ref5.nativeEvent; 16165 var type = nativeEvent.type, 16166 target = nativeEvent.target, 16167 relatedTarget = nativeEvent.relatedTarget; 16168 var containsTarget = element.contains(target); 16169 16170 if (type === 'mouseover' && containsTarget) { 16171 return true; 16172 } 16173 16174 var containsRelated = element.contains(relatedTarget); 16175 16176 if (type === 'mouseout' && containsTarget && containsRelated) { 16177 return true; 16178 } 16179 16180 return false;
16181}; 16182 16183var isElementVisible = function isElementVisible(options) { 16184 var element = options.element, 16185 config = options.event.config; 16186 16187 var _getDocumentState = getDocumentState(), 16188 clientWidth = _getDocumentState.clientWidth, 16189 clientHeight = _getDocumentState.clientHeight; 16190 16191 var scrollOffsetValue = config.scrollOffsetValue; 16192 var scrollOffsetUnit = config.scrollOffsetUnit; 16193 var isPX = scrollOffsetUnit === 'PX'; 16194 var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; 16195 return areBoxesIntersecting(element.getBoundingClientRect(), { 16196 left: 0, 16197 top: offsetPadding, 16198 right: clientWidth, 16199 bottom: clientHeight - offsetPadding 16200 }); 16201}; 16202 16203var whenComponentActiveChange = function whenComponentActiveChange(handler) { 16204 return function (options, oldState) { 16205 var type = options.nativeEvent.type; // prettier-ignore 16206 16207 var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; 16208 var newState = (0, _extends2["default"])({}, oldState, { 16209 isActive: isActive 16210 }); 16211 16212 if (!oldState || newState.isActive !== oldState.isActive) { 16213 return handler(options, newState) || newState; 16214 } 16215 16216 return newState; 16217 }; 16218}; 16219 16220var whenElementHoverChange = function whenElementHoverChange(handler) { 16221 return function (options, oldState) { 16222 var newState = { 16223 elementHovered: isElementHovered(options) 16224 }; 16225 16226 if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { 16227 return handler(options, newState) || newState; 16228 } 16229 16230 return newState; 16231 }; 16232}; // $FlowFixMe 16233 16234 16235var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { 16236 return function (options, oldState) { 16237 var newState = (0, _extends2["default"])({}, oldState, { 16238 elementVisible: isElementVisible(options) 16239 }); 16240 16241 if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { 16242 return handler(options, newState) || newState; 16243 } 16244 16245 return newState; 16246 }; 16247}; // $FlowFixMe 16248 16249 16250var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { 16251 return function (options) { 16252 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 16253 16254 var _getDocumentState2 = getDocumentState(), 16255 scrollTop = _getDocumentState2.stiffScrollTop, 16256 scrollHeight = _getDocumentState2.scrollHeight, 16257 innerHeight = _getDocumentState2.innerHeight; 16258 16259 var _options$event = options.event, 16260 config = _options$event.config, 16261 eventTypeId = _options$event.eventTypeId; 16262 var scrollOffsetValue = config.scrollOffsetValue, 16263 scrollOffsetUnit = config.scrollOffsetUnit; 16264 var isPX = scrollOffsetUnit === 'PX'; 16265 var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. 16266 16267 var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change 16268 16269 if (oldState && oldState.percentTop === percentTop) { 16270 return oldState; 16271 } 16272 16273 var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; 16274 var scrollingDown; 16275 var scrollDirectionChanged; 16276 var anchorTop = 0; 16277 16278 if (oldState) { 16279 scrollingDown = percentTop > oldState.percentTop; 16280 scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; 16281 anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; 16282 } 16283 16284 var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; 16285 var newState = (0, _extends2["default"])({}, oldState, { 16286 percentTop: percentTop, 16287 inBounds: inBounds, 16288 anchorTop: anchorTop, 16289 scrollingDown: scrollingDown 16290 }); 16291 16292 if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { 16293 return handler(options, newState) || newState; 16294 } 16295 16296 return newState; 16297 }; 16298}; 16299 16300var pointIntersects = function pointIntersects(point, rect) { 16301 return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; 16302}; 16303 16304var whenPageLoadFinish = function whenPageLoadFinish(handler) { 16305 return function (options, oldState) { 16306 var newState = { 16307 finished: document.readyState === 'complete' 16308 }; 16309 16310 if (newState.finished && !(oldState && oldState.finshed)) { 16311 handler(options); 16312 } 16313 16314 return newState; 16315 }; 16316}; 16317 16318var whenPageLoadStart = function whenPageLoadStart(handler) { 16319 return function (options, oldState) { 16320 var newState = { 16321 started: true 16322 }; 16323 16324 if (!oldState) { 16325 handler(options); 16326 } 16327 16328 return newState; 16329 }; 16330}; 16331 16332var whenClickCountChange = function whenClickCountChange(handler) { 16333 return function (options) { 16334 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16335 clickCount: 0 16336 }; 16337 var newState = { 16338 clickCount: oldState.clickCount % 2 + 1 16339 }; 16340 16341 if (newState.clickCount !== oldState.clickCount) { 16342 return handler(options, newState) || newState; 16343 } 16344 16345 return newState; 16346 }; 16347}; 16348 16349var getComponentActiveOptions = function getComponentActiveOptions() { 16350 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16351 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16352 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16353 return state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16354 })) 16355 }); 16356}; 16357 16358var getComponentInactiveOptions = function getComponentInactiveOptions() { 16359 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16360 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16361 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16362 return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16363 })) 16364 }); 16365}; 16366 16367var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16368 handler: whenElementVisibiltyChange(function (options, state) { 16369 var elementVisible = state.elementVisible; 16370 var event = options.event, 16371 store = options.store; 16372 16373 var _store$getState2 = store.getState(), 16374 ixData = _store$getState2.ixData; 16375 16376 var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types 16377 // are registered. 16378 16379 if (!events[event.action.config.autoStopEventId] && state.triggered) { 16380 return state; 16381 } 16382 16383 if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { 16384 actionGroupCreator(options); 16385 return (0, _extends2["default"])({}, state, { 16386 triggered: true 16387 }); 16388 } else { 16389 return state; 16390 } 16391 }) 16392}); 16393var MOUSE_OUT_ROUND_THRESHOLD = 0.05; 16394 16395var _default = (_default2 = {}, (0, _defineProperty2["default"])(_default2, SLIDER_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, SLIDER_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_OPEN, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, DROPDOWN_CLOSE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, NAVBAR_OPEN, getComponentActiveOptions(false)), (0, _defineProperty2["default"])(_default2, NAVBAR_CLOSE, getComponentInactiveOptions(false)), (0, _defineProperty2["default"])(_default2, TAB_ACTIVE, getComponentActiveOptions()), (0, _defineProperty2["default"])(_default2, TAB_INACTIVE, getComponentInactiveOptions()), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_OPEN, { 16396 types: 'ecommerce-cart-open', 16397 handler: withFilter(isOrContainsElement, actionGroupCreator) 16398}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { 16399 types: 'ecommerce-cart-close', 16400 handler: withFilter(isOrContainsElement, actionGroupCreator) 16401}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { 16402 types: 'click', 16403 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { 16404 var clickCount = _ref6.clickCount; 16405 16406 if (hasAutoStopEvent(options)) { 16407 clickCount === 1 && actionGroupCreator(options); 16408 } else { 16409 actionGroupCreator(options); 16410 } 16411 })) 16412}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { 16413 types: 'click', 16414 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { 16415 var clickCount = _ref7.clickCount; 16416 16417 if (clickCount === 2) { 16418 actionGroupCreator(options); 16419 } 16420 })) 16421}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { 16422 types: 'mousedown' 16423})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { 16424 types: 'mouseup' 16425})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { 16426 types: MOUSE_OVER_OUT_TYPES, 16427 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16428 if (state.elementHovered) { 16429 actionGroupCreator(options); 16430 } 16431 })) 16432}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { 16433 types: MOUSE_OVER_OUT_TYPES, 16434 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16435 if (!state.elementHovered) { 16436 actionGroupCreator(options); 16437 } 16438 })) 16439}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { 16440 types: 'mousemove mouseout scroll', 16441 handler: function handler( // $FlowFixMe 16442 _ref8) { 16443 var store = _ref8.store, 16444 element = _ref8.element, 16445 eventConfig = _ref8.eventConfig, 16446 nativeEvent = _ref8.nativeEvent, 16447 eventStateKey = _ref8.eventStateKey; 16448 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16449 clientX: 0, 16450 clientY: 0, 16451 pageX: 0, 16452 pageY: 0 16453 }; 16454 var basedOn = eventConfig.basedOn, 16455 selectedAxis = eventConfig.selectedAxis, 16456 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16457 reverse = eventConfig.reverse, 16458 _eventConfig$restingS = eventConfig.restingState, 16459 restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; 16460 var _nativeEvent$clientX = nativeEvent.clientX, 16461 clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, 16462 _nativeEvent$clientY = nativeEvent.clientY, 16463 clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY,
16464 _nativeEvent$pageX = nativeEvent.pageX, 16465 pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, 16466 _nativeEvent$pageY = nativeEvent.pageY, 16467 pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; 16468 var isXAxis = selectedAxis === 'X_AXIS'; 16469 var isMouseOut = nativeEvent.type === 'mouseout'; 16470 var value = restingState / 100; 16471 var namespacedParameterId = continuousParameterGroupId; 16472 var elementHovered = false; 16473 16474 switch (basedOn) { 16475 case _constants.EventBasedOn.VIEWPORT: 16476 { 16477 value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; 16478 break; 16479 } 16480 16481 case _constants.EventBasedOn.PAGE: 16482 { 16483 var _getDocumentState3 = getDocumentState(), 16484 scrollLeft = _getDocumentState3.scrollLeft, 16485 scrollTop = _getDocumentState3.scrollTop, 16486 scrollWidth = _getDocumentState3.scrollWidth, 16487 scrollHeight = _getDocumentState3.scrollHeight; 16488 16489 value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; 16490 break; 16491 } 16492 16493 case _constants.EventBasedOn.ELEMENT: 16494 default: 16495 { 16496 namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 16497 var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target 16498 16499 if (isMouseEvent && isOrContainsElement({ 16500 element: element, 16501 nativeEvent: nativeEvent 16502 }) !== true) { 16503 break; 16504 } 16505 16506 var rect = element.getBoundingClientRect(); 16507 var left = rect.left, 16508 top = rect.top, 16509 width = rect.width, 16510 height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state 16511 // against the target element's rect 16512 16513 if (!isMouseEvent && !pointIntersects({ 16514 left: clientX, 16515 top: clientY 16516 }, rect)) { 16517 break; 16518 } 16519 16520 elementHovered = true; 16521 value = isXAxis ? (clientX - left) / width : (clientY - top) / height; 16522 break; 16523 } 16524 } // cover case where the event is a mouse out, but the value is not quite at 100% 16525 16526 16527 if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { 16528 value = Math.round(value); 16529 } // Only update based on element if the mouse is moving over or has just left the element 16530 16531 16532 if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe 16533 elementHovered !== state.elementHovered) { 16534 value = reverse ? 1 - value : value; 16535 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); 16536 } 16537 16538 return { 16539 elementHovered: elementHovered, 16540 clientX: clientX, 16541 clientY: clientY, 16542 pageX: pageX, 16543 pageY: pageY 16544 }; 16545 } 16546}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { 16547 types: SCROLL_EVENT_TYPES, 16548 // $FlowFixMe 16549 handler: function handler(_ref9) { 16550 var store = _ref9.store, 16551 eventConfig = _ref9.eventConfig; 16552 var continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16553 reverse = eventConfig.reverse; 16554 16555 var _getDocumentState4 = getDocumentState(), 16556 scrollTop = _getDocumentState4.scrollTop, 16557 scrollHeight = _getDocumentState4.scrollHeight, 16558 clientHeight = _getDocumentState4.clientHeight; 16559 16560 var value = scrollTop / (scrollHeight - clientHeight); 16561 value = reverse ? 1 - value : value; 16562 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16563 } 16564}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { 16565 types: SCROLL_EVENT_TYPES, 16566 handler: function handler( // $FlowFixMe 16567 _ref10) { 16568 var element = _ref10.element, 16569 store = _ref10.store, 16570 eventConfig = _ref10.eventConfig, 16571 eventStateKey = _ref10.eventStateKey; 16572 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16573 scrollPercent: 0 16574 }; 16575 16576 var _getDocumentState5 = getDocumentState(), 16577 scrollLeft = _getDocumentState5.scrollLeft, 16578 scrollTop = _getDocumentState5.scrollTop, 16579 scrollWidth = _getDocumentState5.scrollWidth, 16580 scrollHeight = _getDocumentState5.scrollHeight, 16581 visibleHeight = _getDocumentState5.clientHeight; 16582 16583 var basedOn = eventConfig.basedOn, 16584 selectedAxis = eventConfig.selectedAxis, 16585 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16586 startsEntering = eventConfig.startsEntering, 16587 startsExiting = eventConfig.startsExiting, 16588 addEndOffset = eventConfig.addEndOffset, 16589 addStartOffset = eventConfig.addStartOffset, 16590 _eventConfig$addOffse = eventConfig.addOffsetValue, 16591 addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, 16592 _eventConfig$endOffse = eventConfig.endOffsetValue, 16593 endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; 16594 var isXAxis = selectedAxis === 'X_AXIS'; 16595 16596 if (basedOn === _constants.EventBasedOn.VIEWPORT) { 16597 var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; 16598 16599 if (value !== state.scrollPercent) { 16600 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16601 } 16602 16603 return { 16604 scrollPercent: value 16605 }; 16606 } else { 16607 var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 16608 var elementRect = element.getBoundingClientRect(); 16609 var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; 16610 var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type 16611 16612 offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; 16613 offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; 16614 var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); 16615 var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; 16616 var offsetHeight = offsetElementBottom - offsetElementTop; 16617 var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); 16618 var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); 16619 var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; 16620 16621 if (fixedScrollPerc !== state.scrollPercent) { 16622 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); 16623 } 16624 16625 return { 16626 scrollPercent: fixedScrollPerc 16627 }; 16628 } 16629 } 16630}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_V
16630IEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16631 handler: whenScrollDirectionChange(function (options, state) { 16632 if (state.scrollingDown) { 16633 actionGroupCreator(options); 16634 } 16635 }) 16636})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16637 handler: whenScrollDirectionChange(function (options, state) { 16638 if (!state.scrollingDown) { 16639 actionGroupCreator(options); 16640 } 16641 }) 16642})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { 16643 types: 'readystatechange IX2_PAGE_UPDATE', 16644 handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) 16645}), (0, _defineProperty2["default"])(_default2, PAGE_START, { 16646 types: 'readystatechange IX2_PAGE_UPDATE', 16647 handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) 16648}), _default2); 16649 16650exports["default"] = _default; 16651 16652/***/ }), 16653/* 292 */ 16654/***/ (function(module, exports, __webpack_require__) { 16655
vendor: 4,744 bytes, lines 16656-16835
16656var createFlow = __webpack_require__(293); 16657 16658/** 16659 * Creates a function that returns the result of invoking the given functions 16660 * with the `this` binding of the created function, where each successive 16661 * invocation is supplied the return value of the previous. 16662 * 16663 * @static 16664 * @memberOf _ 16665 * @since 3.0.0 16666 * @category Util 16667 * @param {...(Function|Function[])} [funcs] The functions to invoke. 16668 * @returns {Function} Returns the new composite function. 16669 * @see _.flowRight 16670 * @example 16671 * 16672 * function square(n) { 16673 * return n * n; 16674 * } 16675 * 16676 * var addSquare = _.flow([_.add, square]); 16677 * addSquare(1, 2); 16678 * // => 9 16679 */ 16680var flow = createFlow(); 16681 16682module.exports = flow; 16683 16684 16685/***/ }), 16686/* 293 */ 16687/***/ (function(module, exports, __webpack_require__) { 16688 16689var LodashWrapper = __webpack_require__(61), 16690 flatRest = __webpack_require__(294), 16691 getData = __webpack_require__(118), 16692 getFuncName = __webpack_require__(119), 16693 isArray = __webpack_require__(1), 16694 isLaziable = __webpack_require__(307); 16695 16696/** Error message constants. */ 16697var FUNC_ERROR_TEXT = 'Expected a function'; 16698 16699/** Used to compose bitmasks for function metadata. */ 16700var WRAP_CURRY_FLAG = 8, 16701 WRAP_PARTIAL_FLAG = 32, 16702 WRAP_ARY_FLAG = 128, 16703 WRAP_REARG_FLAG = 256; 16704 16705/** 16706 * Creates a `_.flow` or `_.flowRight` function. 16707 * 16708 * @private 16709 * @param {boolean} [fromRight] Specify iterating from right to left. 16710 * @returns {Function} Returns the new flow function. 16711 */ 16712function createFlow(fromRight) { 16713 return flatRest(function(funcs) { 16714 var length = funcs.length, 16715 index = length, 16716 prereq = LodashWrapper.prototype.thru; 16717 16718 if (fromRight) { 16719 funcs.reverse(); 16720 } 16721 while (index--) { 16722 var func = funcs[index]; 16723 if (typeof func != 'function') { 16724 throw new TypeError(FUNC_ERROR_TEXT); 16725 } 16726 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 16727 var wrapper = new LodashWrapper([], true); 16728 } 16729 } 16730 index = wrapper ? index : length; 16731 while (++index < length) { 16732 func = funcs[index]; 16733 16734 var funcName = getFuncName(func), 16735 data = funcName == 'wrapper' ? getData(func) : undefined; 16736 16737 if (data && isLaziable(data[0]) && 16738 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 16739 !data[4].length && data[9] == 1 16740 ) { 16741 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 16742 } else { 16743 wrapper = (func.length == 1 && isLaziable(func)) 16744 ? wrapper[funcName]() 16745 : wrapper.thru(func); 16746 } 16747 } 16748 return function() { 16749 var args = arguments, 16750 value = args[0]; 16751 16752 if (wrapper && args.length == 1 && isArray(value)) { 16753 return wrapper.plant(value).value(); 16754 } 16755 var index = 0, 16756 result = length ? funcs[index].apply(this, args) : value; 16757 16758 while (++index < length) { 16759 result = funcs[index].call(this, result); 16760 } 16761 return result; 16762 }; 16763 }); 16764} 16765 16766module.exports = createFlow; 16767 16768 16769/***/ }), 16770/* 294 */ 16771/***/ (function(module, exports, __webpack_require__) { 16772 16773var flatten = __webpack_require__(295), 16774 overRest = __webpack_require__(298), 16775 setToString = __webpack_require__(300); 16776 16777/** 16778 * A specialized version of `baseRest` which flattens the rest array. 16779 * 16780 * @private 16781 * @param {Function} func The function to apply a rest parameter to. 16782 * @returns {Function} Returns the new function. 16783 */ 16784function flatRest(func) { 16785 return setToString(overRest(func, undefined, flatten), func + ''); 16786} 16787 16788module.exports = flatRest; 16789 16790 16791/***/ }), 16792/* 295 */ 16793/***/ (function(module, exports, __webpack_require__) { 16794 16795var baseFlatten = __webpack_require__(296); 16796 16797/** 16798 * Flattens `array` a single level deep. 16799 * 16800 * @static 16801 * @memberOf _ 16802 * @since 0.1.0 16803 * @category Array 16804 * @param {Array} array The array to flatten. 16805 * @returns {Array} Returns the new flattened array. 16806 * @example 16807 * 16808 * _.flatten([1, [2, [3, [4]], 5]]); 16809 * // => [1, 2, [3, [4]], 5] 16810 */ 16811function flatten(array) { 16812 var length = array == null ? 0 : array.length; 16813 return length ? baseFlatten(array, 1) : []; 16814} 16815 16816module.exports = flatten; 16817 16818 16819/***/ }), 16820/* 296 */ 16821/***/ (function(module, exports, __webpack_require__) { 16822 16823var arrayPush = __webpack_require__(47), 16824 isFlattenable = __webpack_require__(297); 16825 16826/** 16827 * The base implementation of `_.flatten` with support for restricting flattening. 16828 * 16829 * @private 16830 * @param {Array} array The array to flatten. 16831 * @param {number} depth The maximum recursion depth. 16832 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 16833 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 16834 * @param {Array} [result=[]] The initial result value. 16835 * @returns {Array} Returns the new flattened array.
vendor: 4,491 bytes, lines 16836-17007
16836 */ 16837function baseFlatten(array, depth, predicate, isStrict, result) { 16838 var index = -1, 16839 length = array.length; 16840 16841 predicate || (predicate = isFlattenable); 16842 result || (result = []); 16843 16844 while (++index < length) { 16845 var value = array[index]; 16846 if (depth > 0 && predicate(value)) { 16847 if (depth > 1) { 16848 // Recursively flatten arrays (susceptible to call stack limits). 16849 baseFlatten(value, depth - 1, predicate, isStrict, result); 16850 } else { 16851 arrayPush(result, value); 16852 } 16853 } else if (!isStrict) { 16854 result[result.length] = value; 16855 } 16856 } 16857 return result; 16858} 16859 16860module.exports = baseFlatten; 16861 16862 16863/***/ }), 16864/* 297 */ 16865/***/ (function(module, exports, __webpack_require__) { 16866 16867var Symbol = __webpack_require__(20), 16868 isArguments = __webpack_require__(33), 16869 isArray = __webpack_require__(1); 16870 16871/** Built-in value references. */ 16872var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; 16873 16874/** 16875 * Checks if `value` is a flattenable `arguments` object or array. 16876 * 16877 * @private 16878 * @param {*} value The value to check. 16879 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 16880 */ 16881function isFlattenable(value) { 16882 return isArray(value) || isArguments(value) || 16883 !!(spreadableSymbol && value && value[spreadableSymbol]); 16884} 16885 16886module.exports = isFlattenable; 16887 16888 16889/***/ }), 16890/* 298 */ 16891/***/ (function(module, exports, __webpack_require__) { 16892 16893var apply = __webpack_require__(299); 16894 16895/* Built-in method references for those with the same name as other `lodash` methods. */ 16896var nativeMax = Math.max; 16897 16898/** 16899 * A specialized version of `baseRest` which transforms the rest array. 16900 * 16901 * @private 16902 * @param {Function} func The function to apply a rest parameter to. 16903 * @param {number} [start=func.length-1] The start position of the rest parameter. 16904 * @param {Function} transform The rest array transform. 16905 * @returns {Function} Returns the new function. 16906 */ 16907function overRest(func, start, transform) { 16908 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 16909 return function() { 16910 var args = arguments, 16911 index = -1, 16912 length = nativeMax(args.length - start, 0), 16913 array = Array(length); 16914 16915 while (++index < length) { 16916 array[index] = args[start + index]; 16917 } 16918 index = -1; 16919 var otherArgs = Array(start + 1); 16920 while (++index < start) { 16921 otherArgs[index] = args[index]; 16922 } 16923 otherArgs[start] = transform(array); 16924 return apply(func, this, otherArgs); 16925 }; 16926} 16927 16928module.exports = overRest; 16929 16930 16931/***/ }), 16932/* 299 */ 16933/***/ (function(module, exports) { 16934 16935/** 16936 * A faster alternative to `Function#apply`, this function invokes `func` 16937 * with the `this` binding of `thisArg` and the arguments of `args`. 16938 * 16939 * @private 16940 * @param {Function} func The function to invoke. 16941 * @param {*} thisArg The `this` binding of `func`. 16942 * @param {Array} args The arguments to invoke `func` with. 16943 * @returns {*} Returns the result of `func`. 16944 */ 16945function apply(func, thisArg, args) { 16946 switch (args.length) { 16947 case 0: return func.call(thisArg); 16948 case 1: return func.call(thisArg, args[0]); 16949 case 2: return func.call(thisArg, args[0], args[1]); 16950 case 3: return func.call(thisArg, args[0], args[1], args[2]); 16951 } 16952 return func.apply(thisArg, args); 16953} 16954 16955module.exports = apply; 16956 16957 16958/***/ }), 16959/* 300 */ 16960/***/ (function(module, exports, __webpack_require__) { 16961 16962var baseSetToString = __webpack_require__(301), 16963 shortOut = __webpack_require__(303); 16964 16965/** 16966 * Sets the `toString` method of `func` to return `string`. 16967 * 16968 * @private 16969 * @param {Function} func The function to modify. 16970 * @param {Function} string The `toString` result. 16971 * @returns {Function} Returns `func`. 16972 */ 16973var setToString = shortOut(baseSetToString); 16974 16975module.exports = setToString; 16976 16977 16978/***/ }), 16979/* 301 */ 16980/***/ (function(module, exports, __webpack_require__) { 16981 16982var constant = __webpack_require__(302), 16983 defineProperty = __webpack_require__(116), 16984 identity = __webpack_require__(58); 16985 16986/** 16987 * The base implementation of `setToString` without support for hot loop shorting. 16988 * 16989 * @private 16990 * @param {Function} func The function to modify. 16991 * @param {Function} string The `toString` result. 16992 * @returns {Function} Returns `func`. 16993 */ 16994var baseSetToString = !defineProperty ? identity : function(func, string) { 16995 return defineProperty(func, 'toString', { 16996 'configurable': true, 16997 'enumerable': false, 16998 'value': constant(string), 16999 'writable': true 17000 }); 17001}; 17002 17003module.exports = baseSetToString; 17004 17005 17006/***/ }), 17007/* 302 */
vendor: 7,233 bytes, lines 17008-17241
17008/***/ (function(module, exports) { 17009 17010/** 17011 * Creates a function that returns `value`. 17012 * 17013 * @static 17014 * @memberOf _ 17015 * @since 2.4.0 17016 * @category Util 17017 * @param {*} value The value to return from the new function. 17018 * @returns {Function} Returns the new constant function. 17019 * @example 17020 * 17021 * var objects = _.times(2, _.constant({ 'a': 1 })); 17022 * 17023 * console.log(objects); 17024 * // => [{ 'a': 1 }, { 'a': 1 }] 17025 * 17026 * console.log(objects[0] === objects[1]); 17027 * // => true 17028 */ 17029function constant(value) { 17030 return function() { 17031 return value; 17032 }; 17033} 17034 17035module.exports = constant; 17036 17037 17038/***/ }), 17039/* 303 */ 17040/***/ (function(module, exports) { 17041 17042/** Used to detect hot functions by number of calls within a span of milliseconds. */ 17043var HOT_COUNT = 800, 17044 HOT_SPAN = 16; 17045 17046/* Built-in method references for those with the same name as other `lodash` methods. */ 17047var nativeNow = Date.now; 17048 17049/** 17050 * Creates a function that'll short out and invoke `identity` instead 17051 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 17052 * milliseconds. 17053 * 17054 * @private 17055 * @param {Function} func The function to restrict. 17056 * @returns {Function} Returns the new shortable function. 17057 */ 17058function shortOut(func) { 17059 var count = 0, 17060 lastCalled = 0; 17061 17062 return function() { 17063 var stamp = nativeNow(), 17064 remaining = HOT_SPAN - (stamp - lastCalled); 17065 17066 lastCalled = stamp; 17067 if (remaining > 0) { 17068 if (++count >= HOT_COUNT) { 17069 return arguments[0]; 17070 } 17071 } else { 17072 count = 0; 17073 } 17074 return func.apply(undefined, arguments); 17075 }; 17076} 17077 17078module.exports = shortOut; 17079 17080 17081/***/ }), 17082/* 304 */ 17083/***/ (function(module, exports, __webpack_require__) { 17084 17085var WeakMap = __webpack_require__(99); 17086 17087/** Used to store function metadata. */ 17088var metaMap = WeakMap && new WeakMap; 17089 17090module.exports = metaMap; 17091 17092 17093/***/ }), 17094/* 305 */ 17095/***/ (function(module, exports) { 17096 17097/** 17098 * This method returns `undefined`. 17099 * 17100 * @static 17101 * @memberOf _ 17102 * @since 2.3.0 17103 * @category Util 17104 * @example 17105 * 17106 * _.times(2, _.noop); 17107 * // => [undefined, undefined] 17108 */ 17109function noop() { 17110 // No operation performed. 17111} 17112 17113module.exports = noop; 17114 17115 17116/***/ }), 17117/* 306 */ 17118/***/ (function(module, exports) { 17119 17120/** Used to lookup unminified function names. */ 17121var realNames = {}; 17122 17123module.exports = realNames; 17124 17125 17126/***/ }), 17127/* 307 */ 17128/***/ (function(module, exports, __webpack_require__) { 17129 17130var LazyWrapper = __webpack_require__(63), 17131 getData = __webpack_require__(118), 17132 getFuncName = __webpack_require__(119), 17133 lodash = __webpack_require__(308); 17134 17135/** 17136 * Checks if `func` has a lazy counterpart. 17137 * 17138 * @private 17139 * @param {Function} func The function to check. 17140 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 17141 * else `false`. 17142 */ 17143function isLaziable(func) { 17144 var funcName = getFuncName(func), 17145 other = lodash[funcName]; 17146 17147 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 17148 return false; 17149 } 17150 if (func === other) { 17151 return true; 17152 } 17153 var data = getData(other); 17154 return !!data && func === data[0]; 17155} 17156 17157module.exports = isLaziable; 17158 17159 17160/***/ }), 17161/* 308 */ 17162/***/ (function(module, exports, __webpack_require__) { 17163 17164var LazyWrapper = __webpack_require__(63), 17165 LodashWrapper = __webpack_require__(61), 17166 baseLodash = __webpack_require__(62), 17167 isArray = __webpack_require__(1), 17168 isObjectLike = __webpack_require__(9), 17169 wrapperClone = __webpack_require__(309); 17170 17171/** Used for built-in method references. */ 17172var objectProto = Object.prototype; 17173 17174/** Used to check objects for own properties. */ 17175var hasOwnProperty = objectProto.hasOwnProperty; 17176 17177/** 17178 * Creates a `lodash` object which wraps `value` to enable implicit method 17179 * chain sequences. Methods that operate on and return arrays, collections, 17180 * and functions can be chained together. Methods that retrieve a single value 17181 * or may return a primitive value will automatically end the chain sequence 17182 * and return the unwrapped value. Otherwise, the value must be unwrapped 17183 * with `_#value`. 17184 * 17185 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 17186 * enabled using `_.chain`. 17187 * 17188 * The execution of chained methods is lazy, that is, it's deferred until 17189 * `_#value` is implicitly or explicitly called. 17190 * 17191 * Lazy evaluation allows several methods to support shortcut fusion. 17192 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 17193 * the creation of intermediate arrays and can greatly reduce the number of 17194 * iteratee executions. Sections of a chain sequence qualify for shortcut 17195 * fusion if the section is applied to an array and iteratees accept only 17196 * one argument. The heuristic for whether a section qualifies for shortcut 17197 * fusion is subject to change. 17198 * 17199 * Chaining is supported in custom builds as long as the `_#value` method is 17200 * directly or indirectly included in the build. 17201 * 17202 * In addition to lodash methods, wrappers have `Array` and `String` methods. 17203 * 17204 * The wrapper `Array` methods are: 17205 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 17206 * 17207 * The wrapper `String` methods are: 17208 * `replace` and `split` 17209 * 17210 * The wrapper methods that support shortcut fusion are: 17211 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 17212 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 17213 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 17214 * 17215 * The chainable wrapper methods are: 17216 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 17217 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 17218 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 17219 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 17220 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 17221 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 17222 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 17223 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 17224 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 17225 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 17226 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 17227 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 17228 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 17229 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 17230 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 17231 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 17232 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 17233 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 17234 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 17235 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 17236 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 17237 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 17238 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 17239 * `zipObject`, `zipObjectDeep`, and `zipWith` 17240 * 17241 * The wrapper methods that are **not** chainable by default are:
17242 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 17243 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 17244 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 17245 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 17246 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 17247 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 17248 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 17249 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 17250 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 17251 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 17252 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 17253 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 17254 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 17255 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 17256 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 17257 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 17258 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 17259 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 17260 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 17261 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 17262 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 17263 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 17264 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 17265 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 17266 * `upperFirst`, `value`, and `words` 17267 * 17268 * @name _ 17269 * @constructor 17270 * @category Seq 17271 * @param {*} value The value to wrap in a `lodash` instance. 17272 * @returns {Object} Returns the new `lodash` wrapper instance. 17273 * @example 17274 * 17275 * function square(n) { 17276 * return n * n; 17277 * } 17278 * 17279 * var wrapped = _([1, 2, 3]); 17280 * 17281 * // Returns an unwrapped value. 17282 * wrapped.reduce(_.add); 17283 * // => 6 17284 * 17285 * // Returns a wrapped value. 17286 * var squares = wrapped.map(square); 17287 * 17288 * _.isArray(squares); 17289 * // => false 17290 * 17291 * _.isArray(squares.value()); 17292 * // => true 17293 */ 17294function lodash(value) { 17295 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 17296 if (value instanceof LodashWrapper) { 17297 return value; 17298 } 17299 if (hasOwnProperty.call(value, '__wrapped__')) { 17300 return wrapperClone(value); 17301 } 17302 } 17303 return new LodashWrapper(value); 17304} 17305 17306// Ensure wrappers are instances of `baseLodash`. 17307lodash.prototype = baseLodash.prototype; 17308lodash.prototype.constructor = lodash; 17309 17310module.exports = lodash; 17311 17312 17313/***/ }), 17314/* 309 */ 17315/***/ (function(module, exports, __webpack_require__) { 17316 17317var LazyWrapper = __webpack_require__(63), 17318 LodashWrapper = __webpack_require__(61), 17319 copyArray = __webpack_require__(310); 17320 17321/** 17322 * Creates a clone of `wrapper`. 17323 * 17324 * @private 17325 * @param {Object} wrapper The wrapper to clone. 17326 * @returns {Object} Returns the cloned wrapper. 17327 */ 17328function wrapperClone(wrapper) { 17329 if (wrapper instanceof LazyWrapper) { 17330 return wrapper.clone(); 17331 } 17332 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 17333 result.__actions__ = copyArray(wrapper.__actions__); 17334 result.__index__ = wrapper.__index__; 17335 result.__values__ = wrapper.__values__; 17336 return result; 17337} 17338 17339module.exports = wrapperClone; 17340 17341 17342/***/ }), 17343/* 310 */ 17344/***/ (function(module, exports) { 17345 17346/** 17347 * Copies the values of `source` to `array`. 17348 * 17349 * @private 17350 * @param {Array} source The array to copy values from. 17351 * @param {Array} [array=[]] The array to copy values to. 17352 * @returns {Array} Returns `array`. 17353 */ 17354function copyArray(source, array) { 17355 var index = -1, 17356 length = source.length; 17357 17358 array || (array = Array(length)); 17359 while (++index < length) { 17360 array[index] = source[index]; 17361 } 17362 return array; 17363} 17364 17365module.exports = copyArray; 17366 17367 17368/***/ }), 17369/* 311 */ 17370/***/ (function(module, exports, __webpack_require__) { 17371 17372var baseClamp = __webpack_require__(312), 17373 toNumber = __webpack_require__(59); 17374 17375/** 17376 * Clamps `number` within the inclusive `lower` and `upper` bounds. 17377 * 17378 * @static 17379 * @memberOf _ 17380 * @since 4.0.0 17381 * @category Number 17382 * @param {number} number The number to clamp. 17383 * @param {number} [lower] The lower bound. 17384 * @param {number} upper The upper bound. 17385 * @returns {number} Returns the clamped number. 17386 * @example 17387 * 17388 * _.clamp(-10, -5, 5); 17389 * // => -5 17390 * 17391 * _.clamp(10, -5, 5); 17392 * // => 5 17393 */ 17394function clamp(number, lower, upper) { 17395 if (upper === undefined) { 17396 upper = lower; 17397 lower = undefined; 17398 } 17399 if (upper !== undefined) { 17400 upper = toNumber(upper); 17401 upper = upper === upper ? upper : 0; 17402 } 17403 if (lower !== undefined) { 17404 lower = toNumber(lower); 17405 lower = lower === lower ? lower : 0; 17406 } 17407 return baseClamp(toNumber(number), lower, upper); 17408} 17409 17410module.exports = clamp; 17411 17412 17413/***/ }), 17414/* 312 */
17415/***/ (function(module, exports) { 17416 17417/** 17418 * The base implementation of `_.clamp` which doesn't coerce arguments. 17419 * 17420 * @private 17421 * @param {number} number The number to clamp. 17422 * @param {number} [lower] The lower bound. 17423 * @param {number} upper The upper bound. 17424 * @returns {number} Returns the clamped number. 17425 */ 17426function baseClamp(number, lower, upper) { 17427 if (number === number) { 17428 if (upper !== undefined) { 17429 number = number <= upper ? number : upper; 17430 } 17431 if (lower !== undefined) { 17432 number = number >= lower ? number : lower; 17433 } 17434 } 17435 return number; 17436} 17437 17438module.exports = baseClamp; 17439 17440 17441/***/ }), 17442/* 313 */ 17443/***/ (function(module, exports, __webpack_require__) { 17444 17445"use strict"; 17446 // @wf-will-never-add-flow-to-this-file 17447 17448/* globals window, document */ 17449 17450/* eslint-disable no-var */ 17451 17452/** 17453 * Webflow: Auto-select links to current page or section 17454 */ 17455 17456var Webflow = __webpack_require__(6); 17457 17458Webflow.define('links', module.exports = function ($, _) { 17459 var api = {}; 17460 var $win = $(window); 17461 var designer; 17462 var inApp = Webflow.env(); 17463 var location = window.location; 17464 var tempLink = document.createElement('a'); 17465 var linkCurrent = 'w--current'; 17466 var indexPage = /index\.(html|php)$/; 17467 var dirList = /\/$/; 17468 var anchors; 17469 var slug; // ----------------------------------- 17470 // Module methods 17471 17472 api.ready = api.design = api.preview = init; // ----------------------------------- 17473 // Private methods 17474 17475 function init() { 17476 designer = inApp && Webflow.env('design'); 17477 slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors 17478 17479 Webflow.scroll.off(scroll); 17480 anchors = []; // Test all links for a selectable href 17481 17482 var links = document.links; 17483 17484 for (var i = 0; i < links.length; ++i) { 17485 select(links[i]); 17486 } // Listen for scroll if any anchors exist 17487 17488 17489 if (anchors.length) { 17490 Webflow.scroll.on(scroll); 17491 scroll(); 17492 } 17493 } 17494 17495 function select(link) { 17496 var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); 17497 tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes 17498 17499 if (href.indexOf(':') >= 0) { 17500 return; 17501 } 17502 17503 var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page 17504 17505 if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { 17506 // Ignore any hrefs with Google Translate type hash 17507 // Example: jQuery can't parse $('#googtrans(en|es)') 17508 // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 17509 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { 17510 return; 17511 } 17512 17513 var $section = $(tempLink.hash); 17514 $section.length && anchors.push({ 17515 link: $link, 17516 sec: $section, 17517 active: false 17518 }); 17519 return; 17520 } // Ignore empty # links 17521 17522 17523 if (href === '#' || href === '') { 17524 return; 17525 } // Determine whether the link should be selected 17526 17527 17528 var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); 17529 setClass($link, linkCurrent, match); 17530 } 17531 17532 function scroll() { 17533 var viewTop = $win.scrollTop(); 17534 var viewHeight = $win.height(); // Check each anchor for a section in view 17535 17536 _.each(anchors, function (anchor) { 17537 var $link = anchor.link; 17538 var $section = anchor.sec; 17539 var top = $section.offset().top; 17540 var height = $section.outerHeight(); 17541 var offset = viewHeight * 0.5; 17542 var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; 17543 17544 if (anchor.active === active) { 17545 return; 17546 } 17547 17548 anchor.active = active; 17549 setClass($link, linkCurrent, active); 17550 }); 17551 } 17552 17553 function setClass($elem, className, add) { 17554 var exists = $elem.hasClass(className); 17555 17556 if (add && exists) { 17557 return; 17558 } 17559 17560 if (!add && !exists) { 17561 return; 17562 } 17563 17564 add ? $elem.addClass(className) : $elem.removeClass(className); 17565 } // Export module 17566 17567 17568 return api; 17569}); 17570 17571/***/ }), 17572/* 314 */ 17573/***/ (function(module, exports, __webpack_require__) { 17574 17575"use strict"; 17576 // @wf-will-never-add-flow-to-this-file 17577 17578/* globals window, document */ 17579 17580/* eslint-disable no-var */ 17581 17582/** 17583 * Webflow: Smooth scroll 17584 */ 17585 17586var Webflow = __webpack_require__(6); 17587 17588Webflow.define('scroll', module.exports = function ($) { 17589 // Native browser events & namespaces used in this module 17590 var CLICK = 'click';
17591 var CHANGE = 'change'; 17592 var CHANGE_NS = '.wf-change'; 17593 var EMPTY_LINK_NS = '.wf-empty-link'; 17594 var SCROLL_NS = '.wf-scroll'; 17595 /** 17596 * A collection of namespaced events found in this module. 17597 * Namespaced events encapsulate our code, and make it safer and easier 17598 * for designers to apply custom code overrides. 17599 * @see https://api.jquery.com/on/#event-names 17600 * @typedef {Object.<string>} NamespacedEventsCollection 17601 */ 17602 17603 var NS_EVENTS = { 17604 WF_CHANGE: CHANGE + CHANGE_NS, 17605 WF_CLICK_EMPTY: CLICK + EMPTY_LINK_NS, 17606 WF_CLICK_SCROLL: CLICK + SCROLL_NS 17607 }; 17608 var $doc = $(document); 17609 var win = window; 17610 var loc = win.location; 17611 var history = inIframe() ? null : win.history; 17612 var validHash = /^[a-zA-Z0-9][\w:.-]*$/; 17613 var emptyHrefSelector = 'a[href="#"]'; 17614 /** 17615 * Select only links whose href: 17616 * - contains a # 17617 * - is not one of our namespaced TabLink elements 17618 * - is not _only_ a # 17619 */ 17620 17621 var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; 17622 /** 17623 * The current page url, minus the hash. 17624 * Will be set in the `ready` function 17625 */ 17626 17627 var locHref; 17628 17629 function inIframe() { 17630 try { 17631 return Boolean(win.frameElement); 17632 } catch (e) { 17633 return true; 17634 } 17635 } 17636 /** 17637 * Determine if we should execute custom scroll 17638 */ 17639 17640 17641 function validateScroll(e) { 17642 if (Webflow.env('design')) { 17643 return; 17644 } // Ignore links being used by jQuery mobile 17645 17646 17647 if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) { 17648 return; 17649 } // The href property always contains the full url so we can compare 17650 // with the documentâs location to only target links on this page. 17651 17652 17653 var parts = this.href.split('#'); 17654 var hash = parts[0] === locHref ? parts[1] : null; 17655 17656 if (hash) { 17657 findEl(hash, e); 17658 } 17659 } 17660 17661 function findEl(hash, e) { 17662 if (!validHash.test(hash)) { 17663 return; 17664 } 17665 17666 var el = $('#' + hash); 17667 17668 if (!el.length) { 17669 return; 17670 } 17671 17672 if (e) { 17673 e.preventDefault(); 17674 e.stopPropagation(); 17675 } // Push new history state 17676 17677 17678 if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. 17679 !(Webflow.env.chrome && loc.protocol === 'file:')) { 17680 var oldHash = history.state && history.state.hash; 17681 17682 if (oldHash !== hash) { 17683 history.pushState({ 17684 hash: hash 17685 }, '', '#' + hash); 17686 } 17687 } // If a fixed header exists, offset for the height 17688 17689 17690 var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; 17691 var header = $('header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'); 17692 var offset = header.css('position') === 'fixed' ? header.outerHeight() : 0; 17693 win.setTimeout(function () { 17694 scroll(el, offset); 17695 }, e ? 0 : 300); 17696 } 17697 17698 function scroll(el, offset) { 17699 var start = $(win).scrollTop(); 17700 var end = el.offset().top - offset; // If specified, scroll so that the element ends up in the middle of the viewport 17701 17702 if (el.data('scroll') === 'mid') { 17703 var available = $(win).height() - offset; 17704 var elHeight = el.outerHeight(); 17705 17706 if (elHeight < available) { 17707 end -= Math.round((available - elHeight) / 2); 17708 } 17709 } 17710 17711 var mult = 1; // Check for custom time multiplier on the body and the element 17712 17713 $('body').add(el).each(function () { 17714 var time = parseFloat($(this).attr('data-scroll-time'), 10); 17715 17716 if (!isNaN(time) && (time === 0 || time > 0)) { 17717 mult = time; 17718 } 17719 }); // Shim for IE8 and below 17720 17721 if (!Date.now) { 17722 Date.now = function () { 17723 return new Date().getTime(); 17724 }; 17725 } 17726 17727 var clock = Date.now(); 17728 17729 var animate = win.requestAnimationFrame || win.mozRequestAnimationFrame || win.webkitRequestAnimationFrame || function (fn) { 17730 win.setTimeout(fn, 15); 17731 }; 17732 17733 var duration = (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; 17734 17735 var step = function step() { 17736 var elapsed = Date.now() - clock; 17737 win.scroll(0, getY(start, end, elapsed, duration)); 17738 17739 if (elapsed <= duration) { 17740 animate(step); 17741 } 17742 }; 17743 17744 step(); 17745 } 17746 17747 function getY(start, end, elapsed, duration) { 17748 if (elapsed > duration) { 17749 return end; 17750 } 17751 17752 return start + (end - start) * ease(elapsed / duration); 17753 } 17754 17755 function ease(t) { 17756 return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 17757 } 17758 17759 function handleReducedMotionChange(evt) { 17760 var WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; 17761 17762 if (evt.target.matches) { 17763 $doc.off(WF_CLICK_SCROLL); 17764 } else { 17765 $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); 17766 } 17767 } 17768 17769 function ready() { 17770 var WF_CHANGE = NS_EVENTS.WF_CHANGE, 17771 WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, 17772 WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; 17773 locHref = loc.href.split('#')[0]; 17774 var reducedMotionQ = window.matchMedia('(prefers-reduced-motion: reduce)'); 17775 17776 if (!reducedMotionQ.matches) { 17777 $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); 17778 } 17779 17780 $(reducedMotionQ).on(WF_CHANGE, handleReducedMotionChange); 17781 /** 17782 * Prevent empty hash links from triggering scroll. 17783 * Legacy feature to preserve: use the default "#" link 17784 * to trigger an interaction, and do not want the page 17785 * to scroll to the top. 17786 */ 17787 17788 $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { 17789 e.preventDefault(); 17790 }); 17791 } // Export module 17792 17793 17794 return { 17795 ready: ready 17796 }; 17797}); 17798 17799/***/ }), 17800/* 315 */ 17801/***/ (function(module, exports, __webpack_require__) { 17802 17803"use strict"; 17804 // @wf-will-never-add-flow-to-this-file 17805 17806/* globals document, window */ 17807 17808/* eslint-disable no-var */ 17809 17810/** 17811 * Webflow: Touch events 17812 * Supports legacy 'tap' event 17813 * Adds a 'swipe' event to desktop and mobile 17814 */ 17815 17816var Webflow = __webpack_require__(6); 17817 17818Webflow.define('touch', module.exports = function ($) { 17819 var api = {}; 17820 var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' 17821 17822 $.event.special.tap = { 17823 bindType: 'click', 17824 delegateType: 'click' 17825 }; 17826 17827 api.init = function (el) { 17828 el = typeof el === 'string' ? $(el).get(0) : el; 17829 return el ? new Touch(el) : null; 17830 }; 17831 17832 function Touch(el) { 17833 var active = false;
17834 var useTouch = false; 17835 var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); 17836 var startX; 17837 var lastX; 17838 el.addEventListener('touchstart', start, false); 17839 el.addEventListener('touchmove', move, false); 17840 el.addEventListener('touchend', end, false); 17841 el.addEventListener('touchcancel', cancel, false); 17842 el.addEventListener('mousedown', start, false); 17843 el.addEventListener('mousemove', move, false); 17844 el.addEventListener('mouseup', end, false); 17845 el.addEventListener('mouseout', cancel, false); 17846 17847 function start(evt) { 17848 // We donât handle multi-touch events yet. 17849 var touches = evt.touches; 17850 17851 if (touches && touches.length > 1) { 17852 return; 17853 } 17854 17855 active = true; 17856 17857 if (touches) { 17858 useTouch = true; 17859 startX = touches[0].clientX; 17860 } else { 17861 startX = evt.clientX; 17862 } 17863 17864 lastX = startX; 17865 } 17866 17867 function move(evt) { 17868 if (!active) { 17869 return; 17870 } 17871 17872 if (useTouch && evt.type === 'mousemove') { 17873 evt.preventDefault(); 17874 evt.stopPropagation(); 17875 return; 17876 } 17877 17878 var touches = evt.touches; 17879 var x = touches ? touches[0].clientX : evt.clientX; 17880 var velocityX = x - lastX; 17881 lastX = x; // Allow swipes while pointer is down, but prevent them during text selection 17882 17883 if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { 17884 triggerEvent('swipe', evt, { 17885 direction: velocityX > 0 ? 'right' : 'left' 17886 }); 17887 cancel(); 17888 } 17889 } 17890 17891 function end(evt) { 17892 if (!active) { 17893 return; 17894 } 17895 17896 active = false; 17897 17898 if (useTouch && evt.type === 'mouseup') { 17899 evt.preventDefault(); 17900 evt.stopPropagation(); 17901 useTouch = false; 17902 return; 17903 } 17904 } 17905 17906 function cancel() { 17907 active = false; 17908 } 17909 17910 function destroy() { 17911 el.removeEventListener('touchstart', start, false); 17912 el.removeEventListener('touchmove', move, false); 17913 el.removeEventListener('touchend', end, false); 17914 el.removeEventListener('touchcancel', cancel, false); 17915 el.removeEventListener('mousedown', start, false); 17916 el.removeEventListener('mousemove', move, false); 17917 el.removeEventListener('mouseup', end, false); 17918 el.removeEventListener('mouseout', cancel, false); 17919 el = null; 17920 } // Public instance methods 17921 17922 17923 this.destroy = destroy; 17924 } // Wrap native event to supoprt preventdefault + stopPropagation 17925 17926 17927 function triggerEvent(type, evt, data) { 17928 var newEvent = $.Event(type, { 17929 originalEvent: evt 17930 }); 17931 $(evt.target).trigger(newEvent, data); 17932 } // Listen for touch events on all nodes by default. 17933 17934 17935 api.instance = api.init(document); // Export module 17936 17937 return api; 17938}); 17939 17940/***/ }), 17941/* 316 */ 17942/***/ (function(module, exports, __webpack_require__) { 17943 17944"use strict"; 17945 // @wf-will-never-add-flow-to-this-file 17946 17947/* globals 17948 window, 17949 document, 17950 FormData, 17951 WEBFLOW_FORM_API_HOST, 17952 WEBFLOW_FORM_OLDIE_HOST 17953*/ 17954 17955/* eslint-disable no-var */ 17956 17957/** 17958 * Webflow: Forms 17959 */ 17960 17961var _interopRequireDefault = __webpack_require__(0); 17962 17963var _slicedToArray2 = _interopRequireDefault(__webpack_require__(317)); 17964 17965var Webflow = __webpack_require__(6); 17966 17967Webflow.define('forms', module.exports = function ($, _) { 17968 var api = {}; 17969 var $doc = $(document); 17970 var $forms; 17971 var loc = window.location; 17972 var retro = window.XDomainRequest && !window.atob; 17973 var namespace = '.w-form'; 17974 var siteId; 17975 var emailField = /e(-)?mail/i; 17976 var emailValue = /^\S+@\S+$/; 17977 var alert = window.alert; 17978 var inApp = Webflow.env(); 17979 var listening; 17980 var formUrl; 17981 var signFileUrl; // MailChimp domains: list-manage.com + mirrors 17982 17983 var chimpRegex = /list-manage[1-9]?.com/i; 17984 17985 var disconnected = _.debounce(function () { 17986 alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); 17987 }, 100); 17988 17989 api.ready = api.design = api.preview = function () { 17990 // Init forms 17991 init(); // Wire document events on published site only once 17992 17993 if (!inApp && !listening) { 17994 addListeners(); 17995 } 17996 }; 17997
17998 function init() { 17999 siteId = $('html').attr('data-wf-site'); 18000 formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit 18001 18002 if (retro && formUrl.indexOf("https://webflow.com") >= 0) { 18003 formUrl = formUrl.replace("https://webflow.com", "http://formdata.webflow.com"); 18004 } 18005 18006 signFileUrl = "".concat(formUrl, "/signFile"); 18007 $forms = $(namespace + ' form'); 18008 18009 if (!$forms.length) { 18010 return; 18011 } 18012 18013 $forms.each(build); 18014 } 18015 18016 function build(i, el) { 18017 // Store form state using namespace 18018 var $el = $(el); 18019 var data = $.data(el, namespace); 18020 18021 if (!data) { 18022 data = $.data(el, namespace, { 18023 form: $el 18024 }); 18025 } // data.form 18026 18027 18028 reset(data); 18029 var wrap = $el.closest('div.w-form'); 18030 data.done = wrap.find('> .w-form-done'); 18031 data.fail = wrap.find('> .w-form-fail'); 18032 data.fileUploads = wrap.find('.w-file-upload'); 18033 data.fileUploads.each(function (j) { 18034 initFileUpload(j, data); 18035 }); 18036 var action = data.action = $el.attr('action'); 18037 data.handler = null; 18038 data.redirect = $el.attr('data-redirect'); // MailChimp form 18039 18040 if (chimpRegex.test(action)) { 18041 data.handler = submitMailChimp; 18042 return; 18043 } // Custom form action 18044 18045 18046 if (action) { 18047 return; 18048 } // Webflow forms for hosting accounts 18049 18050 18051 if (siteId) { 18052 data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; 18053 return; 18054 } // Alert for disconnected Webflow forms 18055 18056 18057 disconnected(); 18058 } 18059 18060 function addListeners() { 18061 listening = true; // Handle form submission for Webflow forms 18062 18063 $doc.on('submit', namespace + ' form', function (evt) { 18064 var data = $.data(this, namespace); 18065 18066 if (data.handler) { 18067 data.evt = evt; 18068 data.handler(data); 18069 } 18070 }); // handle checked ui for custom checkbox and radio button 18071 18072 var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; 18073 var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; 18074 var CHECKED_CLASS = 'w--redirected-checked'; 18075 var FOCUSED_CLASS = 'w--redirected-focus'; 18076 var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; 18077 $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { 18078 $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); 18079 }); 18080 $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { 18081 $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { 18082 return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); 18083 }); 18084 var $target = $(evt.target); 18085 18086 if (!$target.hasClass('w-radio-input')) { 18087 $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); 18088 } 18089 }); 18090 CUSTOM_CONTROLS.forEach(function (_ref) { 18091 var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), 18092 controlType = _ref2[0], 18093 customControlClassName = _ref2[1]; 18094 18095 $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18096 $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); 18097 }); 18098 $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18099 $(evt.target).siblings(customControlClassName).removeClass(FOCUSED_CLASS); 18100 }); 18101 }); 18102 } // Reset data common to all submit handlers 18103 18104 18105 function reset(data) { 18106 var btn = data.btn = data.form.find(':input[type="submit"]'); 18107 data.wait = data.btn.attr('data-wait') || null; 18108 data.success = false; 18109 btn.prop('disabled', false); 18110 data.label && btn.val(data.label); 18111 } // Disable submit button 18112 18113 18114 function disableBtn(data) { 18115 var btn = data.btn; 18116 var wait = data.wait; 18117 btn.prop('disabled', true); // Show wait text and store previous label 18118 18119 if (wait) { 18120 data.label = btn.val(); 18121 btn.val(wait); 18122 } 18123 } // Find form fields, validate, and set value pairs 18124 18125 18126 function findFields(form, result) { 18127 var status = null; 18128 result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas 18129 18130 form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { 18131 var field = $(el); 18132 var type = field.attr('type'); 18133 var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); 18134 var value = field.val(); 18135 18136 if (type === 'checkbox') { 18137 value = field.is(':checked'); 18138 } else if (type === 'radio') { 18139 // Radio group value already processed 18140 if (result[name] === null || typeof result[name] === 'string') { 18141 return; 18142 } 18143 18144 value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; 18145 } 18146 18147 if (typeof value === 'string') { 18148 value = $.trim(value); 18149 } 18150 18151 result[name] = value; 18152 status = status || getStatus(field, type, name, value); 18153 }); 18154 return status; 18155 } 18156 18157 function findFileUploads(form) { 18158 var result = {}; 18159 form.find(':input[type="file"]').each(function (i, el) { 18160 var field = $(el); 18161 var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); 18162 var value = field.attr('data-value'); 18163 18164 if (typeof value === 'string') { 18165 value = $.trim(value); 18166 } 18167 18168 result[name] = value; 18169 }); 18170 return result; 18171 } 18172 18173 function getStatus(field, type, name, value) { 18174 var status = null; 18175 18176 if (type === 'password') { 18177 status = 'Passwords cannot be submitted.'; 18178 } else if (field.attr('required')) { 18179 if (!value) { 18180 status = 'Please fill out the required field: ' + name; 18181 } else if (emailField.test(field.attr('type'))) { 18182 if (!emailValue.test(value)) { 18183 status = 'Please enter a valid email address for: ' + name; 18184 } 18185 } 18186 } else if (name === 'g-recaptcha-response' && !value) { 18187 status = 'Please confirm youâre not a robot.'; 18188 } 18189 18190 return status; 18191 } 18192 18193 function exportedSubmitWebflow(data) { 18194 preventDefault(data); 18195 afterSubmit(data); 18196 } // Submit form to MailChimp 18197 18198 18199 function submitMailChimp(data) { 18200 reset(data); 18201 var form = data.form; 18202 var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead 18203 18204 if (/^https/.test(loc.href) && !/^https/.test(data.action)) { 18205 form.attr('method', 'post'); 18206 return; 18207 } 18208 18209 preventDefault(data); // Find & populate all fields 18210 18211 var status = findFields(form, payload); 18212 18213 if (status) { 18214 return alert(status); 18215 } // Disable submit button 18216 18217 18218 disableBtn(data); // Use special format for MailChimp params 18219 18220 var fullName; 18221 18222 _.each(payload, function (value, key) { 18223 if (emailField.test(key)) { 18224 payload.EMAIL = value; 18225 } 18226 18227 if (/^((full[ _-]?)?name)$/i.test(key)) { 18228 fullName = value; 18229 } 18230 18231 if (/^(first[ _-]?name)$/i.test(key)) { 18232 payload.FNAME = value; 18233 } 18234 18235 if (/^(last[ _-]?name)$/i.test(key)) { 18236 payload.LNAME = value; 18237 } 18238 }); 18239 18240 if (fullName && !payload.FNAME) { 18241 fullName = fullName.split(' '); 18242 payload.FNAME = fullName[0]; 18243 payload.LNAME = payload.LNAME || fullName[1]; 18244 } // Use the (undocumented) MailChimp jsonp api 18245 18246 18247 var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups 18248 18249 var userId = url.indexOf('u=') + 2; 18250 userId = url.substring(userId, url.indexOf('&', userId)); 18251 var listId = url.indexOf('id=') + 3; 18252 listId = url.substring(listId, url.indexOf('&', listId)); 18253 payload['b_' + userId + '_' + listId] = ''; 18254 $.ajax({ 18255 url: url, 18256 data: payload, 18257 dataType: 'jsonp' 18258 }).done(function (resp) { 18259 data.success = resp.result === 'success' || /already/.test(resp.msg); 18260 18261 if (!data.success) { 18262 console.info('MailChimp error: ' + resp.msg); 18263 } 18264 18265 afterSubmit(data); 18266 }).fail(function () { 18267 afterSubmit(data); 18268 }); 18269 } // Common callback which runs after all Ajax submissions 18270 18271 18272 function afterSubmit(data) { 18273 var form = data.form; 18274 var redirect = data.redirect; 18275 var success = data.success; // Redirect to a success url if defined 18276 18277 if (success && redirect) { 18278 Webflow.location(redirect); 18279 return; 18280 } // Show or hide status divs 18281 18282 18283 data.done.toggle(success); 18284 data.fail.toggle(!success); // Hide form on success 18285 18286 form.toggle(!success); // Reset data and enable submit button 18287 18288 reset(data); 18289 } 18290 18291 function preventDefault(data) { 18292 data.evt && data.evt.preventDefault(); 18293 data.evt = null; 18294 } 18295 18296 function initFileUpload(i, form) { 18297 if (!form.fileUploads || !form.fileUploads[i]) { 18298 return; 18299 } 18300 18301 var file; 18302 var $el = $(form.fileUploads[i]); 18303 var $defaultWrap = $el.find('> .w-file-upload-default'); 18304 var $uploadingWrap = $el.find('> .w-file-upload-uploading'); 18305 var $successWrap = $el.find('> .w-file-upload-success'); 18306 var $errorWrap = $el.find('> .w-file-upload-error'); 18307 var $input = $defaultWrap.find('.w-file-upload-input'); 18308 var $label = $defaultWrap.find('.w-file-upload-label'); 18309 var $labelChildren = $label.children(); 18310 var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); 18311 var $fileEl = $successWrap.find('.w-file-upload-file'); 18312 var $removeEl = $successWrap.find('.w-file-remove-link'); 18313 var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); 18314 var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); 18315 var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); 18316 var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); 18317 18318 if (!inApp) { 18319 $removeEl.on('click', function () { 18320 $input.removeAttr('data-value'); 18321 $input.val(''); 18322 $fileNameEl.html(''); 18323 $defaultWrap.toggle(true); 18324 $successWrap.toggle(false); 18325 }); 18326 $input.on('change', function (e) { 18327 file = e.target && e.target.files && e.target.files[0]; 18328 18329 if (!file) { 18330 return; 18331 } // Show uploading 18332 18333 18334 $defaultWrap.toggle(false); 18335 $errorWrap.toggle(false); 18336 $uploadingWrap.toggle(true); // Set filename 18337 18338 $fileNameEl.text(file.name); // Disable submit button 18339 18340 if (!isUploading()) { 18341 disableBtn(form); 18342 } 18343 18344 form.fileUploads[i].uploading = true; 18345 signFile(file, afterSign); 18346 }); // Setting input width 1px and height equal label 18347 // This is so the browser required error will show up 18348 18349 var height = $label.outerHeight(); 18350 $input.height(height); 18351 $input.width(1); 18352 } else { 18353 $input.on('click', function (e) { 18354 e.preventDefault(); 18355 }); 18356 $label.on('click', function (e) { 18357 e.preventDefault(); 18358 }); 18359 $labelChildren.on('click', function (e) { 18360 e.preventDefault(); 18361 }); 18362 } 18363 18364 function parseError(err) { 18365 var errorMsg = err.responseJSON && err.responseJSON.msg; 18366 var userError = genericErrMsg; 18367 18368 if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { 18369 userError = typeErrMsg; 18370 } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { 18371 userError = sizeErrMsg; 18372 } 18373 18374 $errorMsgEl.text(userError); 18375 $input.removeAttr('data-value'); 18376 $input.val(''); 18377 $uploadingWrap.toggle(false); 18378 $defaultWrap.toggle(true); 18379 $errorWrap.toggle(true); 18380 form.fileUploads[i].uploading = false;
18381 18382 if (!isUploading()) { 18383 reset(form); 18384 } 18385 } 18386 18387 function afterSign(err, data) { 18388 if (err) { 18389 return parseError(err); 18390 } 18391 18392 var fileName = data.fileName; 18393 var postData = data.postData; 18394 var fileId = data.fileId; 18395 var s3Url = data.s3Url; 18396 $input.attr('data-value', fileId); 18397 uploadS3(s3Url, postData, file, fileName, afterUpload); 18398 } 18399 18400 function afterUpload(err) { 18401 if (err) { 18402 return parseError(err); 18403 } // Show success 18404 18405 18406 $uploadingWrap.toggle(false); 18407 $successWrap.css('display', 'inline-block'); 18408 form.fileUploads[i].uploading = false; 18409 18410 if (!isUploading()) { 18411 reset(form); 18412 } 18413 } 18414 18415 function isUploading() { 18416 var uploads = form.fileUploads && form.fileUploads.toArray() || []; 18417 return uploads.some(function (value) { 18418 return value.uploading; 18419 }); 18420 } 18421 } 18422 18423 function signFile(file, cb) { 18424 var payload = { 18425 name: file.name, 18426 size: file.size 18427 }; 18428 $.ajax({ 18429 type: 'POST', 18430 url: signFileUrl, 18431 data: payload, 18432 dataType: 'json', 18433 crossDomain: true 18434 }).done(function (data) { 18435 cb(null, data); 18436 }).fail(function (err) { 18437 cb(err); 18438 }); 18439 } 18440 18441 function uploadS3(url, data, file, fileName, cb) { 18442 var formData = new FormData(); 18443 18444 for (var k in data) { 18445 formData.append(k, data[k]); 18446 } 18447 18448 formData.append('file', file, fileName); 18449 $.ajax({ 18450 type: 'POST', 18451 url: url, 18452 data: formData, 18453 processData: false, 18454 contentType: false 18455 }).done(function () { 18456 cb(null); 18457 }).fail(function (err) { 18458 cb(err); 18459 }); 18460 } // Export module 18461 18462 18463 return api; 18464}); 18465 18466/***/ }), 18467/* 317 */ 18468/***/ (function(module, exports, __webpack_require__) { 18469 18470var arrayWithHoles = __webpack_require__(318); 18471 18472var iterableToArrayLimit = __webpack_require__(319); 18473 18474var nonIterableRest = __webpack_require__(320); 18475 18476function _slicedToArray(arr, i) { 18477 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); 18478} 18479 18480module.exports = _slicedToArray; 18481 18482/***/ }), 18483/* 318 */ 18484/***/ (function(module, exports) { 18485 18486function _arrayWithHoles(arr) { 18487 if (Array.isArray(arr)) return arr; 18488} 18489 18490module.exports = _arrayWithHoles; 18491 18492/***/ }), 18493/* 319 */ 18494/***/ (function(module, exports) { 18495 18496function _iterableToArrayLimit(arr, i) { 18497 var _arr = []; 18498 var _n = true; 18499 var _d = false; 18500 var _e = undefined; 18501 18502 try { 18503 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 18504 _arr.push(_s.value); 18505 18506 if (i && _arr.length === i) break; 18507 } 18508 } catch (err) { 18509 _d = true; 18510 _e = err; 18511 } finally { 18512 try { 18513 if (!_n && _i["return"] != null) _i["return"](); 18514 } finally { 18515 if (_d) throw _e; 18516 } 18517 } 18518 18519 return _arr; 18520} 18521 18522module.exports = _iterableToArrayLimit; 18523 18524/***/ }), 18525/* 320 */ 18526/***/ (function(module, exports) { 18527 18528function _nonIterableRest() { 18529 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 18530} 18531 18532module.exports = _nonIterableRest; 18533 18534/***/ }), 18535/* 321 */ 18536/***/ (function(module, exports, __webpack_require__) { 18537 18538"use strict"; 18539 // @wf-will-never-add-flow-to-this-file 18540 18541/* globals window, document */ 18542 18543/* eslint-disable no-var */ 18544 18545/** 18546 * Webflow: Navbar component 18547 */ 18548 18549var Webflow = __webpack_require__(6); 18550 18551var IXEvents = __webpack_require__(65); 18552 18553var KEY_CODES = { 18554 ARROW_LEFT: 37, 18555 ARROW_UP: 38, 18556 ARROW_RIGHT: 39, 18557 ARROW_DOWN: 40, 18558 ESCAPE: 27, 18559 SPACE: 32, 18560 ENTER: 13, 18561 HOME: 36, 18562 END: 35 18563}; 18564Webflow.define('navbar', module.exports = function ($, _) { 18565 var api = {}; 18566 var tram = $.tram; 18567 var $win = $(window); 18568 var $doc = $(document); 18569 var debounce = _.debounce; 18570 var $body; 18571 var $navbars; 18572 var designer; 18573 var inEditor; 18574 var inApp = Webflow.env(); 18575 var overlay = '<div class="w-nav-overlay" data-wf-ignore />'; 18576 var namespace = '.w-nav'; 18577 var navbarOpenedButton = 'w--open'; 18578 var navbarOpenedDropdown = 'w--nav-dropdown-open'; 18579 var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; 18580 var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; 18581 var navbarOpenedLink = 'w--nav-link-open'; 18582 var ix = IXEvents.triggers; 18583 var menuSibling = $(); // ----------------------------------- 18584 // Module methods 18585 18586 api.ready = api.design = api.preview = init; 18587 18588 api.destroy = function () { 18589 menuSibling = $(); 18590 removeListeners(); 18591 18592 if ($navbars && $navbars.length) { 18593 $navbars.each(teardown); 18594 } 18595 }; // ----------------------------------- 18596 // Private methods 18597 18598
18599 function init() { 18600 designer = inApp && Webflow.env('design'); 18601 inEditor = Webflow.env('editor'); 18602 $body = $(document.body); // Find all instances on the page 18603 18604 $navbars = $doc.find(namespace); 18605 18606 if (!$navbars.length) { 18607 return; 18608 } 18609 18610 $navbars.each(build); // Wire events 18611 18612 removeListeners(); 18613 addListeners(); 18614 } 18615 18616 function removeListeners() { 18617 Webflow.resize.off(resizeAll); 18618 } 18619 18620 function addListeners() { 18621 Webflow.resize.on(resizeAll); 18622 } 18623 18624 function resizeAll() { 18625 $navbars.each(resize); 18626 } 18627 18628 function build(i, el) { 18629 var $el = $(el); // Store state in data 18630 18631 var data = $.data(el, namespace); 18632 18633 if (!data) { 18634 data = $.data(el, namespace, { 18635 open: false, 18636 el: $el, 18637 config: {}, 18638 selectedIdx: -1 18639 }); 18640 } 18641 18642 data.menu = $el.find('.w-nav-menu'); 18643 data.links = data.menu.find('.w-nav-link'); 18644 data.dropdowns = data.menu.find('.w-dropdown'); 18645 data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); 18646 data.dropdownList = data.menu.find('.w-dropdown-list'); 18647 data.button = $el.find('.w-nav-button'); 18648 data.container = $el.find('.w-container'); 18649 data.overlayContainerId = 'w-nav-overlay-' + i; 18650 data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the 18651 // default setting, then add an aria-label 18652 18653 var navBrandLink = $el.find('.w-nav-brand'); 18654 18655 if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { 18656 navBrandLink.attr('aria-label', 'home'); 18657 } // VoiceOver bug, when items that disallow user selection are focused 18658 // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ã)_/¯ 18659 18660 18661 data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element 18662 18663 if (data.button.attr('aria-label') == null) { 18664 data.button.attr('aria-label', 'menu'); 18665 } 18666 18667 data.button.attr('role', 'button'); 18668 data.button.attr('tabindex', '0'); 18669 data.button.attr('aria-controls', data.overlayContainerId); 18670 data.button.attr('aria-haspopup', 'menu'); 18671 data.button.attr('aria-expanded', 'false'); // Remove old events 18672 18673 data.el.off(namespace); 18674 data.button.off(namespace); 18675 data.menu.off(namespace); // Set config from data attributes 18676 18677 configure(data); // Add events based on mode 18678 18679 if (designer) { 18680 removeOverlay(data); 18681 data.el.on('setting' + namespace, handler(data)); 18682 } else { 18683 addOverlay(data); 18684 data.button.on('click' + namespace, toggle(data)); 18685 data.menu.on('click' + namespace, 'a', navigate(data)); 18686 data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); 18687 data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); 18688 } // Trigger initial resize 18689 18690 18691 resize(i, el); 18692 } 18693 18694 function teardown(i, el) { 18695 var data = $.data(el, namespace); 18696 18697 if (data) { 18698 removeOverlay(data); 18699 $.removeData(el, namespace); 18700 } 18701 } 18702 18703 function removeOverlay(data) { 18704 if (!data.overlay) { 18705 return; 18706 } 18707 18708 close(data, true); 18709 data.overlay.remove(); 18710 data.overlay = null; 18711 } 18712 18713 function addOverlay(data) { 18714 if (data.overlay) { 18715 return; 18716 } 18717 18718 data.overlay = $(overlay).appendTo(data.el); 18719 data.overlay.attr('id', data.overlayContainerId); 18720 data.parent = data.menu.parent(); 18721 close(data, true); 18722 } 18723 18724 function configure(data) { 18725 var config = {}; 18726 var old = data.config || {}; // Set config options from data attributes 18727 18728 var animation = config.animation = data.el.attr('data-animation') || 'default'; 18729 config.animOver = /^over/.test(animation); 18730 config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed 18731 18732 if (old.animation !== animation) { 18733 data.open && _.defer(reopen, data); 18734 } 18735 18736 config.easing = data.el.attr('data-easing') || 'ease'; 18737 config.easing2 = data.el.attr('data-easing2') || 'ease'; 18738 var duration = data.el.attr('data-duration'); 18739 config.duration = duration != null ? Number(duration) : 400; 18740 config.docHeight = data.el.attr('data-doc-height'); // Store config in data 18741 18742 data.config = config; 18743 } 18744 18745 function handler(data) { 18746 return function (evt, options) { 18747 options = options || {}; 18748 var winWidth = $win.width(); 18749 configure(data); 18750 options.open === true && open(data, true); 18751 options.open === false && close(data, true); // Reopen if media query changed after setting 18752 18753 data.open && _.defer(function () { 18754 if (winWidth !== $win.width()) { 18755 reopen(data); 18756 } 18757 }); 18758 }; 18759 } 18760 18761 function makeToggleButtonKeyboardHandler(data) { 18762 return function (evt) { 18763 switch (evt.keyCode) { 18764 case KEY_CODES.SPACE: 18765 case KEY_CODES.ENTER: 18766 { 18767 // Toggle returns a function 18768 toggle(data)(); 18769 evt.preventDefault(); 18770 return evt.stopPropagation(); 18771 } 18772 18773 case KEY_CODES.ESCAPE: 18774 { 18775 close(data); 18776 evt.preventDefault(); 18777 return evt.stopPropagation(); 18778 } 18779 18780 case KEY_CODES.ARROW_RIGHT: 18781 case KEY_CODES.ARROW_DOWN: 18782 case KEY_CODES.HOME: 18783 case KEY_CODES.END: 18784 { 18785 if (!data.open) { 18786 evt.preventDefault(); 18787 return evt.stopPropagation(); 18788 } 18789 18790 if (evt.keyCode === KEY_CODES.END) { 18791 data.selectedIdx = data.links.length - 1; 18792 } else { 18793 data.selectedIdx = 0; 18794 } 18795 18796 focusSelectedLink(data); 18797 evt.preventDefault(); 18798 return evt.stopPropagation(); 18799 } 18800 } 18801 }; 18802 } 18803 18804 function makeLinksKeyboardHandler(data) { 18805 return function (evt) { 18806 if (!data.open) { 18807 return; 18808 } // Realign selectedIdx with the menu item that is currently in focus. 18809 // We need this because we do not track the `Tab` key activity! 18810 18811 18812 data.selectedIdx = data.links.index(document.activeElement); 18813 18814 switch (evt.keyCode) { 18815 case KEY_CODES.HOME: 18816 case KEY_CODES.END: 18817 { 18818 if (evt.keyCode === KEY_CODES.END) { 18819 data.selectedIdx = data.links.length - 1; 18820 } else { 18821 data.selectedIdx = 0; 18822 } 18823 18824 focusSelectedLink(data); 18825 evt.preventDefault(); 18826 return evt.stopPropagation(); 18827 } 18828 18829 case KEY_CODES.ESCAPE: 18830 { 18831 close(data); // Focus toggle button 18832 18833 data.button.focus(); 18834 evt.preventDefault(); 18835 return evt.stopPropagation(); 18836 } 18837 18838 case KEY_CODES.ARROW_LEFT: 18839 case KEY_CODES.ARROW_UP: 18840 {
18841 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 18842 focusSelectedLink(data); 18843 evt.preventDefault(); 18844 return evt.stopPropagation(); 18845 } 18846 18847 case KEY_CODES.ARROW_RIGHT: 18848 case KEY_CODES.ARROW_DOWN: 18849 { 18850 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 18851 focusSelectedLink(data); 18852 evt.preventDefault(); 18853 return evt.stopPropagation(); 18854 } 18855 } 18856 }; 18857 } 18858 18859 function focusSelectedLink(data) { 18860 if (data.links[data.selectedIdx]) { 18861 var selectedElement = data.links[data.selectedIdx]; 18862 selectedElement.focus(); 18863 navigate(selectedElement); 18864 } 18865 } 18866 18867 function reopen(data) { 18868 if (!data.open) { 18869 return; 18870 } 18871 18872 close(data, true); 18873 open(data, true); 18874 } 18875 18876 function toggle(data) { 18877 // Debounce toggle to wait for accurate open state 18878 return debounce(function () { 18879 data.open ? close(data) : open(data); 18880 }); 18881 } 18882 18883 function navigate(data) { 18884 return function (evt) { 18885 var link = $(this); 18886 var href = link.attr('href'); // Avoid late clicks on touch devices 18887 18888 if (!Webflow.validClick(evt.currentTarget)) { 18889 evt.preventDefault(); 18890 return; 18891 } // Close when navigating to an in-page anchor 18892 18893 18894 if (href && href.indexOf('#') === 0 && data.open) { 18895 close(data); 18896 } 18897 }; 18898 } 18899 18900 function outside(data) { 18901 // Unbind previous click handler if it exists 18902 if (data.outside) { 18903 $doc.off('click' + namespace, data.outside); 18904 } 18905 18906 return function (evt) { 18907 var $target = $(evt.target); // Ignore clicks on Editor overlay UI 18908 18909 if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { 18910 return; 18911 } // Close menu when clicked outside, debounced to wait for state 18912 18913 18914 outsideDebounced(data, $target); 18915 }; 18916 } 18917 18918 var outsideDebounced = debounce(function (data, $target) { 18919 if (!data.open) { 18920 return; 18921 } 18922 18923 var menu = $target.closest('.w-nav-menu'); 18924 18925 if (!data.menu.is(menu)) { 18926 close(data); 18927 } 18928 }); 18929 18930 function resize(i, el) { 18931 var data = $.data(el, namespace);
18931 // Check for collapsed state based on button display 18932 18933 var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) 18934 18935 if (data.open && !collapsed && !designer) { 18936 close(data, true); 18937 } // Set max-width of links + dropdowns to match container 18938 18939 18940 if (data.container.length) { 18941 var updateEachMax = updateMax(data); 18942 data.links.each(updateEachMax); 18943 data.dropdowns.each(updateEachMax); 18944 } // If currently open, update height to match body 18945 18946 18947 if (data.open) { 18948 setOverlayHeight(data); 18949 } 18950 } 18951 18952 var maxWidth = 'max-width'; 18953 18954 function updateMax(data) { 18955 // Set max-width of each element to match container 18956 var containMax = data.container.css(maxWidth); 18957 18958 if (containMax === 'none') { 18959 containMax = ''; 18960 } 18961 18962 return function (i, link) { 18963 link = $(link); 18964 link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists 18965 18966 if (link.css(maxWidth) === 'none') { 18967 link.css(maxWidth, containMax); 18968 } 18969 }; 18970 } 18971 18972 function addMenuOpen(i, el) { 18973 el.setAttribute('data-nav-menu-open', ''); 18974 } 18975 18976 function removeMenuOpen(i, el) { 18977 el.removeAttribute('data-nav-menu-open'); 18978 } 18979 18980 function open(data, immediate) { 18981 if (data.open) { 18982 return; 18983 } 18984 18985 data.open = true; 18986 data.menu.each(addMenuOpen); 18987 data.links.addClass(navbarOpenedLink); 18988 data.dropdowns.addClass(navbarOpenedDropdown); 18989 data.dropdownToggle.addClass(navbarOpenedDropdownToggle); 18990 data.dropdownList.addClass(navbarOpenedDropdownList); 18991 data.button.addClass(navbarOpenedButton); 18992 var config = data.config; 18993 var animation = config.animation; 18994 18995 if (animation === 'none' || !tram.support.transform) { 18996 immediate = true; 18997 } 18998 18999 var bodyHeight = setOverlayHeight(data); 19000 var menuHeight = data.menu.outerHeight(true); 19001 var menuWidth = data.menu.outerWidth(true); 19002 var navHeight = data.el.height(); 19003 var navbarEl = data.el[0]; 19004 resize(0, navbarEl); 19005 ix.intro(0, navbarEl); 19006 Webflow.redraw.up(); // Listen for click outside events 19007 19008 if (!designer) { 19009 $doc.on('click' + namespace, data.outside); 19010 } // No transition for immediate 19011 19012 19013 if (immediate) { 19014 complete(); 19015 return; 19016 } 19017 19018 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay 19019 19020 if (data.overlay) { 19021 menuSibling = data.menu.prev(); 19022 data.overlay.show().append(data.menu); 19023 } // Over left/right 19024 19025 19026 if (config.animOver) { 19027 tram(data.menu).add(transConfig).set({ 19028 x: config.animDirect * menuWidth, 19029 height: bodyHeight 19030 }).start({ 19031 x: 0 19032 }).then(complete); 19033 data.overlay && data.overlay.width(menuWidth); 19034 return; 19035 } // Drop Down 19036 19037 19038 var offsetY = navHeight + menuHeight; 19039 tram(data.menu).add(transConfig).set({ 19040 y: -offsetY 19041 }).start({ 19042 y: 0 19043 }).then(complete); 19044 19045 function complete() { 19046 data.button.attr('aria-expanded', 'true'); 19047 } 19048 } 19049 19050 function setOverlayHeight(data) { 19051 var config = data.config; 19052 var bodyHeight = config.docHeight ? $doc.height() : $body.height(); 19053 19054 if (config.animOver) { 19055 data.menu.height(bodyHeight); 19056 } else if (data.el.css('position') !== 'fixed') { 19057 bodyHeight -= data.el.outerHeight(true); 19058 } 19059 19060 data.overlay && data.overlay.height(bodyHeight); 19061 return bodyHeight; 19062 } 19063 19064 function close(data, immediate) { 19065 if (!data.open) { 19066 return; 19067 } 19068 19069 data.open = false; 19070 data.button.removeClass(navbarOpenedButton); 19071 var config = data.config; 19072 19073 if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { 19074 immediate = true; 19075 } 19076 19077 ix.outro(0, data.el[0]); // Stop listening for click outside events 19078 19079 $doc.off('click' + namespace, data.outside); 19080 19081 if (immediate) { 19082 tram(data.menu).stop(); 19083 complete(); 19084 return; 19085 } 19086 19087 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; 19088 var menuHeight = data.menu.outerHeight(true); 19089 var menuWidth = data.menu.outerWidth(true); 19090 var navHeight = data.el.height(); // Over left/right 19091 19092 if (config.animOver) { 19093 tram(data.menu).add(transConfig).start({ 19094 x: menuWidth * config.animDirect 19095 }).then(complete); 19096 return; 19097 } // Drop Down 19098 19099 19100 var offsetY = navHeight + menuHeight; 19101 tram(data.menu).add(transConfig).start({ 19102 y: -offsetY 19103 }).then(complete); 19104 19105 function complete() { 19106 data.menu.height(''); 19107 tram(data.menu).set({ 19108 x: 0, 19109 y: 0 19110 }); 19111 data.menu.each(removeMenuOpen); 19112 data.links.removeClass(navbarOpenedLink); 19113 data.dropdowns.removeClass(navbarOpenedDropdown); 19114 data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); 19115 data.dropdownList.removeClass(navbarOpenedDropdownList); 19116 19117 if (data.overlay && data.overlay.children().length) { 19118 // Move menu back to parent at the original location 19119 menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); 19120 data.overlay.attr('style', '').hide(); 19121 } // Trigger event so other components can hook in (dropdown) 19122 19123 19124 data.el.triggerHandler('w-close'); 19125 data.button.attr('aria-expanded', 'false'); 19126 } 19127 } // Export module 19128 19129 19130 return api; 19131}); 19132 19133/***/ }) 19134/******/ ]);/** 19135 * ---------------------------------------------------------------------- 19136 * Webflow: Interactions 2.0: Init 19137 */ 19138Webflow.require('ix2').init( 19139{"events":{"e-3":{"id":"e-3","name":"Unnamed interaction","animationType":"custom","eventTypeId":"MOUSE_MOVE","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-3","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-3-p","selectedAxis":"X_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50},{"continuousParameterGroupId":"a-3-p-2","selectedAxis":"Y_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50}],"createdOn":1547215079337},"e-5":{"id":"e-5","name":"Unnamed interaction","animationType":"custom","eventTypeId":"MOUSE_MOVE","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-4","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-4-p","selectedAxis":"X_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":56,"restingState":50},{"continuousParameterGroupId":"a-4-p-2","selectedAxis":"Y_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":56,"restingState":50}],"createdOn":1547219545293},"e-6":{"id":"e-6","name":"Unnamed interaction","animationType":"custom","eventTypeId":"MOUSE_MOVE","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-5-p","selectedAxis":"X_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50},{"continuousParameterGroupId":"a-5-p-2","selectedAxis":"Y_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50}],"createdOn":1547220156921},"e-7":{"id":"e-7","name":"Unnamed interaction","animationType":"custom","eventTypeId":"MOUSE_MOVE","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-6","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-6-p","selectedAxis":"X_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50},{"continuousParameterGroupId":"a-6-p-2","selectedAxis":"Y_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":50,"restingState":50}],"createdOn":1547220374571},"e-10":{"id":"e-10","name":"Unnamed interaction","animationType":"custom","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-8","affectedElements":{},"duration":0}},"mediaQueries":["small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-8-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1547802913973}
19139,"e-12":{"id":"e-12","name":"Unnamed interaction","animationType":"custom","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-10","affectedElements":{},"duration":0}},"mediaQueries":["main","medium"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-10-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1552765706538},"e-13":{"id":"e-13","name":"Unnamed interaction","animationType":"custom","eventTypeId":"PAGE_SCROLL_UP","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-9","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-14"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1552813886186},"e-14":{"id":"e-14","name":"Unnamed interaction","animationType":"custom","eventTypeId":"PAGE_SCROLL_DOWN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-13"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1552813886190},"e-18":{"id":"e-18","name":"Unnamed interaction","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-14","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".search-video-outer-wrapper","originalId":"5c9e2506ce648b74a060bbb0|e7954f98-b7e5-4bbe-60c6-3a9da674c684","appliesTo":"CLASS"},"targets":[{"selector":".search-video-outer-wrapper","originalId":"5c9e2506ce648b74a060bbb0|e7954f98-b7e5-4bbe-60c6-3a9da674c684","appliesTo":"CLASS"}],"config":[{"continuousParameterGroupId":"a-14-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":20,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1577456962217},"e-19":{"id":"e-19","name":"Unnamed interaction","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-16","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".testimonial-item","originalId":"5c9e2506ce648b74a060bbb0|ec73477f-2e4a-e355-8f95-f729d419ab0e","appliesTo":"CLASS"},"targets":[{"selector":".testimonial-item","originalId":"5c9e2506ce648b74a060bbb0|ec73477f-2e4a-e355-8f95-f729d419ab0e","appliesTo":"CLASS"}],"config":[{"continuousParameterGroupId":"a-16-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":25,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1577460792360},"e-21":{"id":"e-21","name":"Unnamed interaction","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-17","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".two-column-grid-item","originalId":"5c9e2506ce648b74a060bbb0|e52167d1-b078-f403-8d7c-6ff53d72182b","appliesTo":"CLASS"},"targets":[{"selector":".two-column-grid-item","originalId":"5c9e2506ce648b74a060bbb0|e52167d1-b078-f403-8d7c-6ff53d72182b","appliesTo":"CLASS"}],"config":[{"continuousParameterGroupId":"a-17-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1577462055470},"e-26":{"id":"e-26","name":"Unnamed interaction","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-19","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5c9e2506ce648b74a060bbb0|9bb77606-19df-e700-e6e3-03f97f2ab8a3","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0|9bb77606-19df-e700-e6e3-03f97f2ab8a3","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-19-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":10,"startsExiting":false,"addEndOffset":true,"endOffsetValue":10}],"createdOn":1577969612240},"e-30":{"id":"e-30","name":"Unnamed interaction","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-20","affectedElements":{},"duration":0}},"mediaQueries":["main","medium"],"target":{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-20-p","smoothing":50,"startsEntering":true,"addStartOffset":true,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1578065640870}},"actionLists":{"a-3":{"id":"a-3","title":"RunBar Perspective MouseMove","continuousParameterGroups":[{"id":"a-3-p","type":"MOUSE_X","parameterLabel":"Mouse X","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-3-n","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|2983f719-11b6-7dbf-45f1-d53c4b4bdaa7"},"yValue":10,"zValue":-2,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]},{"keyframe":100,"actionItems":[{"id":"a-3-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|2983f719-11b6-7dbf-45f1-d53c4b4bdaa7"},"yValue":-10,"zValue":2,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}]},{"id":"a-3-p-2","type":"MOUSE_Y","parameterLabel":"Mouse Y","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-3-n-8","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|2983f719-11b6-7dbf-45f1-d53c4b4bdaa7"},"xValue":10,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]},{"keyframe":100,"actionItems":[{"id":"a-3-n-9","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|2983f719-11b6-7dbf-45f1-d53c4b4bdaa7"},"xValue":15,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}]}],"createdOn":1547215394071},"a-4":{"id":"a-4","title":"Opacity RunBar 3","continuousParameterGroups":[{"id":"a-4-p","type":"MOUSE_X","parameterLabel":"Mouse X","continuousActionGroups":[{"keyframe":70,"actionItems":[{"id":"a-4-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|4950abe4-3f3b-9914-7cd9-5d3d98fbe
191396cc"},"value":0,"unit":""}},{"id":"a-4-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|11f6ff91-21be-f153-e09d-ede832af832b"},"value":0,"unit":""}}]},{"keyframe":73,"actionItems":[{"id":"a-4-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|4950abe4-3f3b-9914-7cd9-5d3d98fbe6cc"},"value":1,"unit":""}},{"id":"a-4-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|11f6ff91-21be-f153-e09d-ede832af832b"},"value":1,"unit":""}}]}]},{"id":"a-4-p-2","type":"MOUSE_Y","parameterLabel":"Mouse Y","continuousActionGroups":[]}],"createdOn":1547220022783},"a-5":{"id":"a-5","title":"Opacity RunBar 2","continuousParameterGroups":[{"id":"a-5-p","type":"MOUSE_X","parameterLabel":"Mouse X","continuousActionGroups":[{"keyframe":33,"actionItems":[{"id":"a-5-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|000761ad-9659-3805-c130-114cc378f585"},"value":0,"unit":""}},{"id":"a-5-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|fcc3a184-6b07-8672-b416-a9370d68dd4a"},"value":0,"unit":""}}]},{"keyframe":36,"actionItems":[{"id":"a-5-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|000761ad-9659-3805-c130-114cc378f585"},"value":1,"unit":""}},{"id":"a-5-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|fcc3a184-6b07-8672-b416-a9370d68dd4a"},"value":1,"unit":""}}]},{"keyframe":66,"actionItems":[{"id":"a-5-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|000761ad-9659-3805-c130-114cc378f585"},"value":1,"unit":""}},{"id":"a-5-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|fcc3a184-6b07-8672-b416-a9370d68dd4a"},"value":1,"unit":""}}]},{"keyframe":70,"actionItems":[{"id":"a-5-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|000761ad-9659-3805-c130-114cc378f585"},"value":0,"unit":""}},{"id":"a-5-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|fcc3a184-6b07-8672-b416-a9370d68dd4a"},"value":0,"unit":""}}]}]},{"id":"a-5-p-2","type":"MOUSE_Y","parameterLabel":"Mouse Y","continuousActionGroups":[]}],"createdOn":1547220164519},"a-6":{"id":"a-6","title":"Opacity RunBar 1","continuousParameterGroups":[{"id":"a-6-p","type":"MOUSE_X","parameterLabel":"Mouse X","continuousActionGroups":[{"keyframe":30,"actionItems":[{"id":"a-6-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|1f161d3c-0b1c-c118-790e-20841ecc262d"},"value":1,"unit":""}},{"id":"a-6-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|c7a45757-f787-a4b6-10f0-30372786c81d"},"value":1,"unit":""}}]},{"keyframe":33,"actionItems":[{"id":"a-6-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|1f161d3c-0b1c-c118-790e-20841ecc262d"},"value":0,"unit":""}},{"id":"a-6-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|c7a45757-f787-a4b6-10f0-30372786c81d"},"value":0,"unit":""}}]}]},{"id":"a-6-p-2","type":"MOUSE_Y","parameterLabel":"Mouse Y","continuousActionGroups":[]}],"createdOn":1547220380863},"a-8":{"id":"a-8","title":"NavBar Mobile Hamburger","continuousParameterGroups":[{"id":"a-8-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-8-n-8","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":0,"bValue":0,"gValue":0,"aValue":0}},{"id":"a-8-n-16","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":255,"bValue":255,"gValue":255,"aValue":0}}]},{"keyframe":1,"actionItems":[{"id":"a-8-n-9","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":54,"bValue":99,"gValue":76,"aValue":0.2}},{"id":"a-8-n-17","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]}]}],"createdOn":1552765563188},"a-10":{"id":"a-10","title":"NavBar Desktop","continuousParameterGroups":[{"id":"a-10-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-10-n","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":0,"bValue":0,"gValue":0,"aValue":0}}]},{"keyframe":1,"actionItems":[{"id":"a-10-n-3","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"globalSwatchId":"","rValue":54,"bValue":99,"gValue":76,"aValue":0.2}}]},{"keyframe":5,"actionItems":[{"id":"a-10-n-5","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"654bca49-08cc-36b8-2fb8-49e849726ca4"},"globalSwatchId":"","rValue":143,"bValue":0,"gValue":14,"aValue":1}},{"id":"a-10-n-6","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"d9e969fa-2828-bd14-ab3b-18b95909b786"},"globalSwatchId":"","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-10-n-8","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".nav-link","selectorGuids":["40085930-46ff-7213-f2b4-017852634414"]},"globalSwatchId":"","rValue":0,"bValue":0,"gValue":0,"aValue":0}},{"id":"a-10-n-16","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"1796fb64-f947-7edc-cd35-a36a5ba95950"},"globalSwatchId":"4a75633c","rValue":243,"bValue":203,"gValue":207,"aValue":1}}]},{"keyframe":6,"actionItems":[{"id":"a-10-n-9","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"654bca49-08cc-36b8-2fb8-49e849726ca4"},"globalSwatchId":"","rValue":139,"bValue":140,"gValue":139,"aValue":1}},{"id":"a-10-n-11","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"d9e969fa-2828-bd14-ab3b-18b95909b786"},"globalSwatchId":"c0e9fca7","rValue":0,"bValue":238,"gValue":119,"aValue":1}},{"id":"a-10-n-13","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".nav-link","selectorGuids":["40085930-46ff-7213-f2b4-017852634414"]},"globalSwatchId":"97dff8a0","rValue":210,"bValue":213,"gValue":211,"aValue":1}},{"id":"a-10-n-17","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"","duration":500,"target":{"id":"1796fb64-f947-7edc-cd35-a36a5ba95950"},"globalSwatchId":"face933b","rValue":247,"bValue":250,"gValue":248,"aValue":1}}]}]}],"createdOn":1552765563188},"a-9":{"id":"a-9","title":"Show NavBar","actionItemGroups":[{"actionItems":[{"id":"a-9-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeIn","duration":250,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"yValue":-64,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-9-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeOut","duration":250,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1552814085218}
19139,"a-2":{"id":"a-2","title":"Hide NavBar","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeIn","duration":250,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-2-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeOut","duration":250,"target":{"id":"e61dd1e6-c9f4-4eac-721f-5498133fac50"},"yValue":-64,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1547213602358},"a-14":{"id":"a-14","title":"Show/hide video scrolling viewport","continuousParameterGroups":[{"id":"a-14-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-14-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"value":0,"unit":""}},{"id":"a-14-n-11","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"yValue":24,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"keyframe":8,"actionItems":[{"id":"a-14-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"value":1,"unit":""}},{"id":"a-14-n-12","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"keyframe":95,"actionItems":[{"id":"a-14-n-9","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"value":1,"unit":""}}]},{"keyframe":100,"actionItems":[{"id":"a-14-n-10","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".search-video-outer-wrapper","selectorGuids":["3c0b761e-d9e8-f0ee-00f3-1f5ea1ad1d88"]},"value":0,"unit":""}}]}]}],"createdOn":1577456082063},"a-16":{"id":"a-16","title":"Show Testimonial Item","continuousParameterGroups":[{"id":"a-16-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-16-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".testimonial-item","selectorGuids":["101cafd2-feb5-803a-28bb-2618f5bbbf52"]},"xValue":50,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-16-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".testimonial-item","selectorGuids":["101cafd2-feb5-803a-28bb-2618f5bbbf52"]},"value":0,"unit":""}}]},{"keyframe":30,"actionItems":[{"id":"a-16-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outBounce","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".testimonial-item","selectorGuids":["101cafd2-feb5-803a-28bb-2618f5bbbf52"]},"xValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-16-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outBounce","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".testimonial-item","selectorGuids":["101cafd2-feb5-803a-28bb-2618f5bbbf52"]},"value":1,"unit":""}}]}]}],"createdOn":1577460809270},"a-17":{"id":"a-17","title":"Show RunBar Item","continuousParameterGroups":[{"id":"a-17-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-17-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".two-column-grid-item","selectorGuids":["13b20cb8-5a43-5ecc-4dae-2c03d5372b12"]},"yValue":24,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-17-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".two-column-grid-item","selectorGuids":["13b20cb8-5a43-5ecc-4dae-2c03d5372b12"]},"value":0,"unit":""}}]},{"keyframe":20,"actionItems":[{"id":"a-17-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".two-column-grid-item","selectorGuids":["13b20cb8-5a43-5ecc-4dae-2c03d5372b12"]},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-17-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".two-column-grid-item","selectorGuids":["13b20cb8-5a43-5ecc-4dae-2c03d5372b12"]},"value":1,"unit":""}}]}]}],"createdOn":1577462063926},"a-19":{"id":"a-19","title":"Scroll AB Content Symbols","continuousParameterGroups":[{"id":"a-19-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-19-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|9bb77606-19df-e700-e6e3-03f97f2ab8a3"},"yValue":3,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]},{"keyframe":100,"actionItems":[{"id":"a-19-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|9bb77606-19df-e700-e6e3-03f97f2ab8a3"},"yValue":-47,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}]}],"createdOn":1577969618480},"a-20":{"id":"a-20","title":"Install Plugins Reveal","continuousParameterGroups":[{"id":"a-20-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-20-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97"},"yValue":0,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|7c957897-9134-b8d6-81ef-34d2f20a6dc1"},"xValue":75,"yValue":50,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|d977046d-7c3a-44ab-c7d8-506912fd75bd"},"xValue":-75,"yValue":50,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-7","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|7c957897-9134-b8d6-81ef-34d2f20a6dc1"},"xValue":0.95,"yValue":0.95,"locked":true}},{"id":"a-20-n-9","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|d977046d-7c3a-44ab-c7d8-506912fd75bd"},"xValue":0.95,"yValue":0.95,"locked":true}},{"id":"a-20-n-11","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97"},"xValue":0.9,"yValue":0.9,"locked":true}}]},{"keyframe":25,"actionItems":[{"id":"a-20-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97"},"yValue":0,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|7c957897-9134-b8d6-81ef-34d2f20a6dc1"},"xValue":90,"yValue":50,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|d977046d-7c3a-44ab-c7d8-506912fd75bd"},"xValue":-90,"yValue":50,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-20-n-8","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|7c957897-9134-b8d6-81ef-34d2f20a6dc1"},"xValue":1,"yValue":1,"locked":true}},{"id":"a-20-n-10","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"useEventTarget":"SIBLINGS","id":"5c9e2506ce648b74a060bbb0|d977046d-7c3a-44ab-c7d8-506912fd75bd"},"xValue":1,"yValue":1,"locked":true}},{"id":"a-20-n-12","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outCubic","duration":500,"target":{"id":"5c9e2506ce648b74a060bbb0|e41b92ea-3a0e-a42c-7f66-6df1c09cff97"},"xValue":1,"yValue":1,"locked":true}}]}]}],"createdOn":1578064971635}},"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}]}} 19140);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.