vendor: 4,773 bytes, lines 1-128
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 = 129); 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, __webpack_require__) { 109 110/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) { 111 return it && it.Math == Math && it; 112}; 113 114// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 115module.exports = 116 // eslint-disable-next-line es/no-global-this -- safe 117 check(typeof globalThis == 'object' && globalThis) || 118 check(typeof window == 'object' && window) || 119 // eslint-disable-next-line no-restricted-globals -- safe 120 check(typeof self == 'object' && self) || 121 check(typeof global == 'object' && global) || 122 // eslint-disable-next-line no-new-func -- fallback 123 (function () { return this; })() || Function('return this')(); 124 125/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) 126 127/***/ }), 128/* 2 */
129/***/ (function(module, exports) { 130 131/** 132 * Checks if `value` is classified as an `Array` object. 133 * 134 * @static 135 * @memberOf _ 136 * @since 0.1.0 137 * @category Lang 138 * @param {*} value The value to check. 139 * @returns {boolean} Returns `true` if `value` is an array, else `false`. 140 * @example 141 * 142 * _.isArray([1, 2, 3]); 143 * // => true 144 * 145 * _.isArray(document.body.children); 146 * // => false 147 * 148 * _.isArray('abc'); 149 * // => false 150 * 151 * _.isArray(_.noop); 152 * // => false 153 */ 154var isArray = Array.isArray; 155 156module.exports = isArray; 157 158 159/***/ }), 160/* 3 */ 161/***/ (function(module, exports, __webpack_require__) { 162 163"use strict"; 164 // @wf-will-never-add-flow-to-this-file 165 166/* globals window, document, navigator, WEBFLOW_ENV_TEST */ 167 168/* eslint-disable no-var */ 169 170/** 171 * Webflow: Core site library 172 */ 173 174var Webflow = {}; 175var modules = {}; 176var primary = []; 177var secondary = window.Webflow || []; 178var $ = window.jQuery; 179var $win = $(window); 180var $doc = $(document); 181var isFunction = $.isFunction; 182 183var _ = Webflow._ = __webpack_require__(133); 184 185var tram = Webflow.tram = __webpack_require__(69) && $.tram; 186var domready = false; 187var destroyed = false; 188tram.config.hideBackface = false; 189tram.config.keepInherited = true; 190/** 191 * Webflow.define - Define a named module 192 * @param {string} name 193 * @param {function} factory 194 * @param {object} options 195 * @return {object} 196 */ 197 198Webflow.define = function (name, factory, options) { 199 if (modules[name]) { 200 unbindModule(modules[name]); 201 } 202 203 var instance = modules[name] = factory($, _, options) || {}; 204 bindModule(instance); 205 return instance; 206}; 207/** 208 * Webflow.require - Require a named module 209 * @param {string} name 210 * @return {object} 211 */ 212 213 214Webflow.require = function (name) { 215 return modules[name]; 216}; 217 218function bindModule(module) { 219 // If running in Webflow app, subscribe to design/preview events 220 if (Webflow.env()) { 221 isFunction(module.design) && $win.on('__wf_design', module.design); 222 isFunction(module.preview) && $win.on('__wf_preview', module.preview); 223 } // Subscribe to front-end destroy event 224 225 226 isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module 227 228 if (module.ready && isFunction(module.ready)) { 229 addReady(module); 230 } 231} 232 233function addReady(module) { 234 // If domready has already happened, run ready method 235 if (domready) { 236 module.ready(); 237 return; 238 } // Otherwise add ready method to the primary queue (only once) 239 240 241 if (_.contains(primary, module.ready)) { 242 return; 243 } 244 245 primary.push(module.ready); 246} 247 248function unbindModule(module) { 249 // Unsubscribe module from window events 250 isFunction(module.design) && $win.off('__wf_design', module.design); 251 isFunction(module.preview) && $win.off('__wf_preview', module.preview); 252 isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue 253 254 if (module.ready && isFunction(module.ready)) { 255 removeReady(module); 256 } 257} 258 259function removeReady(module) { 260 primary = _.filter(primary, function (readyFn) { 261 return readyFn !== module.ready; 262 }); 263} 264/** 265 * Webflow.push - Add a ready handler into secondary queue 266 * @param {function} ready Callback to invoke on domready 267 */ 268 269 270Webflow.push = function (ready) { 271 // If domready has already happened, invoke handler 272 if (domready) { 273 isFunction(ready) && ready(); 274 return; 275 } // Otherwise push into secondary queue 276 277 278 secondary.push(ready); 279}; 280/** 281 * Webflow.env - Get the state of the Webflow app 282 * @param {string} mode [optional] 283 * @return {boolean} 284 */ 285 286 287Webflow.env = function (mode) { 288 var designFlag = window.__wf_design; 289 var inApp = typeof designFlag !== 'undefined'; 290 291 if (!mode) { 292 return inApp; 293 } 294 295 if (mode === 'design') { 296 return inApp && designFlag; 297 } 298 299 if (mode === 'preview') { 300 return inApp && !designFlag; 301 } 302 303 if (mode === 'slug') { 304 return inApp && window.__wf_slug; 305 } 306 307 if (mode === 'editor') { 308 return window.WebflowEditor; 309 } 310 311 if (mode === 'test') { 312 return false || window.__wf_test; 313 } 314 315 if (mode === 'frame') { 316 return window !== window.top; 317 } 318}; // Feature detects + browser sniffs ಠ_ಠ319 320 321var userAgent = navigator.userAgent.toLowerCase(); 322var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; 323var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); 324var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); 325Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices 326 327var touchTarget; // Listen for both events to support touch/mouse hybrid devices 328 329touch && $doc.on('touchstart mousedown', function (evt) { 330 touchTarget = evt.target; 331}); 332/** 333 * Webflow.validClick - validate click target against current touch target 334 * @param {HTMLElement} clickTarget Element being clicked 335 * @return {Boolean} True if click target is valid (always true on non-touch) 336 */ 337 338Webflow.validClick = touch ? function (clickTarget) { 339 return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); 340} : function () { 341 return true; 342}; 343/** 344 * Webflow.resize, Webflow.scroll - throttled event proxies 345 */ 346 347var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow';
348var scrollEvents = 'scroll.webflow ' + resizeEvents; 349Webflow.resize = eventProxy($win, resizeEvents); 350Webflow.scroll = eventProxy($win, scrollEvents); 351Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events 352 353function eventProxy(target, types) { 354 // Set up throttled method (using custom frame-based _.throttle) 355 var handlers = []; 356 var proxy = {}; 357 proxy.up = _.throttle(function (evt) { 358 _.each(handlers, function (h) { 359 h(evt); 360 }); 361 }); // Bind events to target 362 363 if (target && types) { 364 target.on(types, proxy.up); 365 } 366 /** 367 * Add an event handler 368 * @param {function} handler 369 */ 370 371 372 proxy.on = function (handler) { 373 if (typeof handler !== 'function') { 374 return; 375 } 376 377 if (_.contains(handlers, handler)) { 378 return; 379 } 380 381 handlers.push(handler); 382 }; 383 /** 384 * Remove an event handler 385 * @param {function} handler 386 */ 387 388 389 proxy.off = function (handler) { 390 // If no arguments supplied, clear all handlers 391 if (!arguments.length) { 392 handlers = []; 393 return; 394 } // Otherwise, remove handler from the list 395 396 397 handlers = _.filter(handlers, function (h) { 398 return h !== handler; 399 }); 400 }; 401 402 return proxy; 403} // Webflow.location - Wrap window.location in api 404 405 406Webflow.location = function (url) { 407 window.location = url; 408}; 409 410if (Webflow.env()) { 411 // Ignore redirects inside a Webflow design/edit environment 412 Webflow.location = function () {}; 413} // Webflow.ready - Call primary and secondary handlers 414 415 416Webflow.ready = function () { 417 domready = true; // Restore modules after destroy 418 419 if (destroyed) { 420 restoreModules(); // Otherwise run primary ready methods 421 } else { 422 _.each(primary, callReady); 423 } // Run secondary ready methods 424 425 426 _.each(secondary, callReady); // Trigger resize 427 428 429 Webflow.resize.up(); 430}; 431 432function callReady(readyFn) { 433 isFunction(readyFn) && readyFn(); 434} 435 436function restoreModules() { 437 destroyed = false; 438 439 _.each(modules, bindModule); 440} 441/** 442 * Webflow.load - Add a window load handler that will run even if load event has already happened 443 * @param {function} handler 444 */ 445 446 447var deferLoad; 448 449Webflow.load = function (handler) { 450 deferLoad.then(handler); 451}; 452 453function bindLoad() { 454 // Reject any previous deferred (to support destroy) 455 if (deferLoad) { 456 deferLoad.reject(); 457 $win.off('load', deferLoad.resolve); 458 } // Create deferred and bind window load event 459 460 461 deferLoad = new $.Deferred(); 462 $win.on('load', deferLoad.resolve); 463} // Webflow.destroy - Trigger a destroy event for all modules 464 465 466Webflow.destroy = function (options) { 467 options = options || {}; 468 destroyed = true; 469 $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests 470 471 if (options.domready != null) { 472 domready = options.domready; 473 } // Unbind modules 474 475 476 _.each(modules, unbindModule); // Clear any proxy event handlers 477 478 479 Webflow.resize.off(); 480 Webflow.scroll.off(); 481 Webflow.redraw.off(); // Clear any queued ready methods 482 483 primary = []; 484 secondary = []; // If load event has not yet fired, replace the deferred 485 486 if (deferLoad.state() === 'pending') { 487 bindLoad(); 488 } 489}; // Listen for domready 490 491 492$(Webflow.ready); // Listen for window.onload and resolve deferred 493 494bindLoad(); // Export commonjs module 495 496module.exports = window.Webflow = Webflow; 497 498/***/ }), 499/* 4 */ 500/***/ (function(module, exports, __webpack_require__) { 501 502"use strict"; 503 504 505var _interopRequireWildcard = __webpack_require__(18); 506 507Object.defineProperty(exports, "__esModule", { 508 value: true 509}); 510var _exportNames = { 511 IX2EngineActionTypes: true, 512 IX2EngineConstants: true 513}; 514exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; 515 516var _triggerEvents = __webpack_require__(190); 517 518Object.keys(_triggerEvents).forEach(function (key) { 519 if (key === "default" || key === "__esModule") return; 520 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 521 Object.defineProperty(exports, key, { 522 enumerable: true, 523 get: function get() { 524 return _triggerEvents[key]; 525 } 526 }); 527}); 528 529var _animationActions = __webpack_require__(94); 530
531Object.keys(_animationActions).forEach(function (key) { 532 if (key === "default" || key === "__esModule") return; 533 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 534 Object.defineProperty(exports, key, { 535 enumerable: true, 536 get: function get() { 537 return _animationActions[key]; 538 } 539 }); 540}); 541 542var _triggerInteractions = __webpack_require__(191); 543 544Object.keys(_triggerInteractions).forEach(function (key) { 545 if (key === "default" || key === "__esModule") return; 546 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 547 Object.defineProperty(exports, key, { 548 enumerable: true, 549 get: function get() { 550 return _triggerInteractions[key]; 551 } 552 }); 553}); 554 555var _reducedMotion = __webpack_require__(192); 556 557Object.keys(_reducedMotion).forEach(function (key) { 558 if (key === "default" || key === "__esModule") return; 559 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 560 Object.defineProperty(exports, key, { 561 enumerable: true, 562 get: function get() { 563 return _reducedMotion[key]; 564 } 565 }); 566}); 567 568var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(193)); 569 570exports.IX2EngineActionTypes = IX2EngineActionTypes; 571 572var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(194)); 573 574exports.IX2EngineConstants = IX2EngineConstants; 575 576/***/ }), 577/* 5 */ 578/***/ (function(module, exports) { 579 580var FunctionPrototype = Function.prototype; 581var bind = FunctionPrototype.bind; 582var call = FunctionPrototype.call; 583var callBind = bind && bind.bind(call); 584 585module.exports = bind ? function (fn) { 586 return fn && callBind(call, fn); 587} : function (fn) { 588 return fn && function () { 589 return call.apply(fn, arguments); 590 }; 591}; 592 593 594/***/ }), 595/* 6 */ 596/***/ (function(module, exports, __webpack_require__) { 597 598var freeGlobal = __webpack_require__(99); 599 600/** Detect free variable `self`. */ 601var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 602 603/** Used as a reference to the global object. */ 604var root = freeGlobal || freeSelf || Function('return this')(); 605 606module.exports = root; 607 608 609/***/ }), 610/* 7 */ 611/***/ (function(module, exports) { 612 613// `IsCallable` abstract operation 614// https://tc39.es/ecma262/#sec-iscallable 615module.exports = function (argument) { 616 return typeof argument == 'function'; 617}; 618 619 620/***/ }), 621/* 8 */ 622/***/ (function(module, exports) { 623 624/** 625 * Checks if `value` is the 626 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 627 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 628 * 629 * @static 630 * @memberOf _ 631 * @since 0.1.0 632 * @category Lang 633 * @param {*} value The value to check. 634 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 635 * @example 636 * 637 * _.isObject({}); 638 * // => true 639 * 640 * _.isObject([1, 2, 3]); 641 * // => true 642 * 643 * _.isObject(_.noop); 644 * // => true 645 * 646 * _.isObject(null); 647 * // => false 648 */ 649function isObject(value) { 650 var type = typeof value; 651 return value != null && (type == 'object' || type == 'function'); 652} 653 654module.exports = isObject; 655 656 657/***/ }), 658/* 9 */ 659/***/ (function(module, exports, __webpack_require__) { 660 661var uncurryThis = __webpack_require__(5); 662var toObject = __webpack_require__(158); 663 664var hasOwnProperty = uncurryThis({}.hasOwnProperty); 665 666// `HasOwnProperty` abstract operation 667// https://tc39.es/ecma262/#sec-hasownproperty 668module.exports = Object.hasOwn || function hasOwn(it, key) { 669 return hasOwnProperty(toObject(it), key); 670}; 671 672 673/***/ }), 674/* 10 */ 675/***/ (function(module, exports, __webpack_require__) { 676 677var baseMatches = __webpack_require__(197), 678 baseMatchesProperty = __webpack_require__(251), 679 identity = __webpack_require__(63), 680 isArray = __webpack_require__(2), 681 property = __webpack_require__(260); 682 683/** 684 * The base implementation of `_.iteratee`. 685 * 686 * @private 687 * @param {*} [value=_.identity] The value to convert to an iteratee. 688 * @returns {Function} Returns the iteratee. 689 */ 690function baseIteratee(value) { 691 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. 692 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. 693 if (typeof value == 'function') { 694 return value; 695 } 696 if (value == null) { 697 return identity; 698 } 699 if (typeof value == 'object') { 700 return isArray(value) 701 ? baseMatchesProperty(value[0], value[1]) 702 : baseMatches(value); 703 } 704 return property(value); 705} 706 707module.exports = baseIteratee; 708 709 710/***/ }), 711/* 11 */ 712/***/ (function(module, exports, __webpack_require__) { 713 714var baseIsNative = __webpack_require__(209), 715 getValue = __webpack_require__(214); 716 717/** 718 * Gets the native function at `key` of `object`. 719 * 720 * @private 721 * @param {Object} object The object to query. 722 * @param {string} key The key of the method to get. 723 * @returns {*} Returns the function if it's native, else `undefined`. 724 */ 725function getNative(object, key) { 726 var value = getValue(object, key); 727 return baseIsNative(value) ? value : undefined; 728} 729 730module.exports = getNative; 731 732 733/***/ }), 734/* 12 */
vendor: 2,251 bytes, lines 735-815
735/***/ (function(module, exports) { 736 737/** 738 * Checks if `value` is object-like. A value is object-like if it's not `null` 739 * and has a `typeof` result of "object". 740 * 741 * @static 742 * @memberOf _ 743 * @since 4.0.0 744 * @category Lang 745 * @param {*} value The value to check. 746 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 747 * @example 748 * 749 * _.isObjectLike({}); 750 * // => true 751 * 752 * _.isObjectLike([1, 2, 3]); 753 * // => true 754 * 755 * _.isObjectLike(_.noop); 756 * // => false 757 * 758 * _.isObjectLike(null); 759 * // => false 760 */ 761function isObjectLike(value) { 762 return value != null && typeof value == 'object'; 763} 764 765module.exports = isObjectLike; 766 767 768/***/ }), 769/* 13 */ 770/***/ (function(module, exports) { 771 772function _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); } 773 774function _typeof(obj) { 775 if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { 776 module.exports = _typeof = function _typeof(obj) { 777 return _typeof2(obj); 778 }; 779 } else { 780 module.exports = _typeof = function _typeof(obj) { 781 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 782 }; 783 } 784 785 return _typeof(obj); 786} 787 788module.exports = _typeof; 789 790/***/ }), 791/* 14 */ 792/***/ (function(module, exports, __webpack_require__) { 793 794var fails = __webpack_require__(19); 795 796// Detect IE8's incomplete defineProperty implementation 797module.exports = !fails(function () { 798 // eslint-disable-next-line es/no-object-defineproperty -- required for testing 799 return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7; 800}); 801 802 803/***/ }), 804/* 15 */ 805/***/ (function(module, exports, __webpack_require__) { 806 807"use strict"; 808 809 810var _interopRequireWildcard = __webpack_require__(18); 811 812Object.defineProperty(exports, "__esModule", { 813 value: true 814}); 815exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exp
815orts.IX2BrowserSupport = void 0; 816 817var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(48)); 818 819exports.IX2BrowserSupport = IX2BrowserSupport; 820 821var IX2Easings = _interopRequireWildcard(__webpack_require__(116)); 822 823exports.IX2Easings = IX2Easings; 824 825var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(118)); 826 827exports.IX2EasingUtils = IX2EasingUtils; 828 829var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(269)); 830 831exports.IX2ElementsReducer = IX2ElementsReducer; 832 833var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(120)); 834 835exports.IX2VanillaPlugins = IX2VanillaPlugins; 836 837var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(271)); 838 839exports.IX2VanillaUtils = IX2VanillaUtils; 840 841/***/ }), 842/* 16 */ 843/***/ (function(module, exports, __webpack_require__) { 844 845var Symbol = __webpack_require__(23), 846 getRawTag = __webpack_require__(210), 847 objectToString = __webpack_require__(211); 848 849/** `Object#toString` result references. */ 850var nullTag = '[object Null]', 851 undefinedTag = '[object Undefined]'; 852 853/** Built-in value references. */ 854var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 855 856/** 857 * The base implementation of `getTag` without fallbacks for buggy environments. 858 * 859 * @private 860 * @param {*} value The value to query. 861 * @returns {string} Returns the `toStringTag`. 862 */ 863function baseGetTag(value) { 864 if (value == null) { 865 return value === undefined ? undefinedTag : nullTag; 866 } 867 return (symToStringTag && symToStringTag in Object(value)) 868 ? getRawTag(value) 869 : objectToString(value); 870} 871 872module.exports = baseGetTag; 873 874 875/***/ }), 876/* 17 */ 877/***/ (function(module, exports, __webpack_require__) { 878 879var isFunction = __webpack_require__(98), 880 isLength = __webpack_require__(56); 881 882/** 883 * Checks if `value` is array-like. A value is considered array-like if it's 884 * not a function and has a `value.length` that's an integer greater than or 885 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. 886 * 887 * @static 888 * @memberOf _ 889 * @since 4.0.0 890 * @category Lang 891 * @param {*} value The value to check. 892 * @returns {boolean} Returns `true` if `value` is array-like, else `false`. 893 * @example 894 * 895 * _.isArrayLike([1, 2, 3]); 896 * // => true 897 * 898 * _.isArrayLike(document.body.children); 899 * // => true 900 * 901 * _.isArrayLike('abc'); 902 * // => true 903 * 904 * _.isArrayLike(_.noop); 905 * // => false 906 */ 907function isArrayLike(value) { 908 return value != null && isLength(value.length) && !isFunction(value); 909} 910 911module.exports = isArrayLike; 912 913 914/***/ }), 915/* 18 */ 916/***/ (function(module, exports) { 917 918function _interopRequireWildcard(obj) { 919 if (obj && obj.__esModule) { 920 return obj; 921 } else { 922 var newObj = {}; 923 924 if (obj != null) { 925 for (var key in obj) { 926 if (Object.prototype.hasOwnProperty.call(obj, key)) { 927 var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; 928 929 if (desc.get || desc.set) { 930 Object.defineProperty(newObj, key, desc); 931 } else { 932 newObj[key] = obj[key]; 933 } 934 } 935 } 936 } 937 938 newObj["default"] = obj; 939 return newObj; 940 } 941} 942 943module.exports = _interopRequireWildcard; 944 945/***/ }), 946/* 19 */ 947/***/ (function(module, exports) { 948 949module.exports = function (exec) { 950 try { 951 return !!exec(); 952 } catch (error) { 953 return true; 954 } 955}; 956 957 958/***/ }), 959/* 20 */ 960/***/ (function(module, exports, __webpack_require__) { 961 962var isCallable = __webpack_require__(7); 963 964module.exports = function (it) { 965 return typeof it == 'object' ? it !== null : isCallable(it); 966}; 967 968 969/***/ }), 970/* 21 */ 971/***/ (function(module, exports) { 972 973function _defineProperty(obj, key, value) { 974 if (key in obj) { 975 Object.defineProperty(obj, key, { 976 value: value, 977 enumerable: true, 978 configurable: true, 979 writable: true 980 }); 981 } else { 982 obj[key] = value; 983 } 984 985 return obj; 986} 987 988module.exports = _defineProperty; 989 990/***/ }), 991/* 22 */ 992/***/ (function(module, exports, __webpack_require__) { 993 994"use strict"; 995 996 997Object.defineProperty(exports, "__esModule", { 998 value: true 999}); 1000 1001var _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; }; 1002 1003exports.clone = clone; 1004exports.addLast = addLast; 1005exports.addFirst = addFirst; 1006exports.removeLast = removeLast; 1007exports.removeFirst = removeFirst; 1008exports.insert = insert; 1009exports.removeAt = removeAt; 1010exports.replaceAt = replaceAt; 1011exports.getIn = getIn;
1012exports.set = set; 1013exports.setIn = setIn; 1014exports.update = update; 1015exports.updateIn = updateIn; 1016exports.merge = merge; 1017exports.mergeDeep = mergeDeep; 1018exports.mergeIn = mergeIn; 1019exports.omit = omit; 1020exports.addDefaults = addDefaults; 1021 1022 1023/*! 1024 * Timm 1025 * 1026 * Immutability helpers with fast reads and acceptable writes. 1027 * 1028 * @copyright Guillermo Grau Panea 2016 1029 * @license MIT 1030 */ 1031 1032var INVALID_ARGS = 'INVALID_ARGS'; 1033 1034// =============================================== 1035// ### Helpers 1036// =============================================== 1037 1038 1039function throwStr(msg) { 1040 throw new Error(msg); 1041} 1042 1043function getKeysAndSymbols(obj) { 1044 var keys = Object.keys(obj); 1045 if (Object.getOwnPropertySymbols) { 1046 return keys.concat(Object.getOwnPropertySymbols(obj)); 1047 } 1048 return keys; 1049} 1050 1051var hasOwnProperty = {}.hasOwnProperty; 1052 1053function clone(obj) { 1054 if (Array.isArray(obj)) return obj.slice(); 1055 var keys = getKeysAndSymbols(obj); 1056 var out = {}; 1057 for (var i = 0; i < keys.length; i++) { 1058 var key = keys[i]; 1059 out[key] = obj[key]; 1060 } 1061 return out; 1062} 1063 1064function doMerge(fAddDefaults, fDeep, first) { 1065 var out = first; 1066 !(out != null) && throwStr( false ? undefined : INVALID_ARGS); 1067 var fChanged = false; 1068 1069 for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { 1070 rest[_key - 3] = arguments[_key]; 1071 } 1072 1073 for (var idx = 0; idx < rest.length; idx++) { 1074 var obj = rest[idx]; 1075 if (obj == null) continue; 1076 var keys = getKeysAndSymbols(obj); 1077 if (!keys.length) continue; 1078 for (var j = 0; j <= keys.length; j++) { 1079 var key = keys[j]; 1080 if (fAddDefaults && out[key] !== undefined) continue; 1081 var nextVal = obj[key]; 1082 if (fDeep && isObject(out[key]) && isObject(nextVal)) { 1083 nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); 1084 }
1085 if (nextVal === undefined || nextVal === out[key]) continue; 1086 if (!fChanged) { 1087 fChanged = true; 1088 out = clone(out); 1089 } 1090 out[key] = nextVal; 1091 } 1092 } 1093 return out; 1094} 1095 1096function isObject(o) { 1097 var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); 1098 return o != null && (type === 'object' || type === 'function'); 1099} 1100 1101// _deepFreeze = (obj) -> 1102// Object.freeze obj 1103// for key in Object.getOwnPropertyNames obj 1104// val = obj[key] 1105// if isObject(val) and not Object.isFrozen val 1106// _deepFreeze val 1107// obj 1108 1109// =============================================== 1110// -- ### Arrays 1111// =============================================== 1112 1113// -- #### addLast() 1114// -- Returns a new array with an appended item or items. 1115// -- 1116// -- Usage: `addLast<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1117// -- 1118// -- ```js 1119// -- arr = ['a', 'b'] 1120// -- arr2 = addLast(arr, 'c') 1121// -- // ['a', 'b', 'c'] 1122// -- arr2 === arr 1123// -- // false 1124// -- arr3 = addLast(arr, ['c', 'd']) 1125// -- // ['a', 'b', 'c', 'd'] 1126// -- ``` 1127// `array.concat(val)` also handles the scalar case, 1128// but is apparently very slow 1129function addLast(array, val) { 1130 if (Array.isArray(val)) return array.concat(val); 1131 return array.concat([val]); 1132} 1133 1134// -- #### addFirst() 1135// -- Returns a new array with a prepended item or items. 1136// -- 1137// -- Usage: `addFirst<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1138// -- 1139// -- ```js 1140// -- arr = ['a', 'b'] 1141// -- arr2 = addFirst(arr, 'c') 1142// -- // ['c', 'a', 'b'] 1143// -- arr2 === arr 1144// -- // false 1145// -- arr3 = addFirst(arr, ['c', 'd']) 1146// -- // ['c', 'd', 'a', 'b'] 1147// -- ``` 1148function addFirst(array, val) { 1149 if (Array.isArray(val)) return val.concat(array); 1150 return [val].concat(array); 1151} 1152 1153// -- #### removeLast() 1154// -- Returns a new array removing the last item. 1155// -- 1156// -- Usage: `removeLast<T>(array: Array<T>): Array<T>` 1157// -- 1158// -- ```js 1159// -- arr = ['a', 'b'] 1160// -- arr2 = removeLast(arr) 1161// -- // ['a'] 1162// -- arr2 === arr 1163// -- // false 1164// -- 1165// -- // The same array is returned if there are no changes: 1166// -- arr3 = [] 1167// -- removeLast(arr3) === arr3 1168// -- // true 1169// -- ``` 1170function removeLast(array) { 1171 if (!array.length) return array; 1172 return array.slice(0, array.length - 1); 1173} 1174 1175// -- #### removeFirst() 1176// -- Returns a new array removing the first item. 1177// -- 1178// -- Usage: `removeFirst<T>(array: Array<T>): Array<T>` 1179// -- 1180// -- ```js 1181// -- arr = ['a', 'b'] 1182// -- arr2 = removeFirst(arr) 1183// -- // ['b'] 1184// -- arr2 === arr 1185// -- // false 1186// -- 1187// -- // The same array is returned if there are no changes: 1188// -- arr3 = [] 1189// -- removeFirst(arr3) === arr3 1190// -- // true 1191// -- ``` 1192function removeFirst(array) { 1193 if (!array.length) return array; 1194 return array.slice(1); 1195} 1196 1197// -- #### insert() 1198// -- Returns a new array obtained by inserting an item or items 1199// -- at a specified index. 1200// -- 1201// -- Usage: `insert<T>(array: Array<T>, idx: number, val: Array<T>|T): Array<T>` 1202// -- 1203// -- ```js 1204// -- arr = ['a', 'b', 'c'] 1205// -- arr2 = insert(arr, 1, 'd') 1206// -- // ['a', 'd', 'b', 'c'] 1207// -- arr2 === arr 1208// -- // false 1209// -- insert(arr, 1, ['d', 'e']) 1210// -- // ['a', 'd', 'e', 'b', 'c'] 1211// -- ``` 1212function insert(array, idx, val) { 1213 return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); 1214} 1215 1216// -- #### removeAt() 1217// -- Returns a new array obtained by removing an item at 1218// -- a specified index. 1219// -- 1220// -- Usage: `removeAt<T>(array: Array<T>, idx: number): Array<T>` 1221// -- 1222// -- ```js 1223// -- arr = ['a', 'b', 'c'] 1224// -- arr2 = removeAt(arr, 1) 1225// -- // ['a', 'c'] 1226// -- arr2 === arr 1227// -- // false 1228// -- 1229// -- // The same array is returned if there are no changes: 1230// -- removeAt(arr, 4) === arr 1231// -- // true 1232// -- ``` 1233function removeAt(array, idx) { 1234 if (idx >= array.length || idx < 0) return array; 1235 return array.slice(0, idx).concat(array.slice(idx + 1)); 1236} 1237 1238// -- #### replaceAt() 1239// -- Returns a new array obtained by replacing an item at 1240// -- a specified index. If the provided item is the same as 1241// -- (*referentially equal to*) the previous item at that position, 1242// -- the original array is returned. 1243// -- 1244// -- Usage: `replaceAt<T>(array: Array<T>, idx: number, newItem: T): Array<T>` 1245// -- 1246// -- ```js 1247// -- arr = ['a', 'b', 'c']
1248// -- arr2 = replaceAt(arr, 1, 'd') 1249// -- // ['a', 'd', 'c'] 1250// -- arr2 === arr 1251// -- // false 1252// -- 1253// -- // The same object is returned if there are no changes: 1254// -- replaceAt(arr, 1, 'b') === arr 1255// -- // true 1256// -- ``` 1257function replaceAt(array, idx, newItem) { 1258 if (array[idx] === newItem) return array; 1259 var len = array.length; 1260 var result = Array(len); 1261 for (var i = 0; i < len; i++) { 1262 result[i] = array[i]; 1263 } 1264 result[idx] = newItem; 1265 return result; 1266} 1267 1268// =============================================== 1269// -- ### Collections (objects and arrays) 1270// =============================================== 1271// -- The following types are used throughout this section 1272// -- ```js 1273// -- type ArrayOrObject = Array<any>|Object; 1274// -- type Key = number|string; 1275// -- ``` 1276 1277// -- #### getIn() 1278// -- Returns a value from an object at a given path. Works with 1279// -- nested arrays and objects. If the path does not exist, it returns 1280// -- `undefined`. 1281// -- 1282// -- Usage: `getIn(obj: ?ArrayOrObject, path: Array<Key>): any` 1283// -- 1284// -- ```js 1285// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } 1286// -- getIn(obj, ['d', 'd1']) 1287// -- // 3 1288// -- getIn(obj, ['e', 1]) 1289// -- // 'b' 1290// -- ``` 1291function getIn(obj, path) { 1292 !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); 1293 if (obj == null) return undefined; 1294 var ptr = obj; 1295 for (var i = 0; i < path.length; i++) { 1296 var key = path[i]; 1297 ptr = ptr != null ? ptr[key] : undefined; 1298 if (ptr === undefined) return ptr; 1299 } 1300 return ptr; 1301} 1302 1303// -- #### set() 1304// -- Returns a new object with a modified attribute. 1305// -- If the provided value is the same as (*referentially equal to*) 1306// -- the previous value, the original object is returned. 1307// -- 1308// -- Usage: `set<T>(obj: ?T, key: Key, val: any): T` 1309// -- 1310// -- ```js 1311// -- obj = { a: 1, b: 2, c: 3 } 1312// -- obj2 = set(obj, 'b', 5) 1313// -- // { a: 1, b: 5, c: 3 } 1314// -- obj2 === obj 1315// -- // false 1316// -- 1317// -- // The same object is returned if there are no changes: 1318// -- set(obj, 'b', 2) === obj 1319// -- // true 1320// -- ``` 1321function set(obj, key, val) { 1322 var fallback = typeof key === 'number' ? [] : {}; 1323 var finalObj = obj == null ? fallback : obj; 1324 if (finalObj[key] === val) return finalObj; 1325 var obj2 = clone(finalObj); 1326 obj2[key] = val; 1327 return obj2; 1328} 1329 1330// -- #### setIn() 1331// -- Returns a new object with a modified **nested** attribute. 1332// -- 1333// -- Notes: 1334// -- 1335// -- * If the provided value is the same as (*referentially equal to*) 1336// -- the previous value, the original object is returned. 1337// -- * If the path does not exist, it will be created before setting 1338// -- the new value. 1339// -- 1340// -- Usage: `setIn<T: ArrayOrObject>(obj: T, path: Array<Key>, val: any): T` 1341// -- 1342// -- ```js 1343// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1344// -- obj2 = setIn(obj, ['d', 'd1'], 4) 1345// -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1346// -- obj2 === obj 1347// -- // false 1348// -- obj2.d === obj.d 1349// -- // false 1350// -- obj2.e === obj.e 1351// -- // true 1352// -- 1353// -- // The same object is returned if there are no changes: 1354// -- obj3 = setIn(obj, ['d', 'd1'], 3) 1355// -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1356// -- obj3 === obj 1357// -- // true 1358// -- obj3.d === obj.d 1359// -- // true 1360// -- obj3.e === obj.e 1361// -- // true 1362// -- 1363// -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: 1364// -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) 1365// -- // { a: 3, unknown: [{ path: 4 }] } 1366// -- ``` 1367function doSetIn(obj, path, val, idx) { 1368 var newValue = void 0; 1369 var key = path[idx]; 1370 if (idx === path.length - 1) { 1371 newValue = val; 1372 } else { 1373 var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; 1374 newValue = doSetIn(nestedObj, path, val, idx + 1); 1375 } 1376 return set(obj, key, newValue); 1377} 1378 1379function setIn(obj, path, val) { 1380 if (!path.length) return val; 1381 return doSetIn(obj, path, val, 0); 1382} 1383 1384// -- #### update() 1385// -- Returns a new object with a modified attribute,
1386// -- calculated via a user-provided callback based on the current value. 1387// -- If the calculated value is the same as (*referentially equal to*) 1388// -- the previous value, the original object is returned. 1389// -- 1390// -- Usage: `update<T: ArrayOrObject>(obj: T, key: Key, 1391// -- fnUpdate: (prevValue: any) => any): T` 1392// -- 1393// -- ```js 1394// -- obj = { a: 1, b: 2, c: 3 } 1395// -- obj2 = update(obj, 'b', (val) => val + 1) 1396// -- // { a: 1, b: 3, c: 3 } 1397// -- obj2 === obj 1398// -- // false 1399// -- 1400// -- // The same object is returned if there are no changes: 1401// -- update(obj, 'b', (val) => val) === obj 1402// -- // true 1403// -- ``` 1404function update(obj, key, fnUpdate) { 1405 var prevVal = obj == null ? undefined : obj[key]; 1406 var nextVal = fnUpdate(prevVal); 1407 return set(obj, key, nextVal); 1408} 1409 1410// -- #### updateIn() 1411// -- Returns a new object with a modified **nested** attribute, 1412// -- calculated via a user-provided callback based on the current value. 1413// -- If the calculated value is the same as (*referentially equal to*) 1414// -- the previous value, the original object is returned. 1415// -- 1416// -- Usage: `updateIn<T: ArrayOrObject>(obj: T, path: Array<Key>, 1417// -- fnUpdate: (prevValue: any) => any): T` 1418// -- 1419// -- ```js 1420// -- obj = { a: 1, d: { d1: 3, d2: 4 } } 1421// -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) 1422// -- // { a: 1, d: { d1: 4, d2: 4 } } 1423// -- obj2 === obj 1424// -- // false 1425// -- 1426// -- // The same object is returned if there are no changes: 1427// -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) 1428// -- // { a: 1, d: { d1: 3, d2: 4 } } 1429// -- obj3 === obj 1430// -- // true 1431// -- ``` 1432function updateIn(obj, path, fnUpdate) { 1433 var prevVal = getIn(obj, path); 1434 var nextVal = fnUpdate(prevVal); 1435 return setIn(obj, path, nextVal); 1436} 1437 1438// -- #### merge() 1439// -- Returns a new object built as follows: the overlapping keys from the 1440// -- second one overwrite the corresponding entries from the first one. 1441// -- Similar to `Object.assign()`, but immutable. 1442// -- 1443// -- Usage: 1444// -- 1445// -- * `merge(obj1: Object, obj2: ?Object): Object` 1446// -- * `merge(obj1: Object, ...objects: Array<?Object>): Object` 1447// -- 1448// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1449// -- new to* `obj1`, i.e. if either of the following 1450// -- conditions are true: 1451// -- 1452// -- * `obj2` is `null` or `undefined` 1453// -- * `obj2` is an object, but it is empty 1454// -- * All attributes of `obj2` are `undefined` 1455// -- * All attributes of `obj2` are referentially equal to the 1456// -- corresponding attributes of `obj1` 1457// -- 1458// -- Note that `undefined` attributes in `obj2` do not modify the 1459// -- corresponding attributes in `obj1`. 1460// -- 1461// -- ```js 1462// -- obj1 = { a: 1, b: 2, c: 3 } 1463// -- obj2 = { c: 4, d: 5 } 1464// -- obj3 = merge(obj1, obj2) 1465// -- // { a: 1, b: 2, c: 4, d: 5 } 1466// -- obj3 === obj1 1467// -- // false 1468// -- 1469// -- // The same object is returned if there are no changes: 1470// -- merge(obj1, { c: 3 }) === obj1 1471// -- // true 1472// -- ``` 1473function merge(a, b, c, d, e, f) { 1474 for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { 1475 rest[_key2 - 6] = arguments[_key2]; 1476 } 1477 1478 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); 1479} 1480 1481// -- #### mergeDeep() 1482// -- Returns a new object built as follows: the overlapping keys from the 1483// -- second one overwrite the corresponding entries from the first one. 1484// -- If both the first and second entries are objects they are merged recursively. 1485// -- Similar to `Object.assign()`, but immutable, and deeply merging. 1486// -- 1487// -- Usage: 1488// -- 1489// -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` 1490// -- * `mergeDeep(obj1: Object, ...objects: Array<?Object>): Object` 1491// -- 1492// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1493// -- new to* `obj1`, i.e. if either of the following 1494// -- conditions are true: 1495// -- 1496// -- * `obj2` is `null` or `undefined` 1497// -- * `obj2` is an object, but it is empty 1498// -- * All attributes of `obj2` are `undefined` 1499// -- * All attributes of `obj2` are referentially equal to the
1500// -- corresponding attributes of `obj1` 1501// -- 1502// -- Note that `undefined` attributes in `obj2` do not modify the 1503// -- corresponding attributes in `obj1`. 1504// -- 1505// -- ```js 1506// -- obj1 = { a: 1, b: 2, c: { a: 1 } } 1507// -- obj2 = { b: 3, c: { b: 2 } } 1508// -- obj3 = mergeDeep(obj1, obj2) 1509// -- // { a: 1, b: 3, c: { a: 1, b: 2 } } 1510// -- obj3 === obj1 1511// -- // false 1512// -- 1513// -- // The same object is returned if there are no changes: 1514// -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 1515// -- // true 1516// -- ``` 1517function mergeDeep(a, b, c, d, e, f) { 1518 for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { 1519 rest[_key3 - 6] = arguments[_key3]; 1520 } 1521 1522 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); 1523} 1524 1525// -- #### mergeIn() 1526// -- Similar to `merge()`, but merging the value at a given nested path. 1527// -- Note that the returned type is the same as that of the first argument. 1528// -- 1529// -- Usage: 1530// -- 1531// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, obj2: ?Object): T` 1532// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, 1533// -- ...objects: Array<?Object>): T` 1534// -- 1535// -- ```js 1536// -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } 1537// -- obj2 = { d3: 5 } 1538// -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) 1539// -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } 1540// -- obj3 === obj1 1541// -- // false 1542// -- 1543// -- // The same object is returned if there are no changes: 1544// -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 1545// -- // true 1546// -- ``` 1547function mergeIn(a, path, b, c, d, e, f) { 1548 var prevVal = getIn(a, path); 1549 if (prevVal == null) prevVal = {}; 1550 var nextVal = void 0; 1551 1552 for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { 1553 rest[_key4 - 7] = arguments[_key4]; 1554 } 1555 1556 if (rest.length) { 1557 nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); 1558 } else { 1559 nextVal = doMerge(false, false, prevVal, b, c, d, e, f); 1560 } 1561 return setIn(a, path, nextVal); 1562} 1563 1564// -- #### omit() 1565// -- Returns an object excluding one or several attributes. 1566// -- 1567// -- Usage: `omit(obj: Object, attrs: Array<string>|string): Object` 1568// 1569// -- ```js 1570// -- obj = { a: 1, b: 2, c: 3, d: 4 } 1571// -- omit(obj, 'a') 1572// -- // { b: 2, c: 3, d: 4 } 1573// -- omit(obj, ['b', 'c']) 1574// -- // { a: 1, d: 4 } 1575// -- 1576// -- // The same object is returned if there are no changes: 1577// -- omit(obj, 'z') === obj1 1578// -- // true 1579// -- ``` 1580function omit(obj, attrs) { 1581 var omitList = Array.isArray(attrs) ? attrs : [attrs]; 1582 var fDoSomething = false; 1583 for (var i = 0; i < omitList.length; i++) { 1584 if (hasOwnProperty.call(obj, omitList[i])) { 1585 fDoSomething = true; 1586 break; 1587 } 1588 } 1589 if (!fDoSomething) return obj; 1590 var out = {}; 1591 var keys = getKeysAndSymbols(obj); 1592 for (var _i = 0; _i < keys.length; _i++) { 1593 var key = keys[_i]; 1594 if (omitList.indexOf(key) >= 0) continue; 1595 out[key] = obj[key]; 1596 } 1597 return out; 1598} 1599 1600// -- #### addDefaults() 1601// -- Returns a new object built as follows: `undefined` keys in the first one 1602// -- are filled in with the corresponding values from the second one 1603// -- (even if they are `null`). 1604// -- 1605// -- Usage: 1606// -- 1607// -- * `addDefaults(obj: Object, defaults: Object): Object` 1608// -- * `addDefaults(obj: Object, ...defaultObjects: Array<?Object>): Object` 1609// -- 1610// -- ```js 1611// -- obj1 = { a: 1, b: 2, c: 3 } 1612// -- obj2 = { c: 4, d: 5, e: null } 1613// -- obj3 = addDefaults(obj1, obj2) 1614// -- // { a: 1, b: 2, c: 3, d: 5, e: null } 1615// -- obj3 === obj1 1616// -- // false 1617// -- 1618// -- // The same object is returned if there are no changes: 1619// -- addDefaults(obj1, { c: 4 }) === obj1 1620// -- // true 1621// -- ``` 1622function addDefaults(a, b, c, d, e, f) { 1623 for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { 1624 rest[_key5 - 6] = arguments[_key5]; 1625 } 1626 1627 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); 1628} 1629 1630// =============================================== 1631// ### Public API 1632// =============================================== 1633var timm = { 1634 clone: clone, 1635 addLast: addLast, 1636 addFirst: addFirst, 1637 removeLast: removeLast, 1638 removeFirst: removeFirst, 1639 insert: insert, 1640 removeAt: removeAt, 1641 replaceAt: replaceAt, 1642 1643 getIn: getIn, 1644 // eslint-disable-next-line object-shorthand 1645 set: set, // so that flow doesn't complain 1646 setIn: setIn, 1647 update: update, 1648 updateIn: updateIn, 1649 merge: merge, 1650 mergeDeep: mergeDeep, 1651 mergeIn: mergeIn, 1652 omit: omit, 1653 addDefaults: addDefaults 1654}; 1655 1656exports.default = timm; 1657 1658 1659/***/ }), 1660/* 23 */ 1661/***/ (function(module, exports, __webpack_require__) { 1662 1663var root = __webpack_require__(6); 1664 1665/** Built-in value references. */ 1666var Symbol = root.Symbol; 1667 1668module.exports = Symbol; 1669 1670 1671/***/ }), 1672/* 24 */ 1673/***/ (function(module, exports, __webpack_require__) { 1674 1675var isSymbol = __webpack_require__(38); 1676 1677/** Used as references for various `Number` constants. */ 1678var INFINITY = 1 / 0; 1679 1680/** 1681 * Converts `value` to a string key if it's not a string or symbol. 1682 * 1683 * @private 1684 * @param {*} value The value to inspect. 1685 * @returns {string|symbol} Returns the key. 1686 */ 1687function toKey(value) { 1688 if (typeof value == 'string' || isSymbol(value)) { 1689 return value; 1690 } 1691 var result = (value + ''); 1692 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 1693} 1694 1695module.exports = toKey; 1696 1697 1698/***/ }), 1699/* 25 */
1700/***/ (function(module, exports) { 1701 1702var g; 1703 1704// This works in non-strict mode 1705g = (function() { 1706 return this; 1707})(); 1708 1709try { 1710 // This works if eval is allowed (see CSP) 1711 g = g || new Function("return this")(); 1712} catch (e) { 1713 // This works if the window reference is available 1714 if (typeof window === "object") g = window; 1715} 1716 1717// g can still be undefined, but nothing to do about it... 1718// We return undefined, instead of nothing here, so it's 1719// easier to handle this case. if(!global) { ...} 1720 1721module.exports = g; 1722 1723 1724/***/ }), 1725/* 26 */ 1726/***/ (function(module, exports, __webpack_require__) { 1727 1728// toObject with fallback for non-array-like ES3 strings 1729var IndexedObject = __webpack_require__(147); 1730var requireObjectCoercible = __webpack_require__(72); 1731 1732module.exports = function (it) { 1733 return IndexedObject(requireObjectCoercible(it)); 1734}; 1735 1736 1737/***/ }), 1738/* 27 */ 1739/***/ (function(module, exports, __webpack_require__) { 1740 1741var global = __webpack_require__(1); 1742var isCallable = __webpack_require__(7); 1743 1744var aFunction = function (argument) { 1745 return isCallable(argument) ? argument : undefined; 1746}; 1747 1748module.exports = function (namespace, method) { 1749 return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method]; 1750}; 1751 1752 1753/***/ }), 1754/* 28 */ 1755/***/ (function(module, exports, __webpack_require__) { 1756 1757var global = __webpack_require__(1); 1758var DESCRIPTORS = __webpack_require__(14); 1759var IE8_DOM_DEFINE = __webpack_require__(80); 1760var anObject = __webpack_require__(29); 1761var toPropertyKey = __webpack_require__(73); 1762 1763var TypeError = global.TypeError; 1764// eslint-disable-next-line es/no-object-defineproperty -- safe 1765var $defineProperty = Object.defineProperty; 1766 1767// `Object.defineProperty` method 1768// https://tc39.es/ecma262/#sec-object.defineproperty 1769exports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) { 1770 anObject(O); 1771 P = toPropertyKey(P); 1772 anObject(Attributes); 1773 if (IE8_DOM_DEFINE) try { 1774 return $defineProperty(O, P, Attributes); 1775 } catch (error) { /* empty */ } 1776 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 1777 if ('value' in Attributes) O[P] = Attributes.value; 1778 return O; 1779}; 1780 1781 1782/***/ }), 1783/* 29 */ 1784/***/ (function(module, exports, __webpack_require__) { 1785 1786var global = __webpack_require__(1); 1787var isObject = __webpack_require__(20); 1788 1789var String = global.String; 1790var TypeError = global.TypeError; 1791 1792// `Assert: Type(argument) is Object` 1793module.exports = function (argument) { 1794 if (isObject(argument)) return argument; 1795 throw TypeError(String(argument) + ' is not an object'); 1796}; 1797 1798 1799/***/ }), 1800/* 30 */ 1801/***/ (function(module, exports) { 1802 1803function _extends() { 1804 module.exports = _extends = Object.assign || function (target) { 1805 for (var i = 1; i < arguments.length; i++) { 1806 var source = arguments[i]; 1807 1808 for (var key in source) { 1809 if (Object.prototype.hasOwnProperty.call(source, key)) { 1810 target[key] = source[key]; 1811 } 1812 } 1813 } 1814 1815 return target; 1816 }; 1817 1818 return _extends.apply(this, arguments); 1819} 1820 1821module.exports = _extends; 1822 1823/***/ }), 1824/* 31 */ 1825/***/ (function(module, exports, __webpack_require__) { 1826 1827var listCacheClear = __webpack_require__(199), 1828 listCacheDelete = __webpack_require__(200), 1829 listCacheGet = __webpack_require__(201), 1830 listCacheHas = __webpack_require__(202), 1831 listCacheSet = __webpack_require__(203); 1832 1833/** 1834 * Creates an list cache object. 1835 * 1836 * @private 1837 * @constructor 1838 * @param {Array} [entries] The key-value pairs to cache. 1839 */ 1840function ListCache(entries) { 1841 var index = -1, 1842 length = entries == null ? 0 : entries.length; 1843 1844 this.clear(); 1845 while (++index < length) { 1846 var entry = entries[index]; 1847 this.set(entry[0], entry[1]); 1848 } 1849} 1850 1851// Add methods to `ListCache`. 1852ListCache.prototype.clear = listCacheClear; 1853ListCache.prototype['delete'] = listCacheDelete; 1854ListCache.prototype.get = listCacheGet; 1855ListCache.prototype.has = listCacheHas; 1856ListCache.prototype.set = listCacheSet; 1857 1858module.exports = ListCache; 1859 1860 1861/***/ }), 1862/* 32 */ 1863/***/ (function(module, exports, __webpack_require__) { 1864 1865var eq = __webpack_require__(49); 1866 1867/** 1868 * Gets the index at which the `key` is found in `array` of key-value pairs. 1869 * 1870 * @private 1871 * @param {Array} array The array to inspect. 1872 * @param {*}
vendor: 4,608 bytes, lines 1872-2075
1872 key The key to search for. 1873 * @returns {number} Returns the index of the matched value, else `-1`. 1874 */ 1875function assocIndexOf(array, key) { 1876 var length = array.length; 1877 while (length--) { 1878 if (eq(array[length][0], key)) { 1879 return length; 1880 } 1881 } 1882 return -1; 1883} 1884 1885module.exports = assocIndexOf; 1886 1887 1888/***/ }), 1889/* 33 */ 1890/***/ (function(module, exports, __webpack_require__) { 1891 1892var getNative = __webpack_require__(11); 1893 1894/* Built-in method references that are verified to be native. */ 1895var nativeCreate = getNative(Object, 'create'); 1896 1897module.exports = nativeCreate; 1898 1899 1900/***/ }), 1901/* 34 */ 1902/***/ (function(module, exports, __webpack_require__) { 1903 1904var isKeyable = __webpack_require__(223); 1905 1906/** 1907 * Gets the data for `map`. 1908 * 1909 * @private 1910 * @param {Object} map The map to query. 1911 * @param {string} key The reference key. 1912 * @returns {*} Returns the map data. 1913 */ 1914function getMapData(map, key) { 1915 var data = map.__data__; 1916 return isKeyable(key) 1917 ? data[typeof key == 'string' ? 'string' : 'hash'] 1918 : data.map; 1919} 1920 1921module.exports = getMapData; 1922 1923 1924/***/ }), 1925/* 35 */ 1926/***/ (function(module, exports, __webpack_require__) { 1927 1928var arrayLikeKeys = __webpack_require__(106), 1929 baseKeys = __webpack_require__(57), 1930 isArrayLike = __webpack_require__(17); 1931 1932/** 1933 * Creates an array of the own enumerable property names of `object`. 1934 * 1935 * **Note:** Non-object values are coerced to objects. See the 1936 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 1937 * for more details. 1938 * 1939 * @static 1940 * @since 0.1.0 1941 * @memberOf _ 1942 * @category Object 1943 * @param {Object} object The object to query. 1944 * @returns {Array} Returns the array of property names. 1945 * @example 1946 * 1947 * function Foo() { 1948 * this.a = 1; 1949 * this.b = 2; 1950 * } 1951 * 1952 * Foo.prototype.c = 3; 1953 * 1954 * _.keys(new Foo); 1955 * // => ['a', 'b'] (iteration order is not guaranteed) 1956 * 1957 * _.keys('hi'); 1958 * // => ['0', '1'] 1959 */ 1960function keys(object) { 1961 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 1962} 1963 1964module.exports = keys; 1965 1966 1967/***/ }), 1968/* 36 */ 1969/***/ (function(module, exports, __webpack_require__) { 1970 1971var baseIsArguments = __webpack_require__(241), 1972 isObjectLike = __webpack_require__(12); 1973 1974/** Used for built-in method references. */ 1975var objectProto = Object.prototype; 1976 1977/** Used to check objects for own properties. */ 1978var hasOwnProperty = objectProto.hasOwnProperty; 1979 1980/** Built-in value references. */ 1981var propertyIsEnumerable = objectProto.propertyIsEnumerable; 1982 1983/** 1984 * Checks if `value` is likely an `arguments` object. 1985 * 1986 * @static 1987 * @memberOf _ 1988 * @since 0.1.0 1989 * @category Lang 1990 * @param {*} value The value to check. 1991 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 1992 * else `false`. 1993 * @example 1994 * 1995 * _.isArguments(function() { return arguments; }()); 1996 * // => true 1997 * 1998 * _.isArguments([1, 2, 3]); 1999 * // => false 2000 */ 2001var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { 2002 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && 2003 !propertyIsEnumerable.call(value, 'callee'); 2004}; 2005 2006module.exports = isArguments; 2007 2008 2009/***/ }), 2010/* 37 */ 2011/***/ (function(module, exports, __webpack_require__) { 2012 2013var isArray = __webpack_require__(2), 2014 isKey = __webpack_require__(62), 2015 stringToPath = __webpack_require__(252), 2016 toString = __webpack_require__(255); 2017 2018/** 2019 * Casts `value` to a path array if it's not one. 2020 * 2021 * @private 2022 * @param {*} value The value to inspect. 2023 * @param {Object} [object] The object to query keys on. 2024 * @returns {Array} Returns the cast property path array. 2025 */ 2026function castPath(value, object) { 2027 if (isArray(value)) { 2028 return value; 2029 } 2030 return isKey(value, object) ? [value] : stringToPath(toString(value)); 2031} 2032 2033module.exports = castPath; 2034 2035 2036/***/ }), 2037/* 38 */ 2038/***/ (function(module, exports, __webpack_require__) { 2039 2040var baseGetTag = __webpack_require__(16), 2041 isObjectLike = __webpack_require__(12); 2042 2043/** `Object#toString` result references. */ 2044var symbolTag = '[object Symbol]'; 2045 2046/** 2047 * Checks if `value` is classified as a `Symbol` primitive or object. 2048 * 2049 * @static 2050 * @memberOf _ 2051 * @since 4.0.0 2052 * @category Lang 2053 * @param {*} value The value to check. 2054 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 2055 * @example 2056 * 2057 * _.isSymbol(Symbol.iterator); 2058 * // => true 2059 * 2060 * _.isSymbol('abc'); 2061 * // => false 2062 */ 2063function isSymbol(value) { 2064 return typeof value == 'symbol' || 2065 (isObjectLike(value) && baseGetTag(value) == symbolTag); 2066} 2067 2068module.exports = isSymbol; 2069 2070 2071/***/ }), 2072/* 39 */ 2073/***/ (function(module, exports, __webpack_require__) { 2074 2075"use strict";
2076// @wf-will-never-add-flow-to-this-file 2077 2078/* globals window, document */ 2079 2080/* eslint-disable no-var */ 2081// eslint-disable-next-line strict 2082 2083 2084var IXEvents = __webpack_require__(138); 2085 2086function dispatchCustomEvent(element, eventName) { 2087 var event = document.createEvent('CustomEvent'); 2088 event.initCustomEvent(eventName, true, true, null); 2089 element.dispatchEvent(event); 2090} 2091/** 2092 * Webflow: IX Event triggers for other modules 2093 */ 2094 2095 2096var $ = window.jQuery; 2097var api = {}; 2098var namespace = '.w-ix'; 2099var eventTriggers = { 2100 reset: function reset(i, el) { 2101 IXEvents.triggers.reset(i, el); 2102 }, 2103 intro: function intro(i, el) { 2104 IXEvents.triggers.intro(i, el); 2105 dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); 2106 }, 2107 outro: function outro(i, el) { 2108 IXEvents.triggers.outro(i, el); 2109 dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); 2110 } 2111}; 2112api.triggers = {}; 2113api.types = { 2114 INTRO: 'w-ix-intro' + namespace, 2115 OUTRO: 'w-ix-outro' + namespace 2116}; 2117$.extend(api.triggers, eventTriggers); 2118module.exports = api; 2119 2120/***/ }), 2121/* 40 */ 2122/***/ (function(module, exports) { 2123 2124var call = Function.prototype.call; 2125 2126module.exports = call.bind ? call.bind(call) : function () { 2127 return call.apply(call, arguments); 2128}; 2129 2130 2131/***/ }), 2132/* 41 */ 2133/***/ (function(module, exports, __webpack_require__) { 2134 2135var global = __webpack_require__(1); 2136var setGlobal = __webpack_require__(42); 2137 2138var SHARED = '__core-js_shared__'; 2139var store = global[SHARED] || setGlobal(SHARED, {}); 2140 2141module.exports = store; 2142 2143 2144/***/ }), 2145/* 42 */ 2146/***/ (function(module, exports, __webpack_require__) { 2147 2148var global = __webpack_require__(1); 2149 2150// eslint-disable-next-line es/no-object-defineproperty -- safe 2151var defineProperty = Object.defineProperty; 2152 2153module.exports = function (key, value) { 2154 try { 2155 defineProperty(global, key, { value: value, configurable: true, writable: true }); 2156 } catch (error) { 2157 global[key] = value; 2158 } return value; 2159}; 2160 2161 2162/***/ }), 2163/* 43 */ 2164/***/ (function(module, exports, __webpack_require__) { 2165 2166var DESCRIPTORS = __webpack_require__(14); 2167var definePropertyModule = __webpack_require__(28); 2168var createPropertyDescriptor = __webpack_require__(71); 2169 2170module.exports = DESCRIPTORS ? function (object, key, value) { 2171 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 2172} : function (object, key, value) { 2173 object[key] = value; 2174 return object; 2175}; 2176 2177 2178/***/ }), 2179/* 44 */ 2180/***/ (function(module, exports) { 2181 2182module.exports = {}; 2183 2184 2185/***/ }), 2186/* 45 */ 2187/***/ (function(module, exports) { 2188 2189// IE8- don't enum bug keys 2190module.exports = [ 2191 'constructor', 2192 'hasOwnProperty', 2193 'isPrototypeOf', 2194 'propertyIsEnumerable', 2195 'toLocaleString', 2196 'toString', 2197 'valueOf' 2198]; 2199 2200 2201/***/ }), 2202/* 46 */ 2203/***/ (function(module, __webpack_exports__, __webpack_require__) { 2204 2205"use strict"; 2206__webpack_require__.r(__webpack_exports__); 2207/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); 2208/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); 2209/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(88); 2210/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(185); 2211 2212 2213 2214/** 2215 * These are private action types reserved by Redux. 2216 * For any unknown actions, you must return the current state. 2217 * If the current state is undefined, you must return the initial state. 2218 * Do not reference these action types directly in your code. 2219 */ 2220var ActionTypes = { 2221 INIT: '@@redux/INIT' 2222}; 2223 2224/** 2225 * Creates a Redux store that holds the state tree. 2226 * The only way to change the data in the store is to call `dispatch()` on it. 2227 *
2228 * There should only be a single store in your app. To specify how different 2229 * parts of the state tree respond to actions, you may combine several reducers 2230 * into a single reducer function by using `combineReducers`. 2231 * 2232 * @param {Function} reducer A function that returns the next state tree, given 2233 * the current state tree and the action to handle. 2234 * 2235 * @param {any} [preloadedState] The initial state. You may optionally specify it 2236 * to hydrate the state from the server in universal apps, or to restore a 2237 * previously serialized user session. 2238 * If you use `combineReducers` to produce the root reducer function, this must be 2239 * an object with the same shape as `combineReducers` keys. 2240 * 2241 * @param {Function} enhancer The store enhancer. You may optionally specify it 2242 * to enhance the store with third-party capabilities such as middleware, 2243 * time travel, persistence, etc. The only store enhancer that ships with Redux 2244 * is `applyMiddleware()`. 2245 * 2246 * @returns {Store} A Redux store that lets you read the state, dispatch actions 2247 * and subscribe to changes. 2248 */ 2249function createStore(reducer, preloadedState, enhancer) { 2250 var _ref2; 2251 2252 if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { 2253 enhancer = preloadedState; 2254 preloadedState = undefined; 2255 } 2256 2257 if (typeof enhancer !== 'undefined') { 2258 if (typeof enhancer !== 'function') { 2259 throw new Error('Expected the enhancer to be a function.'); 2260 } 2261 2262 return enhancer(createStore)(reducer, preloadedState); 2263 } 2264 2265 if (typeof reducer !== 'function') { 2266 throw new Error('Expected the reducer to be a function.'); 2267 } 2268 2269 var currentReducer = reducer; 2270 var currentState = preloadedState; 2271 var currentListeners = []; 2272 var nextListeners = currentListeners; 2273 var isDispatching = false; 2274 2275 function ensureCanMutateNextListeners() { 2276 if (nextListeners === currentListeners) { 2277 nextListeners = currentListeners.slice(); 2278 } 2279 } 2280 2281 /** 2282 * Reads the state tree managed by the store. 2283 * 2284 * @returns {any} The current state tree of your application. 2285 */ 2286 function getState() { 2287 return currentState; 2288 } 2289 2290 /** 2291 * Adds a change listener. It will be called any time an action is dispatched, 2292 * and some part of the state tree may potentially have changed. You may then 2293 * call `getState()` to read the current state tree inside the callback. 2294 * 2295 * You may call `dispatch()` from a change listener, with the following 2296 * caveats: 2297 * 2298 * 1. The subscriptions are snapshotted just before every `dispatch()` call. 2299 * If you subscribe or unsubscribe while the listeners are being invoked, this 2300 * will not have any effect on the `dispatch()` that is currently in progress. 2301 * However, the next `dispatch()` call, whether nested or not, will use a more 2302 * recent snapshot of the subscription list. 2303 * 2304 * 2. The listener should not expect to see all state changes, as the state 2305 * might have been updated multiple times during a nested `dispatch()` before 2306 * the listener is called. It is, however, guaranteed that all subscribers 2307 * registered before the `dispatch()` started will be called with the latest 2308 * state by the time it exits. 2309 * 2310 * @param {Function} listener A callback to be invoked on every dispatch. 2311 * @returns {Function} A function to remove this change listener. 2312 */ 2313 function subscribe(listener) { 2314 if (typeof listener !== 'function') { 2315 throw new Error('Expected listener to be a function.'); 2316 } 2317 2318 var isSubscribed = true; 2319 2320 ensureCanMutateNextListeners(); 2321 nextListeners.push(listener); 2322 2323 return function unsubscribe() { 2324 if (!isSubscribed) { 2325 return; 2326 } 2327 2328 isSubscribed = false; 2329 2330 ensureCanMutateNextListeners(); 2331 var index = nextListeners.indexOf(listener); 2332 nextListeners.splice(index, 1); 2333 }; 2334 } 2335 2336 /** 2337 * Dispatches an action. It is the only way to trigger a state change. 2338 * 2339 * The `reducer` function, used to create the store, will be called with the 2340 * current state tree and the given `action`. Its return value will 2341 * be considered the **next** state of the tree, and the change listeners 2342 * will be notified. 2343 * 2344 * The base implementation only supports plain object actions. If you want to 2345 * dispatch a Promise, an Observable, a thunk, or something else, you need to 2346 * wrap your store creating function into the corresponding middleware. For 2347 * example, see the documentation for the `redux-thunk` package. Even the 2348 * middleware will eventually dispatch plain object actions using this method. 2349 * 2350 * @param {Object} action A plain object representing âwhat changedâ. It is 2351 * a good idea to keep actions serializable so you can record and replay user 2352 * sessions, or use the time travelling `redux-devtools`. An action must have 2353 * a `type` property which may not be `undefined`. It is a good idea to use 2354 * string constants for action types. 2355 * 2356 * @returns {Object} For convenience, the same action object you dispatched. 2357 * 2358 * Note that, if you use a custom middleware, it may wrap `dispatch()` to 2359 * return something else (for example, a Promise you can await). 2360 */ 2361 function dispatch(action) { 2362 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { 2363 throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); 2364 } 2365 2366 if (typeof action.type === 'undefined') { 2367 throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); 2368 } 2369 2370 if (isDispatching) { 2371 throw new Error('Reducers may not dispatch actions.'); 2372 } 2373 2374 try { 2375 isDispatching = true; 2376 currentState = currentReducer(currentState, action); 2377 } finally { 2378 isDispatching = false;
2379 } 2380 2381 var listeners = currentListeners = nextListeners; 2382 for (var i = 0; i < listeners.length; i++) { 2383 listeners[i](); 2384 } 2385 2386 return action; 2387 } 2388 2389 /** 2390 * Replaces the reducer currently used by the store to calculate the state. 2391 * 2392 * You might need this if your app implements code splitting and you want to 2393 * load some of the reducers dynamically. You might also need this if you 2394 * implement a hot reloading mechanism for Redux. 2395 * 2396 * @param {Function} nextReducer The reducer for the store to use instead. 2397 * @returns {void} 2398 */ 2399 function replaceReducer(nextReducer) { 2400 if (typeof nextReducer !== 'function') { 2401 throw new Error('Expected the nextReducer to be a function.'); 2402 } 2403 2404 currentReducer = nextReducer; 2405 dispatch({ type: ActionTypes.INIT }); 2406 } 2407 2408 /** 2409 * Interoperability point for observable/reactive libraries. 2410 * @returns {observable} A minimal observable of state changes. 2411 * For more information, see the observable proposal: 2412 * https://github.com/zenparsing/es-observable 2413 */ 2414 function observable() { 2415 var _ref; 2416 2417 var outerSubscribe = subscribe; 2418 return _ref = { 2419 /** 2420 * The minimal observable subscription method. 2421 * @param {Object} observer Any object that can be used as an observer. 2422 * The observer object should have a `next` method. 2423 * @returns {subscription} An object with an `unsubscribe` method that can 2424 * be used to unsubscribe the observable from the store, and prevent further 2425 * emission of values from the observable. 2426 */ 2427 subscribe: function subscribe(observer) { 2428 if (typeof observer !== 'object') { 2429 throw new TypeError('Expected the observer to be an object.'); 2430 } 2431 2432 function observeState() { 2433 if (observer.next) { 2434 observer.next(getState()); 2435 } 2436 } 2437 2438 observeState(); 2439 var unsubscribe = outerSubscribe(observeState); 2440 return { unsubscribe: unsubscribe }; 2441 } 2442 }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { 2443 return this; 2444 }, _ref; 2445 } 2446 2447 // When a store is created, an "INIT" action is dispatched so that every 2448 // reducer returns their initial state. This effectively populates 2449 // the initial state tree. 2450 dispatch({ type: ActionTypes.INIT }); 2451 2452 return _ref2 = { 2453 dispatch: dispatch, 2454 subscribe: subscribe, 2455 getState: getState, 2456 replaceReducer: replaceReducer 2457 }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; 2458} 2459 2460/***/ }), 2461/* 47 */ 2462/***/ (function(module, __webpack_exports__, __webpack_require__) { 2463 2464"use strict"; 2465__webpack_require__.r(__webpack_exports__); 2466/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); 2467/** 2468 * Composes single-argument functions from right to left. The rightmost 2469 * function can take multiple arguments as it provides the signature for 2470 * the resulting composite function. 2471 * 2472 * @param {...Function} funcs The functions to compose. 2473 * @returns {Function} A function obtained by composing the argument functions 2474 * from right to left. For example, compose(f, g, h) is identical to doing 2475 * (...args) => f(g(h(...args))). 2476 */ 2477 2478function compose() { 2479 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { 2480 funcs[_key] = arguments[_key]; 2481 } 2482 2483 if (funcs.length === 0) { 2484 return function (arg) { 2485 return arg; 2486 }; 2487 } 2488 2489 if (funcs.length === 1) { 2490 return funcs[0]; 2491 } 2492 2493 var last = funcs[funcs.length - 1]; 2494 var rest = funcs.slice(0, -1); 2495 return function () { 2496 return rest.reduceRight(function (composed, f) { 2497 return f(composed); 2498 }, last.apply(undefined, arguments)); 2499 }; 2500} 2501 2502/***/ }), 2503/* 48 */ 2504/***/ (function(module, exports, __webpack_require__) { 2505 2506"use strict"; 2507 2508 2509var _interopRequireDefault = __webpack_require__(0); 2510 2511Object.defineProperty(exports, "__esModule", { 2512 value: true 2513}); 2514exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROW
2514SER_ENV = void 0; 2515 2516var _find = _interopRequireDefault(__webpack_require__(95)); 2517/* eslint-env browser */ 2518 2519 2520var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe 2521 2522exports.IS_BROWSER_ENV = IS_BROWSER_ENV; 2523 2524var withBrowser = function withBrowser(fn, fallback) { 2525 if (IS_BROWSER_ENV) { 2526 return fn(); 2527 } 2528 2529 return fallback; 2530}; 2531 2532exports.withBrowser = withBrowser; 2533var ELEMENT_MATCHES = withBrowser(function () { 2534 return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { 2535 return key in Element.prototype; 2536 }); 2537}); 2538exports.ELEMENT_MATCHES = ELEMENT_MATCHES; 2539var FLEX_PREFIXED = withBrowser(function () { 2540 var el = document.createElement('i'); 2541 var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; 2542 var none = ''; 2543 2544 try { 2545 var length = values.length; 2546 2547 for (var i = 0; i < length; i++) { 2548 var value = values[i]; 2549 el.style.display = value; 2550 2551 if (el.style.display === value) { 2552 return value; 2553 } 2554 } 2555 2556 return none; 2557 } catch (err) { 2558 return none; 2559 } 2560}, 'flex'); 2561exports.FLEX_PREFIXED = FLEX_PREFIXED; 2562var TRANSFORM_PREFIXED = withBrowser(function () { 2563 var el = document.createElement('i'); 2564 2565 if (el.style.transform == null) { 2566 var prefixes = ['Webkit', 'Moz', 'ms']; 2567 var suffix = 'Transform'; 2568 var length = prefixes.length; 2569 2570 for (var i = 0; i < length; i++) { 2571 var prop = prefixes[i] + suffix; // $FlowFixMe 2572 2573 if (el.style[prop] !== undefined) { 2574 return prop; 2575 } 2576 } 2577 } 2578 2579 return 'transform'; 2580}, 'transform'); // $FlowFixMe 2581 2582exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; 2583var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; 2584var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; 2585exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; 2586 2587/***/ }), 2588/* 49 */ 2589/***/ (function(module, exports) { 2590 2591/** 2592 * Performs a 2593 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 2594 * comparison between two values to determine if they are equivalent. 2595 * 2596 * @static 2597 * @memberOf _ 2598 * @since 4.0.0 2599 * @category Lang 2600 * @param {*} value The value to compare. 2601 * @param {*} other The other value to compare. 2602 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 2603 * @example 2604 * 2605 * var object = { 'a': 1 }; 2606 * var other = { 'a': 1 }; 2607 * 2608 * _.eq(object, object); 2609 * // => true 2610 * 2611 * _.eq(object, other); 2612 * // => false 2613 * 2614 * _.eq('a', 'a'); 2615 * // => true 2616 * 2617 * _.eq('a', Object('a')); 2618 * // => false 2619 * 2620 * _.eq(NaN, NaN); 2621 * // => true 2622 */ 2623function eq(value, other) { 2624 return value === other || (value !== value && other !== other); 2625} 2626 2627module.exports = eq; 2628 2629 2630/***/ }), 2631/* 50 */ 2632/***/ (function(module, exports, __webpack_require__) { 2633 2634var getNative = __webpack_require__(11), 2635 root = __webpack_require__(6); 2636 2637/* Built-in method references that are verified to be native. */ 2638var Map = getNative(root, 'Map'); 2639 2640module.exports = Map; 2641 2642 2643/***/ }), 2644/* 51 */ 2645/***/ (function(module, exports, __webpack_require__) { 2646 2647var mapCacheClear = __webpack_require__(215), 2648 mapCacheDelete = __webpack_require__(222), 2649 mapCacheGet = __webpack_require__(224), 2650 mapCacheHas = __webpack_require__(225), 2651 mapCacheSet = __webpack_require__(226); 2652 2653/** 2654 * Creates a map cache object to store key-value pairs. 2655 * 2656 * @private 2657 * @constructor 2658 * @param {Array} [entries] The key-value pairs to cache. 2659 */ 2660function MapCache(entries) { 2661 var index = -1, 2662 length = entries == null ? 0 : entries.length; 2663 2664 this.clear(); 2665 while (++index < length) { 2666 var entry = entries[index]; 2667 this.set(entry[0], entry[1]); 2668 } 2669} 2670 2671// Add methods to `MapCache`. 2672MapCache.prototype.clear = mapCacheClear; 2673MapCache.prototype['delete'] = mapCacheDelete; 2674MapCache.prototype.get = mapCacheGet; 2675MapCache.prototype.has = mapCacheHas; 2676MapCache.prototype.set = mapCacheSet; 2677 2678module.exports = MapCache; 2679 2680 2681/***/ }), 2682/* 52 */ 2683/***/ (function(module, exports) { 2684 2685/** 2686 * Appends the elements of `values` to `array`. 2687 * 2688 * @private 2689 * @param {Array} array The array to modify. 2690 * @param {Array} values The values to append. 2691 * @returns {Array} Returns `array`. 2692 */ 2693function arrayPush(array, values) { 2694 var index = -1, 2695 length = values.length, 2696 offset = array.length; 2697 2698 while (++index < length) { 2699 array[offset + index] = values[index]; 2700 } 2701 return array; 2702} 2703 2704module.exports = arrayPush; 2705 2706 2707/***/ }), 2708/* 53 */ 2709/***/ (function(module, exports, __webpack_require__) { 2710 2711/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(6), 2712 stubFalse = __webpack_require__(242); 2713 2714/** Detect free variable `exports`. */ 2715var freeExports = true && exports && !exports.nodeType && exports; 2716 2717/** Detect free variable `module`. */ 2718var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 2719 2720/** Detect the popular CommonJS extension `module.exports`. */ 2721var moduleExports = freeModule && freeModule.exports === freeExports; 2722 2723/** Built-in value references. */ 2724var Buffer = moduleExports ? root.Buffer : undefined; 2725 2726/* Built-in method references for those with the same name as other `lodash` methods. */ 2727var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; 2728 2729/** 2730 * Checks if `value` is a buffer. 2731 * 2732 * @static 2733 * @memberOf _ 2734 * @since 4.3.0 2735 * @category Lang 2736 * @param {*} value The value to check. 2737 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. 2738 * @example 2739 * 2740 * _.isBuffer(new Buffer(2)); 2741 * // => true 2742 * 2743 * _.isBuffer(new Uint8Array(2)); 2744 * // => false 2745 */ 2746var isBuffer = nativeIsBuffer || stubFalse; 2747 2748module.exports = isBuffer; 2749 2750/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(107)(module))) 2751 2752/***/ }), 2753/* 54 */
vendor: 5,344 bytes, lines 2754-2962
2754/***/ (function(module, exports) { 2755 2756/** Used as references for various `Number` constants. */ 2757var MAX_SAFE_INTEGER = 9007199254740991; 2758 2759/** Used to detect unsigned integer values. */ 2760var reIsUint = /^(?:0|[1-9]\d*)$/; 2761 2762/** 2763 * Checks if `value` is a valid array-like index. 2764 * 2765 * @private 2766 * @param {*} value The value to check. 2767 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 2768 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 2769 */ 2770function isIndex(value, length) { 2771 var type = typeof value; 2772 length = length == null ? MAX_SAFE_INTEGER : length; 2773 2774 return !!length && 2775 (type == 'number' || 2776 (type != 'symbol' && reIsUint.test(value))) && 2777 (value > -1 && value % 1 == 0 && value < length); 2778} 2779 2780module.exports = isIndex; 2781 2782 2783/***/ }), 2784/* 55 */ 2785/***/ (function(module, exports, __webpack_require__) { 2786 2787var baseIsTypedArray = __webpack_require__(243), 2788 baseUnary = __webpack_require__(244), 2789 nodeUtil = __webpack_require__(245); 2790 2791/* Node.js helper references. */ 2792var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 2793 2794/** 2795 * Checks if `value` is classified as a typed array. 2796 * 2797 * @static 2798 * @memberOf _ 2799 * @since 3.0.0 2800 * @category Lang 2801 * @param {*} value The value to check. 2802 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 2803 * @example 2804 * 2805 * _.isTypedArray(new Uint8Array); 2806 * // => true 2807 * 2808 * _.isTypedArray([]); 2809 * // => false 2810 */ 2811var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 2812 2813module.exports = isTypedArray; 2814 2815 2816/***/ }), 2817/* 56 */ 2818/***/ (function(module, exports) { 2819 2820/** Used as references for various `Number` constants. */ 2821var MAX_SAFE_INTEGER = 9007199254740991; 2822 2823/** 2824 * Checks if `value` is a valid array-like length. 2825 * 2826 * **Note:** This method is loosely based on 2827 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 2828 * 2829 * @static 2830 * @memberOf _ 2831 * @since 4.0.0 2832 * @category Lang 2833 * @param {*} value The value to check. 2834 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 2835 * @example 2836 * 2837 * _.isLength(3); 2838 * // => true 2839 * 2840 * _.isLength(Number.MIN_VALUE); 2841 * // => false 2842 * 2843 * _.isLength(Infinity); 2844 * // => false 2845 * 2846 * _.isLength('3'); 2847 * // => false 2848 */ 2849function isLength(value) { 2850 return typeof value == 'number' && 2851 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 2852} 2853 2854module.exports = isLength; 2855 2856 2857/***/ }), 2858/* 57 */ 2859/***/ (function(module, exports, __webpack_require__) { 2860 2861var isPrototype = __webpack_require__(58), 2862 nativeKeys = __webpack_require__(246); 2863 2864/** Used for built-in method references. */ 2865var objectProto = Object.prototype; 2866 2867/** Used to check objects for own properties. */ 2868var hasOwnProperty = objectProto.hasOwnProperty; 2869 2870/** 2871 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. 2872 * 2873 * @private 2874 * @param {Object} object The object to query. 2875 * @returns {Array} Returns the array of property names. 2876 */ 2877function baseKeys(object) { 2878 if (!isPrototype(object)) { 2879 return nativeKeys(object); 2880 } 2881 var result = []; 2882 for (var key in Object(object)) { 2883 if (hasOwnProperty.call(object, key) && key != 'constructor') { 2884 result.push(key); 2885 } 2886 } 2887 return result; 2888} 2889 2890module.exports = baseKeys; 2891 2892 2893/***/ }), 2894/* 58 */ 2895/***/ (function(module, exports) { 2896 2897/** Used for built-in method references. */ 2898var objectProto = Object.prototype; 2899 2900/** 2901 * Checks if `value` is likely a prototype object. 2902 * 2903 * @private 2904 * @param {*} value The value to check. 2905 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 2906 */ 2907function isPrototype(value) { 2908 var Ctor = value && value.constructor, 2909 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 2910 2911 return value === proto; 2912} 2913 2914module.exports = isPrototype; 2915 2916 2917/***/ }), 2918/* 59 */ 2919/***/ (function(module, exports, __webpack_require__) { 2920 2921var DataView = __webpack_require__(247), 2922 Map = __webpack_require__(50), 2923 Promise = __webpack_require__(248), 2924 Set = __webpack_require__(249), 2925 WeakMap = __webpack_require__(109), 2926 baseGetTag = __webpack_require__(16), 2927 toSource = __webpack_require__(100); 2928 2929/** `Object#toString` result references. */ 2930var mapTag = '[object Map]', 2931 objectTag = '[object Object]', 2932 promiseTag = '[object Promise]', 2933 setTag = '[object Set]', 2934 weakMapTag = '[object WeakMap]'; 2935 2936var dataViewTag = '[object DataView]'; 2937 2938/** Used to detect maps, sets, and weakmaps. */ 2939var dataViewCtorString = toSource(DataView), 2940 mapCtorString = toSource(Map), 2941 promiseCtorString = toSource(Promise), 2942 setCtorString = toSource(Set), 2943 weakMapCtorString = toSource(WeakMap); 2944 2945/** 2946 * Gets the `toStringTag` of `value`. 2947 * 2948 * @private 2949 * @param {*} value The value to query. 2950 * @returns {string} Returns the `toStringTag`. 2951 */ 2952var getTag = baseGetTag; 2953 2954// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. 2955if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || 2956 (Map && getTag(new Map) != mapTag) || 2957 (Promise && getTag(Promise.resolve()) != promiseTag) || 2958 (Set && getTag(new Set) != setTag) || 2959 (WeakMap && getTag(new WeakMap) != weakMapTag)) { 2960 getTag = function(value) { 2961 var result = baseGetTag(value), 2962 Ctor = result == objectTag ? value.constructor : undefined,
vendor: 6,048 bytes, lines 2963-3202
2963 ctorString = Ctor ? toSource(Ctor) : ''; 2964 2965 if (ctorString) { 2966 switch (ctorString) { 2967 case dataViewCtorString: return dataViewTag; 2968 case mapCtorString: return mapTag; 2969 case promiseCtorString: return promiseTag; 2970 case setCtorString: return setTag; 2971 case weakMapCtorString: return weakMapTag; 2972 } 2973 } 2974 return result; 2975 }; 2976} 2977 2978module.exports = getTag; 2979 2980 2981/***/ }), 2982/* 60 */ 2983/***/ (function(module, exports, __webpack_require__) { 2984 2985var baseGet = __webpack_require__(61); 2986 2987/** 2988 * Gets the value at `path` of `object`. If the resolved value is 2989 * `undefined`, the `defaultValue` is returned in its place. 2990 * 2991 * @static 2992 * @memberOf _ 2993 * @since 3.7.0 2994 * @category Object 2995 * @param {Object} object The object to query. 2996 * @param {Array|string} path The path of the property to get. 2997 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 2998 * @returns {*} Returns the resolved value. 2999 * @example 3000 * 3001 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 3002 * 3003 * _.get(object, 'a[0].b.c'); 3004 * // => 3 3005 * 3006 * _.get(object, ['a', '0', 'b', 'c']); 3007 * // => 3 3008 * 3009 * _.get(object, 'a.b.c', 'default'); 3010 * // => 'default' 3011 */ 3012function get(object, path, defaultValue) { 3013 var result = object == null ? undefined : baseGet(object, path); 3014 return result === undefined ? defaultValue : result; 3015} 3016 3017module.exports = get; 3018 3019 3020/***/ }), 3021/* 61 */ 3022/***/ (function(module, exports, __webpack_require__) { 3023 3024var castPath = __webpack_require__(37), 3025 toKey = __webpack_require__(24); 3026 3027/** 3028 * The base implementation of `_.get` without support for default values. 3029 * 3030 * @private 3031 * @param {Object} object The object to query. 3032 * @param {Array|string} path The path of the property to get. 3033 * @returns {*} Returns the resolved value. 3034 */ 3035function baseGet(object, path) { 3036 path = castPath(path, object); 3037 3038 var index = 0, 3039 length = path.length; 3040 3041 while (object != null && index < length) { 3042 object = object[toKey(path[index++])]; 3043 } 3044 return (index && index == length) ? object : undefined; 3045} 3046 3047module.exports = baseGet; 3048 3049 3050/***/ }), 3051/* 62 */ 3052/***/ (function(module, exports, __webpack_require__) { 3053 3054var isArray = __webpack_require__(2), 3055 isSymbol = __webpack_require__(38); 3056 3057/** Used to match property names within property paths. */ 3058var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, 3059 reIsPlainProp = /^\w*$/; 3060 3061/** 3062 * Checks if `value` is a property name and not a property path. 3063 * 3064 * @private 3065 * @param {*} value The value to check. 3066 * @param {Object} [object] The object to query keys on. 3067 * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 3068 */ 3069function isKey(value, object) { 3070 if (isArray(value)) { 3071 return false; 3072 } 3073 var type = typeof value; 3074 if (type == 'number' || type == 'symbol' || type == 'boolean' || 3075 value == null || isSymbol(value)) { 3076 return true; 3077 } 3078 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || 3079 (object != null && value in Object(object)); 3080} 3081 3082module.exports = isKey; 3083 3084 3085/***/ }), 3086/* 63 */ 3087/***/ (function(module, exports) { 3088 3089/** 3090 * This method returns the first argument it receives. 3091 * 3092 * @static 3093 * @since 0.1.0 3094 * @memberOf _ 3095 * @category Util 3096 * @param {*} value Any value. 3097 * @returns {*} Returns `value`. 3098 * @example 3099 * 3100 * var object = { 'a': 1 }; 3101 * 3102 * console.log(_.identity(object) === object); 3103 * // => true 3104 */ 3105function identity(value) { 3106 return value; 3107} 3108 3109module.exports = identity; 3110 3111 3112/***/ }), 3113/* 64 */ 3114/***/ (function(module, exports, __webpack_require__) { 3115 3116var baseTrim = __webpack_require__(264), 3117 isObject = __webpack_require__(8), 3118 isSymbol = __webpack_require__(38); 3119 3120/** Used as references for various `Number` constants. */ 3121var NAN = 0 / 0; 3122 3123/** Used to detect bad signed hexadecimal string values. */ 3124var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 3125 3126/** Used to detect binary string values. */ 3127var reIsBinary = /^0b[01]+$/i; 3128 3129/** Used to detect octal string values. */ 3130var reIsOctal = /^0o[0-7]+$/i; 3131 3132/** Built-in method references without a dependency on `root`. */ 3133var freeParseInt = parseInt; 3134 3135/** 3136 * Converts `value` to a number. 3137 * 3138 * @static 3139 * @memberOf _ 3140 * @since 4.0.0 3141 * @category Lang 3142 * @param {*} value The value to process. 3143 * @returns {number} Returns the number. 3144 * @example 3145 * 3146 * _.toNumber(3.2); 3147 * // => 3.2 3148 * 3149 * _.toNumber(Number.MIN_VALUE); 3150 * // => 5e-324 3151 * 3152 * _.toNumber(Infinity); 3153 * // => Infinity 3154 * 3155 * _.toNumber('3.2'); 3156 * // => 3.2 3157 */ 3158function toNumber(value) { 3159 if (typeof value == 'number') { 3160 return value; 3161 } 3162 if (isSymbol(value)) { 3163 return NAN; 3164 } 3165 if (isObject(value)) { 3166 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 3167 value = isObject(other) ? (other + '') : other; 3168 } 3169 if (typeof value != 'string') { 3170 return value === 0 ? value : +value; 3171 } 3172 value = baseTrim(value); 3173 var isBinary = reIsBinary.test(value); 3174 return (isBinary || reIsOctal.test(value)) 3175 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 3176 : (reIsBadHex.test(value) ? NAN : +value); 3177} 3178 3179module.exports = toNumber; 3180 3181 3182/***/ }), 3183/* 65 */ 3184/***/ (function(module, exports, __webpack_require__) { 3185 3186"use strict"; 3187 3188 3189var _interopRequireDefault = __webpack_require__(0); 3190 3191Object.defineProperty(exports, "__esModule", { 3192 value: true 3193}); 3194exports.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; 3195 3196var _extends2 = _interopRequireDefault(__webpack_require__(30)); 3197 3198var _constants = __webpack_require__(4); 3199 3200var _shared = __webpack_require__(15); 3201 3202var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
3203 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 3204 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 3205 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 3206 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 3207 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 3208 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 3209 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 3210 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, 3211 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 3212 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 3213 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 3214 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 3215 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, 3216 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 3217 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 3218 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 3219 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, 3220 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 3221 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 3222 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 3223var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it 3224 3225var rawDataImported = function rawDataImported(rawData) { 3226 return { 3227 type: IX2_RAW_DATA_IMPORTED, 3228 payload: (0, _extends2["default"])({}, reifyState(rawData)) 3229 }; 3230}; 3231 3232exports.rawDataImported = rawDataImported; 3233 3234var sessionInitialized = function sessionInitialized(_ref) { 3235 var hasBoundaryNodes = _ref.hasBoundaryNodes, 3236 reducedMotion = _ref.reducedMotion; 3237 return { 3238 type: IX2_SESSION_INITIALIZED, 3239 payload: { 3240 hasBoundaryNodes: hasBoundaryNodes, 3241 reducedMotion: reducedMotion 3242 } 3243 }; 3244}; 3245 3246exports.sessionInitialized = sessionInitialized; 3247 3248var sessionStarted = function sessionStarted() { 3249 return { 3250 type: IX2_SESSION_STARTED 3251 }; 3252}; 3253 3254exports.sessionStarted = sessionStarted; 3255 3256var sessionStopped = function sessionStopped() { 3257 return { 3258 type: IX2_SESSION_STOPPED 3259 }; 3260}; 3261 3262exports.sessionStopped = sessionStopped; 3263 3264var previewRequested = function previewRequested(_ref2) { 3265 var rawData = _ref2.rawData, 3266 defer = _ref2.defer; 3267 return { 3268 type: IX2_PREVIEW_REQUESTED, 3269 payload: { 3270 defer: defer, 3271 rawData: rawData 3272 } 3273 }; 3274}; 3275 3276exports.previewRequested = previewRequested; 3277 3278var playbackRequested = function playbackRequested(_ref3) { 3279 var _ref3$actionTypeId = _ref3.actionTypeId, 3280 actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, 3281 actionListId = _ref3.actionListId, 3282 actionItemId = _ref3.actionItemId, 3283 eventId = _ref3.eventId, 3284 allowEvents = _ref3.allowEvents, 3285 immediate = _ref3.immediate, 3286 testManual = _ref3.testManual, 3287 verbose = _ref3.verbose, 3288 rawData = _ref3.rawData; 3289 return { 3290 type: IX2_PLAYBACK_REQUESTED, 3291 payload: { 3292 actionTypeId: actionTypeId, 3293 actionListId: actionListId, 3294 actionItemId: actionItemId, 3295 testManual: testManual, 3296 eventId: eventId, 3297 allowEvents: allowEvents, 3298 immediate: immediate, 3299 verbose: verbose, 3300 rawData: rawData 3301 } 3302 }; 3303}; 3304 3305exports.playbackRequested = playbackRequested; 3306 3307var stopRequested = function stopRequested(actionListId) { 3308 return { 3309 type: IX2_STOP_REQUESTED, 3310 payload: { 3311 actionListId: actionListId 3312 } 3313 }; 3314}; 3315 3316exports.stopRequested = stopRequested; 3317 3318var clearRequested = function clearRequested() { 3319 return { 3320 type: IX2_CLEAR_REQUESTED 3321 }; 3322}; 3323 3324exports.clearRequested = clearRequested; 3325 3326var eventListenerAdded = function eventListenerAdded(target, listenerParams) { 3327 return { 3328 type: IX2_EVENT_LISTENER_ADDED, 3329 payload: { 3330 target: target, 3331 listenerParams: listenerParams 3332 } 3333 }; 3334}; 3335 3336exports.eventListenerAdded = eventListenerAdded; 3337 3338var testFrameRendered = function testFrameRendered() { 3339 var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; 3340 return { 3341 type: IX2_TEST_FRAME_RENDERED, 3342 payload: { 3343 step: step 3344 } 3345 }; 3346}; 3347 3348exports.testFrameRendered = testFrameRendered; 3349 3350var eventStateChanged = function eventStateChanged(stateKey, newState) { 3351 return { 3352 type: IX2_EVENT_STATE_CHANGED, 3353 payload: { 3354 stateKey: stateKey, 3355 newState: newState 3356 } 3357 }; 3358}; 3359 3360exports.eventStateChanged = eventStateChanged; 3361 3362var animationFrameChanged = function animationFrameChanged(now, parameters) { 3363 return { 3364 type: IX2_ANIMATION_FRAME_CHANGED, 3365 payload: { 3366 now: now, 3367 parameters: parameters 3368 } 3369 }; 3370}; 3371 3372exports.animationFrameChanged = animationFrameChanged; 3373 3374var parameterChanged = function parameterChanged(key, value) { 3375 return { 3376 type: IX2_PARAMETER_CHANGED, 3377 payload: { 3378 key: key, 3379 value: value 3380 } 3381 }; 3382}; 3383 3384exports.parameterChanged = parameterChanged; 3385 3386var instanceAdded = function instanceAdded(options) { 3387 return { 3388 type: IX2_INSTANCE_ADDED, 3389 payload: (0, _extends2["default"])({}, options) 3390 }; 3391}; 3392 3393exports.instanceAdded = instanceAdded; 3394 3395var instanceStarted = function instanceStarted(instanceId, time) { 3396 return { 3397 type: IX2_INSTANCE_STARTED, 3398 payload: { 3399 instanceId: instanceId, 3400 time: time 3401 } 3402 }; 3403}; 3404 3405exports.instanceStarted = instanceStarted; 3406 3407var instanceRemoved = function instanceRemoved(instanceId) { 3408 return { 3409 type: IX2_INSTANCE_REMOVED, 3410 payload: { 3411 instanceId: instanceId 3412 } 3413 }; 3414}; 3415 3416exports.instanceRemoved = instanceRemoved; 3417 3418var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { 3419 return { 3420 type: IX2_ELEMENT_STATE_CHANGED, 3421 payload: { 3422 elementId: elementId, 3423 actionTypeId: actionTypeId, 3424 current: current, 3425 actionItem: actionItem 3426 } 3427 }; 3428}; 3429 3430exports.elementStateChanged = elementStateChanged; 3431 3432var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { 3433 var actionListId = _ref4.actionListId, 3434 isPlaying = _ref4.isPlaying; 3435 return { 3436 type: IX2_ACTION_LIST_PLAYBACK_CHANGED, 3437 payload: { 3438 actionListId: actionListId, 3439 isPlaying: isPlaying 3440 } 3441 }; 3442}; 3443 3444exports.actionListPlaybackChanged = actionListPlaybackChanged; 3445 3446var viewportWidthChanged = function viewportWidthChanged(_ref5) { 3447 var width = _ref5.width, 3448 mediaQueries = _ref5.mediaQueries; 3449 return { 3450 type: IX2_VIEWPORT_WIDTH_CHANGED, 3451 payload: { 3452 width: width, 3453 mediaQueries: mediaQueries 3454 } 3455 }; 3456}; 3457 3458exports.viewportWidthChanged = viewportWidthChanged; 3459 3460var mediaQueriesDefined = function mediaQueriesDefined() { 3461 return { 3462 type: IX2_MEDIA_QUERIES_DEFINED 3463 }; 3464}; 3465 3466exports.mediaQueriesDefined = mediaQueriesDefined; 3467 3468/***/ }), 3469/* 66 */ 3470/***/ (function(module, exports, __webpack_require__) { 3471 3472var baseCreate = __webpack_require__(126), 3473 baseLodash = __webpack_require__(67); 3474 3475/** 3476 * The base constructor for creating `lodash` wrapper objects. 3477 * 3478 * @private 3479 * @param {*} value The value to wrap. 3480 * @param {boolean} [chainAll] Enable explicit method chain sequences. 3481 */ 3482function LodashWrapper(value, chainAll) { 3483 this.__wrapped__ = value; 3484 this.__actions__ = []; 3485 this.__chain__ = !!chainAll; 3486 this.__index__ = 0; 3487 this.__values__ = undefined; 3488} 3489
3490LodashWrapper.prototype = baseCreate(baseLodash.prototype); 3491LodashWrapper.prototype.constructor = LodashWrapper; 3492 3493module.exports = LodashWrapper; 3494 3495 3496/***/ }), 3497/* 67 */ 3498/***/ (function(module, exports) { 3499 3500/** 3501 * The function whose prototype chain sequence wrappers inherit from. 3502 * 3503 * @private 3504 */ 3505function baseLodash() { 3506 // No operation performed. 3507} 3508 3509module.exports = baseLodash; 3510 3511 3512/***/ }), 3513/* 68 */ 3514/***/ (function(module, exports, __webpack_require__) { 3515 3516var baseCreate = __webpack_require__(126), 3517 baseLodash = __webpack_require__(67); 3518 3519/** Used as references for the maximum length and index of an array. */ 3520var MAX_ARRAY_LENGTH = 4294967295; 3521 3522/** 3523 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 3524 * 3525 * @private 3526 * @constructor 3527 * @param {*} value The value to wrap. 3528 */ 3529function LazyWrapper(value) { 3530 this.__wrapped__ = value; 3531 this.__actions__ = []; 3532 this.__dir__ = 1; 3533 this.__filtered__ = false; 3534 this.__iteratees__ = []; 3535 this.__takeCount__ = MAX_ARRAY_LENGTH; 3536 this.__views__ = []; 3537} 3538 3539// Ensure `LazyWrapper` is an instance of `baseLodash`. 3540LazyWrapper.prototype = baseCreate(baseLodash.prototype); 3541LazyWrapper.prototype.constructor = LazyWrapper; 3542 3543module.exports = LazyWrapper; 3544 3545 3546/***/ }), 3547/* 69 */ 3548/***/ (function(module, exports, __webpack_require__) { 3549 3550"use strict"; 3551 // @wf-will-never-add-flow-to-this-file 3552 3553/* eslint-disable eslint-comments/no-unlimited-disable */ 3554 3555/* eslint-disable */ 3556 3557/*! 3558 * tram.js v0.8.2-global 3559 * Cross-browser CSS3 transitions in JavaScript 3560 * https://github.com/bkwld/tram 3561 * MIT License 3562 */ 3563 3564/* prettier-ignore */ 3565 3566var _interopRequireDefault = __webpack_require__(0); 3567 3568var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 3569 3570window.tram = function (a) { 3571 function b(a, b) { 3572 var c = new M.Bare(); 3573 return c.init(a, b); 3574 } 3575 3576 function c(a) { 3577 return a.replace(/[A-Z]/g, function (a) { 3578 return "-" + a.toLowerCase(); 3579 }); 3580 } 3581 3582 function d(a) { 3583 var b = parseInt(a.slice(1), 16), 3584 c = b >> 16 & 255, 3585 d = b >> 8 & 255, 3586 e = 255 & b; 3587 return [c, d, e]; 3588 } 3589 3590 function e(a, b, c) { 3591 return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); 3592 } 3593 3594 function f() {} 3595 3596 function g(a, b) { 3597 j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); 3598 } 3599 3600 function h(a, b, c) { 3601 j("Units do not match [" + a + "]: " + b + ", " + c); 3602 } 3603 3604 function i(a, b, c) { 3605 if (void 0 !== b && (c = b), void 0 === a) return c; 3606 var d = c; 3607 return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; 3608 } 3609 3610 function j(a) { 3611 U.debug && window && window.console.warn(a); 3612 } 3613 3614 function k(a) { 3615 for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { 3616 var e = a[b]; 3617 e && d.push(e); 3618 } 3619 3620 return d; 3621 } 3622 3623 var l = function (a, b, c) { 3624 function d(a) { 3625 return "object" == (0, _typeof2["default"])(a); 3626 } 3627 3628 function e(a) { 3629 return "function" == typeof a; 3630 } 3631 3632 function f() {} 3633 3634 function g(h, i) { 3635 function j() { 3636 var a = new k(); 3637 return e(a.init) && a.init.apply(a, arguments), a; 3638 } 3639 3640 function k() {} 3641 3642 i === c && (i = h, h = Object), j.Bare = k; 3643 var l, 3644 m = f[a] = h[a], 3645 n = k[a] = j[a] = new f(); 3646 return n.constructor = j, j.mixin = function (b) { 3647 return k[a] = j[a] = g(j, b)[a], j; 3648 }, j.open = function (a) { 3649 if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { 3650 b.call(l, c) && (n[c] = l[c]); 3651 } 3652 return e(n.init) || (n.init = h), j; 3653 }, j.open(i); 3654 } 3655 3656 return g; 3657 }("prototype", {}.hasOwnProperty), 3658 m = { 3659 ease: ["ease", function (a, b, c, d) { 3660 var e = (a /= d) * a, 3661 f = e * a; 3662 return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); 3663 }], 3664 "ease-in": ["ease-in", function (a, b, c, d) { 3665 var e = (a /= d) * a, 3666 f = e * a; 3667 return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); 3668 }], 3669 "ease-out": ["ease-out", function (a, b, c, d) { 3670 var e = (a /= d) * a, 3671 f = e * a; 3672 return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); 3673 }], 3674 "ease-in-out": ["ease-in-out", function (a, b, c, d) { 3675 var e = (a /= d) * a, 3676 f = e * a; 3677 return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); 3678 }], 3679 linear: ["linear", function (a, b, c, d) { 3680 return c * a / d + b; 3681 }], 3682 "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { 3683 return c * (a /= d) * a + b; 3684 }], 3685 "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { 3686 return -c * (a /= d) * (a - 2) + b; 3687 }], 3688 "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { 3689 return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; 3690 }], 3691 "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { 3692 return c * (a /= d) * a * a + b; 3693 }], 3694 "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { 3695 return c * ((a = a / d - 1) * a * a + 1) + b; 3696 }], 3697 "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { 3698 return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; 3699 }], 3700 "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { 3701 return c * (a /= d) * a * a * a + b; 3702 }], 3703 "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { 3704 return -c * ((a = a / d - 1) * a * a * a - 1) + b; 3705 }], 3706 "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { 3707 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; 3708 }], 3709 "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { 3710 return c * (a /= d) * a * a * a * a + b; 3711 }], 3712 "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { 3713 return c * ((a = a / d - 1) * a * a * a * a + 1) + b; 3714 }], 3715 "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { 3716 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; 3717 }], 3718 "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { 3719 return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; 3720 }], 3721 "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { 3722 return c * Math.sin(a / d * (Math.PI / 2)) + b; 3723 }], 3724 "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { 3725 return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; 3726 }], 3727 "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { 3728 return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; 3729 }], 3730 "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { 3731 return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; 3732 }], 3733 "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { 3734 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; 3735 }], 3736 "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { 3737 return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; 3738 }], 3739 "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { 3740 return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; 3741 }], 3742 "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { 3743 return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; 3744 }], 3745 "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { 3746 return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; 3747 }], 3748 "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { 3749 return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; 3750 }], 3751 "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { 3752 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; 3753 }] 3754 }, 3755 n = { 3756 "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", 3757 "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", 3758 "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" 3759 }, 3760 o = document, 3761 p = window, 3762 q = "bkwld-tram", 3763 r = /[\-\.0-9]/g, 3764 s = /[A-Z]/, 3765 t = "number", 3766 u = /^(rgb|#)/, 3767 v = /(em|cm|mm|in|pt|pc|px)$/, 3768 w = /(em|cm|mm|in|pt|pc|px|%)$/, 3769 x = /(deg|rad|turn)$/, 3770 y = "unitless", 3771 z = /(all|none) 0s ease 0s/, 3772 A = /^(width|height)$/, 3773 B = " ", 3774 C = o.createElement("a"), 3775 D = ["Webkit", "Moz", "O", "ms"], 3776 E = ["-webkit-", "-moz-", "-o-", "-ms-"], 3777 F = function F(a) { 3778 if (a in C.style) return { 3779 dom: a, 3780 css: a 3781 }; 3782 var b, 3783 c, 3784 d = "", 3785 e = a.split("-"); 3786 3787 for (b = 0; b < e.length; b++) { 3788 d += e[b].charAt(0).toUpperCase() + e[b].slice(1); 3789 } 3790 3791 for (b = 0; b < D.length; b++) { 3792 if (c = D[b] + d, c in C.style) return { 3793 dom: c, 3794 css: E[b] + a 3795 }; 3796 } 3797 }, 3798 G = b.support = { 3799 bind: Function.prototype.bind, 3800 transform: F("transform"), 3801 transition: F("transition"), 3802 backface: F("backface-visibility"), 3803 timing: F("transition-timing-function") 3804 }; 3805 3806 if (G.transition) { 3807 var H = G.timing.dom; 3808 if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { 3809 m[I][0] = n[I]; 3810 } 3811 } 3812 3813 var J = b.frame = function () { 3814 var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; 3815 return a && G.bind ? a.bind(p) : function (a) { 3816 p.setTimeout(a, 16); 3817 }; 3818 }(), 3819 K = b.now = function () { 3820 var a = p.performance, 3821 b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); 3822 return b && G.bind ? b.bind(a) : Date.now || function () { 3823 return +new Date(); 3824 }; 3825 }(), 3826 L = l(function (b) { 3827 function d(a, b) { 3828 var c = k(("" + a).split(B)), 3829 d = c[0]; 3830 b = b || {}; 3831 var e = Y[d]; 3832 if (!e) return j("Unsupported property: " + d); 3833 3834 if (!b.weak || !this.props[d]) { 3835 var f = e[0], 3836 g = this.props[d]; 3837 return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; 3838 } 3839 } 3840 3841 function e(a, b, c) { 3842 if (a) { 3843 var e = (0, _typeof2["default"])(a); 3844 if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ 3845 duration: a, 3846 context: this, 3847 complete: h 3848 }), void (this.active = !0); 3849 3850 if ("string" == e && b) { 3851 switch (a) { 3852 case "hide": 3853 o.call(this); 3854 break; 3855 3856 case "stop": 3857 l.call(this); 3858 break; 3859 3860 case "redraw": 3861 p.call(this); 3862 break; 3863 3864 default: 3865 d.call(this, a, c && c[1]); 3866 } 3867 3868 return h.call(this); 3869 } 3870 3871 if ("function" == e) return void a.call(this, this); 3872 3873 if ("object" == e) { 3874 var f = 0; 3875 u.call(this, a, function (a, b) { 3876 a.span > f && (f = a.span), a.stop(), a.animate(b); 3877 }, function (a) { 3878 "wait" in a && (f = i(a.wait, 0)); 3879 }), t.call(this), f > 0 && (this.timer = new S({ 3880 duration: f, 3881 context: this 3882 }), this.active = !0, b && (this.timer.complete = h)); 3883 var g = this, 3884 j = !1, 3885 k = {}; 3886 J(function () { 3887 u.call(g, a, function (a) { 3888 a.active && (j = !0, k[a.name] = a.nextStyle); 3889 }), j && g.$el.css(k); 3890 }); 3891 } 3892 } 3893 } 3894 3895 function f(a) { 3896 a = i(a, 0), this.active ? this.queue.push({ 3897 options: a 3898 }) : (this.timer = new S({ 3899 duration: a, 3900 context: this, 3901 complete: h 3902 }), this.active = !0); 3903 } 3904
3905 function g(a) { 3906 return this.active ? (this.queue.push({ 3907 options: a, 3908 args: arguments 3909 }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); 3910 } 3911 3912 function h() { 3913 if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { 3914 var a = this.queue.shift(); 3915 e.call(this, a.options, !0, a.args); 3916 } 3917 } 3918 3919 function l(a) { 3920 this.timer && this.timer.destroy(), this.queue = [], this.active = !1; 3921 var b; 3922 "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); 3923 } 3924 3925 function m(a) { 3926 l.call(this, a), u.call(this, a, w, x); 3927 } 3928 3929 function n(a) { 3930 "string" != typeof a && (a = "block"), this.el.style.display = a; 3931 } 3932 3933 function o() { 3934 l.call(this), this.el.style.display = "none"; 3935 } 3936 3937 function p() { 3938 this.el.offsetHeight; 3939 } 3940 3941 function r() { 3942 l.call(this), a.removeData(this.el, q), this.$el = this.el = null; 3943 } 3944 3945 function t() { 3946 var a, 3947 b, 3948 c = []; 3949 this.upstream && c.push(this.upstream); 3950 3951 for (a in this.props) { 3952 b = this.props[a], b.active && c.push(b.string); 3953 } 3954 3955 c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); 3956 } 3957 3958 function u(a, b, e) { 3959 var f, 3960 g, 3961 h, 3962 i, 3963 j = b !== v, 3964 k = {}; 3965 3966 for (f in a) { 3967 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)); 3968 } 3969 3970 for (f in k) { 3971 if (h = k[f], g = this.props[f], !g) { 3972 if (!j) continue; 3973 g = d.call(this, f); 3974 } 3975 3976 b.call(this, g, h); 3977 } 3978 3979 e && i && e.call(this, i); 3980 } 3981 3982 function v(a) { 3983 a.stop(); 3984 } 3985 3986 function w(a, b) { 3987 a.set(b); 3988 } 3989 3990 function x(a) { 3991 this.$el.css(a); 3992 } 3993 3994 function y(a, c) { 3995 b[a] = function () { 3996 return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); 3997 }; 3998 } 3999 4000 function A(a, b) { 4001 var c, 4002 d = this.children.length; 4003 4004 for (c = 0; d > c; c++) { 4005 a.apply(this.children[c], b); 4006 } 4007 4008 return this; 4009 } 4010 4011 b.init = function (b) { 4012 if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { 4013 var c = W(this.el, "transition"); 4014 c && !z.test(c) && (this.upstream = c); 4015 } 4016 4017 G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); 4018 }, 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); 4019 }), 4020 M = l(L, function (b) { 4021 function c(b, c) { 4022 var d = a.data(b, q) || a.data(b, q, new L.Bare()); 4023 return d.el || d.init(b), c ? d.start(c) : d; 4024 } 4025 4026 b.init = function (b, d) { 4027 var e = a(b); 4028 if (!e.length) return this; 4029 if (1 === e.length) return c(e[0], d); 4030 var f = []; 4031 return e.each(function (a, b) { 4032 f.push(c(b, d)); 4033 }), this.children = f, this; 4034 }; 4035 }), 4036 N = l(function (a) { 4037 function b() { 4038 var a = this.get(); 4039 this.update("auto"); 4040 var b = this.get(); 4041 return this.update(a), b; 4042 } 4043 4044 function c(a, b, c) { 4045 return void 0 !== b && (c = b), a in m ? a : c; 4046 } 4047 4048 function d(a) { 4049 var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); 4050 return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); 4051 } 4052 4053 var f = { 4054 duration: 500, 4055 ease: "ease", 4056 delay: 0 4057 }; 4058 a.init = function (a, b, d, e) { 4059 this.$el = a, this.el = a[0]; 4060 var g = b[0]; 4061 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" : "")); 4062 }, a.set = function (a) { 4063 a = this.convert(a, this.type), this.update(a), this.redraw(); 4064 }, a.transition = function (a) { 4065 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; 4066 }, a.fallback = function (a) { 4067 var c = this.el.style[this.name] || this.convert(this.get(), this.type); 4068 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({ 4069 from: c, 4070 to: a, 4071 duration: this.duration, 4072 delay: this.delay, 4073 ease: this.ease, 4074 update: this.update, 4075 context: this 4076 }); 4077 }, a.get = function () { 4078 return W(this.el, this.name); 4079 }, a.update = function (a) { 4080 V(this.el, this.name, a); 4081 }, a.stop = function () { 4082 (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); 4083 var a = this.tween; 4084 a && a.context && a.destroy(); 4085 }, a.convert = function (a, b) { 4086 if ("auto" == a && this.auto) return a; 4087 var c, 4088 e = "number" == typeof a, 4089 f = "string" == typeof a; 4090 4091 switch (b) { 4092 case t: 4093 if (e) return a; 4094 if (f && "" === a.replace(r, "")) return +a; 4095 c = "number(unitless)"; 4096 break; 4097 4098 case u: 4099 if (f) { 4100 if ("" === a && this.original) return this.original; 4101 if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); 4102 } 4103 4104 c = "hex or rgb string"; 4105 break; 4106 4107 case v: 4108 if (e) return a + this.unit; 4109 if (f && b.test(a)) return a; 4110 c = "number(px) or string(unit)"; 4111 break; 4112 4113 case w: 4114 if (e) return a + this.unit; 4115 if (f && b.test(a)) return a; 4116 c = "number(px) or string(unit or %)"; 4117 break; 4118 4119 case x: 4120 if (e) return a + this.angle; 4121 if (f && b.test(a)) return a; 4122 c = "number(deg) or string(angle)"; 4123 break; 4124 4125 case y: 4126 if (e) return a; 4127 if (f && w.test(a)) return a; 4128 c = "number(unitless) or string(unit or %)"; 4129 } 4130 4131 return g(c, a), a; 4132 }, a.redraw = function () { 4133 this.el.offsetHeight; 4134 }; 4135 }), 4136 O = l(N, function (a, b) { 4137 a.init = function () {
4138 b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); 4139 }; 4140 }), 4141 P = l(N, function (a, b) { 4142 a.init = function () { 4143 b.init.apply(this, arguments), this.animate = this.fallback; 4144 }, a.get = function () { 4145 return this.$el[this.name](); 4146 }, a.update = function (a) { 4147 this.$el[this.name](a); 4148 }; 4149 }), 4150 Q = l(N, function (a, b) { 4151 function c(a, b) { 4152 var c, d, e, f, g; 4153 4154 for (c in a) { 4155 f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); 4156 } 4157 } 4158 4159 a.init = function () { 4160 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())); 4161 }, a.set = function (a) { 4162 c.call(this, a, function (a, b) { 4163 this.current[a] = b; 4164 }), V(this.el, this.name, this.style(this.current)), this.redraw(); 4165 }, a.transition = function (a) { 4166 var b = this.values(a); 4167 this.tween = new T({ 4168 current: this.current, 4169 values: b, 4170 duration: this.duration, 4171 delay: this.delay, 4172 ease: this.ease 4173 }); 4174 var c, 4175 d = {}; 4176 4177 for (c in this.current) { 4178 d[c] = c in b ? b[c] : this.current[c]; 4179 } 4180 4181 this.active = !0, this.nextStyle = this.style(d); 4182 }, a.fallback = function (a) { 4183 var b = this.values(a); 4184 this.tween = new T({ 4185 current: this.current, 4186 values: b, 4187 duration: this.duration, 4188 delay: this.delay, 4189 ease: this.ease, 4190 update: this.update, 4191 context: this 4192 }); 4193 }, a.update = function () { 4194 V(this.el, this.name, this.style(this.current)); 4195 }, a.style = function (a) { 4196 var b, 4197 c = ""; 4198 4199 for (b in a) { 4200 c += b + "(" + a[b] + ") "; 4201 } 4202 4203 return c; 4204 }, a.values = function (a) { 4205 var b, 4206 d = {}; 4207 return c.call(this, a, function (a, c, e) { 4208 d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); 4209 }), d; 4210 }; 4211 }), 4212 R = l(function (b) { 4213 function c(a) { 4214 1 === n.push(a) && J(g); 4215 } 4216 4217 function g() { 4218 var a, 4219 b, 4220 c, 4221 d = n.length; 4222 if (d) for (J(g), b = K(), a = d; a--;) { 4223 c = n[a], c && c.render(b); 4224 } 4225 } 4226 4227 function i(b) { 4228 var c, 4229 d = a.inArray(b, n); 4230 d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); 4231 } 4232 4233 function j(a) { 4234 return Math.round(a * o) / o; 4235 } 4236 4237 function k(a, b, c) { 4238 return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); 4239 } 4240 4241 var l = { 4242 ease: m.ease[1], 4243 from: 0, 4244 to: 1 4245 }; 4246 b.init = function (a) { 4247 this.duration = a.duration || 0, this.delay = a.delay || 0; 4248 var b = a.ease || l.ease; 4249 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; 4250 var c = a.from, 4251 d = a.to; 4252 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(); 4253 }, b.play = function () { 4254 this.active || (this.start || (this.start = K()), this.active = !0, c(this)); 4255 }, b.stop = function () { 4256 this.active && (this.active = !1, i(this)); 4257 }, b.render = function (a) { 4258 var b, 4259 c = a - this.start; 4260 4261 if (this.delay) { 4262 if (c <= this.delay) return; 4263 c -= this.delay; 4264 } 4265 4266 if (c < this.duration) { 4267 var d = this.ease(c, 0, 1, this.duration); 4268 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); 4269 } 4270 4271 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(); 4272 }, b.format = function (a, b) { 4273 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); 4274 4275 if (!this.unit) { 4276 var c = b.replace(r, ""), 4277 e = a.replace(r, ""); 4278 c !== e && h("tween", b, a), this.unit = c; 4279 } 4280 4281 b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; 4282 }, b.destroy = function () { 4283 this.stop(), this.context = null, this.ease = this.update = this.complete = f; 4284 }; 4285 var n = [], 4286 o = 1e3; 4287 }),
4288 S = l(R, function (a) { 4289 a.init = function (a) { 4290 this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); 4291 }, a.render = function (a) { 4292 var b = a - this.start; 4293 b < this.duration || (this.complete.call(this.context), this.destroy()); 4294 }; 4295 }), 4296 T = l(R, function (a, b) { 4297 a.init = function (a) { 4298 this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; 4299 var b, c; 4300 4301 for (b in a.values) { 4302 c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ 4303 name: b, 4304 from: this.current[b], 4305 to: c, 4306 duration: a.duration, 4307 delay: a.delay, 4308 ease: a.ease, 4309 autoplay: !1 4310 })); 4311 } 4312 4313 this.play(); 4314 }, a.render = function (a) { 4315 var b, 4316 c, 4317 d = this.tweens.length, 4318 e = !1; 4319 4320 for (b = d; b--;) { 4321 c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); 4322 } 4323 4324 return e ? void (this.update && this.update.call(this.context)) : this.destroy(); 4325 }, a.destroy = function () { 4326 if (b.destroy.call(this), this.tweens) { 4327 var a, 4328 c = this.tweens.length; 4329 4330 for (a = c; a--;) { 4331 this.tweens[a].destroy(); 4332 } 4333 4334 this.tweens = null, this.current = null; 4335 } 4336 }; 4337 }), 4338 U = b.config = { 4339 debug: !1, 4340 defaultUnit: "px", 4341 defaultAngle: "deg", 4342 keepInherited: !1, 4343 hideBackface: !1, 4344 perspective: "", 4345 fallback: !G.transition, 4346 agentTests: [] 4347 }; 4348 4349 b.fallback = function (a) { 4350 if (!G.transition) return U.fallback = !0; 4351 U.agentTests.push("(" + a + ")"); 4352 var b = new RegExp(U.agentTests.join("|"), "i"); 4353 U.fallback = b.test(navigator.userAgent); 4354 }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { 4355 return new R(a); 4356 }, b.delay = function (a, b, c) { 4357 return new S({ 4358 complete: b, 4359 duration: a, 4360 context: c 4361 }); 4362 }, a.fn.tram = function (a) { 4363 return b.call(null, this, a); 4364 }; 4365 var V = a.style, 4366 W = a.css, 4367 X = { 4368 transform: G.transform && G.transform.css 4369 }, 4370 Y = { 4371 color: [O, u], 4372 background: [O, u, "background-color"], 4373 "outline-color": [O, u], 4374 "border-color": [O, u], 4375 "border-top-color": [O, u], 4376 "border-right-color": [O, u], 4377 "border-bottom-color": [O, u], 4378 "border-left-color": [O, u], 4379 "border-width": [N, v], 4380 "border-top-width": [N, v], 4381 "border-right-width": [N, v], 4382 "border-bottom-width": [N, v], 4383 "border-left-width": [N, v], 4384 "border-spacing": [N, v], 4385 "letter-spacing": [N, v], 4386 margin: [N, v], 4387 "margin-top": [N, v], 4388 "margin-right": [N, v], 4389 "margin-bottom": [N, v], 4390 "margin-left": [N, v], 4391 padding: [N, v], 4392 "padding-top": [N, v], 4393 "padding-right": [N, v], 4394 "padding-bottom": [N, v], 4395 "padding-left": [N, v], 4396 "outline-width": [N, v], 4397 opacity: [N, t], 4398 top: [N, w], 4399 right: [N, w], 4400 bottom: [N, w], 4401 left: [N, w], 4402 "font-size": [N, w], 4403 "text-indent": [N, w], 4404 "word-spacing": [N, w], 4405 width: [N, w], 4406 "min-width": [N, w], 4407 "max-width": [N, w], 4408 height: [N, w], 4409 "min-height": [N, w], 4410 "max-height": [N, w], 4411 "line-height": [N, y], 4412 "scroll-top": [P, t, "scrollTop"], 4413 "scroll-left": [P, t, "scrollLeft"] 4414 }, 4415 Z = {}; 4416 G.transform && (Y.transform = [Q], Z = { 4417 x: [w, "translateX"], 4418 y: [w, "translateY"], 4419 rotate: [x], 4420 rotateX: [x], 4421 rotateY: [x], 4422 scale: [t], 4423 scaleX: [t], 4424 scaleY: [t], 4425 skew: [x], 4426 skewX: [x], 4427 skewY: [x] 4428 }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); 4429 var $ = /ms/, 4430 _ = /s|\./; 4431 return a.tram = b; 4432}(window.jQuery); 4433 4434/***/ }), 4435/* 70 */ 4436/***/ (function(module, exports, __webpack_require__) { 4437 4438var DESCRIPTORS = __webpack_require__(14); 4439var call = __webpack_require__(40); 4440var propertyIsEnumerableModule = __webpack_require__(146); 4441var createPropertyDescriptor = __webpack_require__(71); 4442var toIndexedObject = __webpack_require__(26); 4443var toPropertyKey = __webpack_require__(73); 4444var hasOwn = __webpack_require__(9); 4445var IE8_DOM_DEFINE = __webpack_require__(80); 4446 4447// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 4448var $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 4449 4450// `Object.getOwnPropertyDescriptor` method 4451// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor 4452exports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 4453 O = toIndexedObject(O); 4454 P = toPropertyKey(P); 4455 if (IE8_DOM_DEFINE) try { 4456 return $getOwnPropertyDescriptor(O, P); 4457 } catch (error) { /* empty */ } 4458 if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]); 4459}; 4460 4461 4462/***/ }), 4463/* 71 */
vendor: 7,337 bytes, lines 4464-4728
4464/***/ (function(module, exports) { 4465 4466module.exports = function (bitmap, value) { 4467 return { 4468 enumerable: !(bitmap & 1), 4469 configurable: !(bitmap & 2), 4470 writable: !(bitmap & 4), 4471 value: value 4472 }; 4473}; 4474 4475 4476/***/ }), 4477/* 72 */ 4478/***/ (function(module, exports, __webpack_require__) { 4479 4480var global = __webpack_require__(1); 4481 4482var TypeError = global.TypeError; 4483 4484// `RequireObjectCoercible` abstract operation 4485// https://tc39.es/ecma262/#sec-requireobjectcoercible 4486module.exports = function (it) { 4487 if (it == undefined) throw TypeError("Can't call method on " + it); 4488 return it; 4489}; 4490 4491 4492/***/ }), 4493/* 73 */ 4494/***/ (function(module, exports, __webpack_require__) { 4495 4496var toPrimitive = __webpack_require__(149); 4497var isSymbol = __webpack_require__(74); 4498 4499// `ToPropertyKey` abstract operation 4500// https://tc39.es/ecma262/#sec-topropertykey 4501module.exports = function (argument) { 4502 var key = toPrimitive(argument, 'string'); 4503 return isSymbol(key) ? key : key + ''; 4504}; 4505 4506 4507/***/ }), 4508/* 74 */ 4509/***/ (function(module, exports, __webpack_require__) { 4510 4511var global = __webpack_require__(1); 4512var getBuiltIn = __webpack_require__(27); 4513var isCallable = __webpack_require__(7); 4514var isPrototypeOf = __webpack_require__(150); 4515var USE_SYMBOL_AS_UID = __webpack_require__(75); 4516 4517var Object = global.Object; 4518 4519module.exports = USE_SYMBOL_AS_UID ? function (it) { 4520 return typeof it == 'symbol'; 4521} : function (it) { 4522 var $Symbol = getBuiltIn('Symbol'); 4523 return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it)); 4524}; 4525 4526 4527/***/ }), 4528/* 75 */ 4529/***/ (function(module, exports, __webpack_require__) { 4530 4531/* eslint-disable es/no-symbol -- required for testing */ 4532var NATIVE_SYMBOL = __webpack_require__(76); 4533 4534module.exports = NATIVE_SYMBOL 4535 && !Symbol.sham 4536 && typeof Symbol.iterator == 'symbol'; 4537 4538 4539/***/ }), 4540/* 76 */ 4541/***/ (function(module, exports, __webpack_require__) { 4542 4543/* eslint-disable es/no-symbol -- required for testing */ 4544var V8_VERSION = __webpack_require__(151); 4545var fails = __webpack_require__(19); 4546 4547// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing 4548module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 4549 var symbol = Symbol(); 4550 // Chrome 38 Symbol has incorrect toString conversion 4551 // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances 4552 return !String(symbol) || !(Object(symbol) instanceof Symbol) || 4553 // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances 4554 !Symbol.sham && V8_VERSION && V8_VERSION < 41; 4555}); 4556 4557 4558/***/ }), 4559/* 77 */ 4560/***/ (function(module, exports, __webpack_require__) { 4561 4562var global = __webpack_require__(1); 4563var shared = __webpack_require__(78); 4564var hasOwn = __webpack_require__(9); 4565var uid = __webpack_require__(79); 4566var NATIVE_SYMBOL = __webpack_require__(76); 4567var USE_SYMBOL_AS_UID = __webpack_require__(75); 4568 4569var WellKnownSymbolsStore = shared('wks'); 4570var Symbol = global.Symbol; 4571var symbolFor = Symbol && Symbol['for']; 4572var createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid; 4573 4574module.exports = function (name) { 4575 if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) { 4576 var description = 'Symbol.' + name; 4577 if (NATIVE_SYMBOL && hasOwn(Symbol, name)) { 4578 WellKnownSymbolsStore[name] = Symbol[name]; 4579 } else if (USE_SYMBOL_AS_UID && symbolFor) { 4580 WellKnownSymbolsStore[name] = symbolFor(description); 4581 } else { 4582 WellKnownSymbolsStore[name] = createWellKnownSymbol(description); 4583 } 4584 } return WellKnownSymbolsStore[name]; 4585}; 4586 4587 4588/***/ }), 4589/* 78 */ 4590/***/ (function(module, exports, __webpack_require__) { 4591 4592var IS_PURE = __webpack_require__(157); 4593var store = __webpack_require__(41); 4594 4595(module.exports = function (key, value) { 4596 return store[key] || (store[key] = value !== undefined ? value : {}); 4597})('versions', []).push({ 4598 version: '3.19.0', 4599 mode: IS_PURE ? 'pure' : 'global', 4600 copyright: '© 2021 Denis Pushkarev (zloirock.ru)' 4601}); 4602 4603 4604/***/ }), 4605/* 79 */ 4606/***/ (function(module, exports, __webpack_require__) { 4607 4608var uncurryThis = __webpack_require__(5); 4609 4610var id = 0; 4611var postfix = Math.random(); 4612var toString = uncurryThis(1.0.toString); 4613 4614module.exports = function (key) { 4615 return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36); 4616}; 4617 4618 4619/***/ }), 4620/* 80 */ 4621/***/ (function(module, exports, __webpack_require__) { 4622 4623var DESCRIPTORS = __webpack_require__(14); 4624var fails = __webpack_require__(19); 4625var createElement = __webpack_require__(81); 4626 4627// Thank's IE8 for his funny defineProperty 4628module.exports = !DESCRIPTORS && !fails(function () { 4629 // eslint-disable-next-line es/no-object-defineproperty -- requied for testing 4630 return Object.defineProperty(createElement('div'), 'a', { 4631 get: function () { return 7; } 4632 }).a != 7; 4633}); 4634 4635 4636/***/ }), 4637/* 81 */ 4638/***/ (function(module, exports, __webpack_require__) { 4639 4640var global = __webpack_require__(1); 4641var isObject = __webpack_require__(20); 4642 4643var document = global.document; 4644// typeof document.createElement is 'object' in old IE 4645var EXISTS = isObject(document) && isObject(document.createElement); 4646 4647module.exports = function (it) { 4648 return EXISTS ? document.createElement(it) : {}; 4649}; 4650 4651 4652/***/ }), 4653/* 82 */ 4654/***/ (function(module, exports, __webpack_require__) { 4655 4656var uncurryThis = __webpack_require__(5); 4657var isCallable = __webpack_require__(7); 4658var store = __webpack_require__(41); 4659 4660var functionToString = uncurryThis(Function.toString); 4661 4662// this helper broken in `[email protected]`, so we can't use `shared` helper 4663if (!isCallable(store.inspectSource)) { 4664 store.inspectSource = function (it) { 4665 return functionToString(it); 4666 }; 4667} 4668 4669module.exports = store.inspectSource; 4670 4671 4672/***/ }), 4673/* 83 */ 4674/***/ (function(module, exports, __webpack_require__) { 4675 4676var shared = __webpack_require__(78); 4677var uid = __webpack_require__(79); 4678 4679var keys = shared('keys'); 4680 4681module.exports = function (key) { 4682 return keys[key] || (keys[key] = uid(key)); 4683}; 4684 4685 4686/***/ }), 4687/* 84 */ 4688/***/ (function(module, exports, __webpack_require__) { 4689 4690var uncurryThis = __webpack_require__(5); 4691var hasOwn = __webpack_require__(9); 4692var toIndexedObject = __webpack_require__(26); 4693var indexOf = __webpack_require__(85).indexOf; 4694var hiddenKeys = __webpack_require__(44); 4695 4696var push = uncurryThis([].push); 4697 4698module.exports = function (object, names) { 4699 var O = toIndexedObject(object); 4700 var i = 0; 4701 var result = []; 4702 var key; 4703 for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key); 4704 // Don't enum bug & hidden keys 4705 while (names.length > i) if (hasOwn(O, key = names[i++])) { 4706 ~indexOf(result, key) || push(result, key); 4707 } 4708 return result; 4709}; 4710 4711 4712/***/ }), 4713/* 85 */ 4714/***/ (function(module, exports, __webpack_require__) { 4715 4716var toIndexedObject = __webpack_require__(26); 4717var toAbsoluteIndex = __webpack_require__(166); 4718var lengthOfArrayLike = __webpack_require__(167); 4719 4720// `Array.prototype.{ indexOf, includes }` methods implementation 4721var createMethod = function (IS_INCLUDES) { 4722 return function ($this, el, fromIndex) { 4723 var O = toIndexedObject($this); 4724 var length = lengthOfArrayLike(O); 4725 var index = toAbsoluteIndex(fromIndex, length); 4726 var value; 4727 // Array#includes uses SameValueZero equality algorithm 4728 // eslint-disable-next-line no-self-compare -- NaN check
4729 if (IS_INCLUDES && el != el) while (length > index) { 4730 value = O[index++]; 4731 // eslint-disable-next-line no-self-compare -- NaN check 4732 if (value != value) return true; 4733 // Array#indexOf ignores holes, Array#includes - not 4734 } else for (;length > index; index++) { 4735 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 4736 } return !IS_INCLUDES && -1; 4737 }; 4738}; 4739 4740module.exports = { 4741 // `Array.prototype.includes` method 4742 // https://tc39.es/ecma262/#sec-array.prototype.includes 4743 includes: createMethod(true), 4744 // `Array.prototype.indexOf` method 4745 // https://tc39.es/ecma262/#sec-array.prototype.indexof 4746 indexOf: createMethod(false) 4747}; 4748 4749 4750/***/ }), 4751/* 86 */ 4752/***/ (function(module, exports) { 4753 4754var ceil = Math.ceil; 4755var floor = Math.floor; 4756 4757// `ToIntegerOrInfinity` abstract operation 4758// https://tc39.es/ecma262/#sec-tointegerorinfinity 4759module.exports = function (argument) { 4760 var number = +argument; 4761 // eslint-disable-next-line no-self-compare -- safe 4762 return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number); 4763}; 4764 4765 4766/***/ }), 4767/* 87 */ 4768/***/ (function(module, __webpack_exports__, __webpack_require__) { 4769 4770"use strict"; 4771__webpack_require__.r(__webpack_exports__); 4772/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46); 4773/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); 4774 4775/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(90); 4776/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 4777 4778/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(92); 4779/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4780 4781/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(93); 4782/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 4783 4784/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(47); 4785/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); 4786 4787/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(91); 4788 4789 4790 4791 4792 4793 4794 4795/* 4796* This is a dummy function to check if the function name has been altered by minification. 4797* If the function has been minified and NODE_ENV !== 'production', warn the user. 4798*/ 4799function isCrushed() {} 4800 4801if (false) {} 4802 4803 4804 4805/***/ }), 4806/* 88 */ 4807/***/ (function(module, __webpack_exports__, __webpack_require__) { 4808 4809"use strict"; 4810__webpack_require__.r(__webpack_exports__); 4811/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(177); 4812/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); 4813/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(184); 4814 4815 4816 4817 4818/** `Object#toString` result references. */ 4819var objectTag = '[object Object]'; 4820 4821/** Used for built-in method references. */ 4822var funcProto = Function.prototype, 4823 objectProto = Object.prototype; 4824 4825/** Used to resolve the decompiled source of functions. */ 4826var funcToString = funcProto.toString; 4827 4828/** Used to check objects for own properties. */ 4829var hasOwnProperty = objectProto.hasOwnProperty; 4830 4831/** Used to infer the `Object` constructor. */ 4832var objectCtorString = funcToString.call(Object); 4833 4834/** 4835 * Checks if `value` is a plain object, that is, an object created by the 4836 * `Object` constructor or one with a `[[Prototype]]` of `null`. 4837 * 4838 * @static 4839 * @memberOf _ 4840 * @since 0.8.0 4841 * @category Lang 4842 * @param {*} value The value to check. 4843 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. 4844 * @example 4845 * 4846 * function Foo() { 4847 * this.a = 1; 4848 * } 4849 * 4850 * _.isPlainObject(new Foo); 4851 * // => false 4852 * 4853 * _.isPlainObject([1, 2, 3]); 4854 * // => false 4855 * 4856 * _.isPlainObject({ 'x': 0, 'y': 0 }); 4857 * // => true 4858 * 4859 * _.isPlainObject(Object.create(null)); 4860 * // => true 4861 */ 4862function isPlainObject(value) { 4863 if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { 4864 return false;
4865 } 4866 var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); 4867 if (proto === null) { 4868 return true; 4869 } 4870 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; 4871 return typeof Ctor == 'function' && Ctor instanceof Ctor && 4872 funcToString.call(Ctor) == objectCtorString; 4873} 4874 4875/* harmony default export */ __webpack_exports__["default"] = (isPlainObject); 4876 4877 4878/***/ }), 4879/* 89 */ 4880/***/ (function(module, __webpack_exports__, __webpack_require__) { 4881 4882"use strict"; 4883__webpack_require__.r(__webpack_exports__); 4884/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); 4885 4886 4887/** Built-in value references. */ 4888var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; 4889 4890/* harmony default export */ __webpack_exports__["default"] = (Symbol); 4891 4892 4893/***/ }), 4894/* 90 */ 4895/***/ (function(module, __webpack_exports__, __webpack_require__) { 4896 4897"use strict"; 4898__webpack_require__.r(__webpack_exports__); 4899/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); 4900/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(46); 4901/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(88); 4902/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(91); 4903 4904 4905 4906 4907function getUndefinedStateErrorMessage(key, action) { 4908 var actionType = action && action.type; 4909 var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; 4910 4911 return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; 4912} 4913 4914function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unex
4914pectedKeyCache) { 4915 var reducerKeys = Object.keys(reducers); 4916 var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; 4917 4918 if (reducerKeys.length === 0) { 4919 return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; 4920 } 4921 4922 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { 4923 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('", "') + '"'); 4924 } 4925 4926 var unexpectedKeys = Object.keys(inputState).filter(function (key) { 4927 return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; 4928 }); 4929 4930 unexpectedKeys.forEach(function (key) { 4931 unexpectedKeyCache[key] = true; 4932 }); 4933 4934 if (unexpectedKeys.length > 0) { 4935 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.'); 4936 } 4937} 4938 4939function assertReducerSanity(reducers) { 4940 Object.keys(reducers).forEach(function (key) { 4941 var reducer = reducers[key]; 4942 var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); 4943 4944 if (typeof initialState === 'undefined') { 4945 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.'); 4946 } 4947 4948 var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); 4949 if (typeof reducer(undefined, { type: type }) === 'undefined') { 4950 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.'); 4951 } 4952 }); 4953} 4954 4955/** 4956 * Turns an object whose values are different reducer functions, into a single 4957 * reducer function. It will call every child reducer, and gather their results 4958 * into a single state object, whose keys correspond to the keys of the passed 4959 * reducer functions. 4960 * 4961 * @param {Object} reducers An object whose values correspond to different 4962 * reducer functions that need to be combined into one. One handy way to obtain 4963 * it is to use ES6 `import * as reducers` syntax. The reducers may never return 4964 * undefined for any action. Instead, they should return their initial state 4965 * if the state passed to them was undefined, and the current state for any 4966 * unrecognized action. 4967 * 4968 * @returns {Function} A reducer function that invokes every reducer inside the 4969 * passed object, and builds a state object with the same shape. 4970 */ 4971function combineReducers(reducers) { 4972 var reducerKeys = Object.keys(reducers); 4973 var finalReducers = {}; 4974 for (var i = 0; i < reducerKeys.length; i++) { 4975 var key = reducerKeys[i]; 4976 4977 if (false) {} 4978 4979 if (typeof reducers[key] === 'function') { 4980 finalReducers[key] = reducers[key]; 4981 } 4982 } 4983 var finalReducerKeys = Object.keys(finalReducers); 4984 4985 if (false) { var unexpectedKeyCache; } 4986 4987 var sanityError; 4988 try { 4989 assertReducerSanity(finalReducers); 4990 } catch (e) { 4991 sanityError = e; 4992 } 4993 4994 return function combination() { 4995 var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 4996 var action = arguments[1]; 4997 4998 if (sanityError) { 4999 throw sanityError; 5000 } 5001 5002 if (false) { var warningMessage; } 5003 5004 var hasChanged = false;
5005 var nextState = {}; 5006 for (var i = 0; i < finalReducerKeys.length; i++) { 5007 var key = finalReducerKeys[i]; 5008 var reducer = finalReducers[key]; 5009 var previousStateForKey = state[key]; 5010 var nextStateForKey = reducer(previousStateForKey, action); 5011 if (typeof nextStateForKey === 'undefined') { 5012 var errorMessage = getUndefinedStateErrorMessage(key, action); 5013 throw new Error(errorMessage); 5014 } 5015 nextState[key] = nextStateForKey; 5016 hasChanged = hasChanged || nextStateForKey !== previousStateForKey; 5017 } 5018 return hasChanged ? nextState : state; 5019 }; 5020} 5021 5022/***/ }), 5023/* 91 */ 5024/***/ (function(module, __webpack_exports__, __webpack_require__) { 5025 5026"use strict"; 5027__webpack_require__.r(__webpack_exports__); 5028/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); 5029/** 5030 * Prints a warning in the console if it exists. 5031 * 5032 * @param {String} message The warning message. 5033 * @returns {void} 5034 */ 5035function warning(message) { 5036 /* eslint-disable no-console */ 5037 if (typeof console !== 'undefined' && typeof console.error === 'function') { 5038 console.error(message); 5039 } 5040 /* eslint-enable no-console */ 5041 try { 5042 // This error was thrown as a convenience so that if you enable 5043 // "break on all exceptions" in your console, 5044 // it would pause the execution at this line. 5045 throw new Error(message); 5046 /* eslint-disable no-empty */ 5047 } catch (e) {} 5048 /* eslint-enable no-empty */ 5049} 5050 5051/***/ }), 5052/* 92 */ 5053/***/ (function(module, __webpack_exports__, __webpack_require__) { 5054 5055"use strict"; 5056__webpack_require__.r(__webpack_exports__); 5057/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); 5058function bindActionCreator(actionCreator, dispatch) { 5059 return function () { 5060 return dispatch(actionCreator.apply(undefined, arguments)); 5061 }; 5062} 5063 5064/** 5065 * Turns an object whose values are action creators, into an object with the 5066 * same keys, but with every function wrapped into a `dispatch` call so they 5067 * may be invoked directly. This is just a convenience method, as you can call 5068 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. 5069 * 5070 * For convenience, you can also pass a single function as the first argument, 5071 * and get a function in return. 5072 * 5073 * @param {Function|Object} actionCreators An object whose values are action 5074 * creator functions. One handy way to obtain it is to use ES6 `import * as` 5075 * syntax. You may also pass a single function. 5076 * 5077 * @param {Function} dispatch The `dispatch` function available on your Redux 5078 * store. 5079 * 5080 * @returns {Function|Object} The object mimicking the original object, but with 5081 * every action creator wrapped into the `dispatch` call. If you passed a 5082 * function as `actionCreators`, the return value will also be a single 5083 * function. 5084 */ 5085function bindActionCreators(actionCreators, dispatch) { 5086 if (typeof actionCreators === 'function') { 5087 return bindActionCreator(actionCreators, dispatch); 5088 } 5089 5090 if (typeof actionCreators !== 'object' || actionCreators === null) { 5091 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"?'); 5092 } 5093 5094 var keys = Object.keys(actionCreators); 5095 var boundActionCreators = {}; 5096 for (var i = 0; i < keys.length; i++) { 5097 var key = keys[i]; 5098 var actionCreator = actionCreators[key]; 5099 if (typeof actionCreator === 'function') { 5100 boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); 5101 } 5102 } 5103 return boundActionCreators; 5104} 5105 5106/***/ }), 5107/* 93 */ 5108/***/ (function(module, __webpack_exports__, __webpack_require__) { 5109 5110"use strict"; 5111__webpack_require__.r(__webpack_exports__); 5112/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); 5113/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(47); 5114var _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; }; 5115 5116 5117 5118/** 5119 * Creates a store enhancer that applies middleware to the dispatch method 5120 * of the Redux store. This is handy for a variety of tasks, such as expressing 5121 * asynchronous actions in a concise manner, or logging every action payload. 5122 * 5123 * See `redux-thunk` package as an example of the Redux middleware. 5124 * 5125 * Because middleware is potentially asynchronous, this should be the first 5126 * store enhancer in the composition chain. 5127 *
5128 * Note that each middleware will be given the `dispatch` and `getState` functions 5129 * as named arguments. 5130 * 5131 * @param {...Function} middlewares The middleware chain to be applied. 5132 * @returns {Function} A store enhancer applying the middleware. 5133 */ 5134function applyMiddleware() { 5135 for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { 5136 middlewares[_key] = arguments[_key]; 5137 } 5138 5139 return function (createStore) { 5140 return function (reducer, preloadedState, enhancer) { 5141 var store = createStore(reducer, preloadedState, enhancer); 5142 var _dispatch = store.dispatch; 5143 var chain = []; 5144 5145 var middlewareAPI = { 5146 getState: store.getState, 5147 dispatch: function dispatch(action) { 5148 return _dispatch(action); 5149 } 5150 }; 5151 chain = middlewares.map(function (middleware) { 5152 return middleware(middlewareAPI); 5153 }); 5154 _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); 5155 5156 return _extends({}, store, { 5157 dispatch: _dispatch 5158 }); 5159 }; 5160 }; 5161} 5162 5163/***/ }), 5164/* 94 */ 5165/***/ (function(module, exports, __webpack_require__) { 5166 5167"use strict"; 5168 5169 5170Object.defineProperty(exports, "__esModule", { 5171 value: true 5172}); 5173exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; 5174var ActionTypeConsts = { 5175 TRANSFORM_MOVE: 'TRANSFORM_MOVE', 5176 TRANSFORM_SCALE: 'TRANSFORM_SCALE', 5177 TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', 5178 TRANSFORM_SKEW: 'TRANSFORM_SKEW', 5179 STYLE_OPACITY: 'STYLE_OPACITY', 5180 STYLE_SIZE: 'STYLE_SIZE', 5181 STYLE_FILTER: 'STYLE_FILTER', 5182 STYLE_FONT_VARIATION: 'STYLE_FONT_VARIATION', 5183 STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', 5184 STYLE_BORDER: 'STYLE_BORDER', 5185 STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', 5186 PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', 5187 GENERAL_DISPLAY: 'GENERAL_DISPLAY', 5188 GENERAL_START_ACTION: 'GENERAL_START_ACTION', 5189 GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', 5190 // TODO: Clean these up below because they're not used at this time 5191 GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', 5192 GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', 5193 GENERAL_LOOP: 'GENERAL_LOOP', 5194 STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' 5195}; 5196exports.ActionTypeConsts = ActionTypeConsts; 5197var ActionAppliesTo = { 5198 ELEMENT: 'ELEMENT', 5199 ELEMENT_CLASS: 'ELEMENT_CLASS', 5200 TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' 5201}; 5202exports.ActionAppliesTo = ActionAppliesTo; 5203 5204/***/ }), 5205/* 95 */ 5206/***/ (function(module, exports, __webpack_require__) { 5207 5208var createFind = __webpack_require__(96), 5209 findIndex = __webpack_require__(262); 5210 5211/** 5212 * Iterates over elements of `collection`, returning the first element 5213 * `predicate` returns truthy for. The predicate is invoked with three 5214 * arguments: (value, index|key, collection). 5215 * 5216 * @static 5217 * @memberOf _ 5218 * @since 0.1.0 5219 * @category Collection 5220 * @param {Array|Object} collection The collection to inspect. 5221 * @param {Function} [predicate=_.identity] The function invoked per iteration. 5222 * @param {number} [fromIndex=0] The index to search from. 5223 * @returns {*} Returns the matched element, else `undefined`. 5224 * @example 5225 * 5226 * var users = [ 5227 * { 'user': 'barney', 'age': 36, 'active': true }, 5228 * { 'user': 'fred', 'age': 40, 'active': false }, 5229 * { 'user': 'pebbles', 'age': 1, 'active': true } 5230 * ]; 5231 * 5232 * _.find(users, function(o) { return o.age < 40; }); 5233 * // => object for 'barney' 5234 * 5235 * // The `_.matches` iteratee shorthand. 5236 * _.find(users, { 'age': 1, 'active': true }); 5237 * // => object for 'pebbles' 5238 * 5239 * // The `_.matchesProperty` iteratee shorthand. 5240 * _.find(users, ['active', false]); 5241 * // => object for 'fred' 5242 * 5243 * // The `_.property` iteratee shorthand. 5244 * _.find(users, 'active'); 5245 * // => object for 'barney' 5246 */ 5247var find = createFind(findIndex); 5248 5249module.exports = find; 5250 5251 5252/***/ }), 5253/* 96 */ 5254/***/ (function(module, exports, __webpack_require__) { 5255 5256var baseIteratee = __webpack_require__(10), 5257 isArrayLike = __webpack_require__(17), 5258 keys = __webpack_require__(35); 5259 5260/** 5261 * Creates a `_.find` or `_.findLast` function. 5262 * 5263 * @private 5264 * @param {Function} findIndexFunc The function to find the collection index. 5265 * @returns {Function} Returns the new find function. 5266 */ 5267function createFind(findIndexFunc) { 5268 return function(collection, predicate, fromIndex) { 5269 var iterable = Object(collection); 5270 if (!isArrayLike(collection)) { 5271 var iteratee = baseIteratee(predicate, 3); 5272 collection = keys(collection); 5273 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 5274 } 5275 var index = findIndexFunc(collection, predicate, fromIndex); 5276 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 5277 }; 5278} 5279 5280module.exports = createFind; 5281 5282 5283/***/ }), 5284/* 97 */ 5285/***/ (function(module, exports, __webpack_require__) { 5286 5287var ListCache = __webpack_require__(31), 5288 stackClear = __webpack_require__(204), 5289 stackDelete = __webpack_require__(205), 5290 stackGet = __webpack_require__(206), 5291 stackHas = __webpack_require__(207), 5292 stackSet = __webpack_require__(208); 5293 5294/** 5295 * Creates a stack cache object to store key-value pairs. 5296 * 5297 * @private 5298 * @constructor 5299 * @param {Array} [entries] The key-value pairs to cache. 5300 */ 5301function Stack(entries) {
vendor: 3,645 bytes, lines 5302-5442
5302 var data = this.__data__ = new ListCache(entries); 5303 this.size = data.size; 5304} 5305 5306// Add methods to `Stack`. 5307Stack.prototype.clear = stackClear; 5308Stack.prototype['delete'] = stackDelete; 5309Stack.prototype.get = stackGet; 5310Stack.prototype.has = stackHas; 5311Stack.prototype.set = stackSet; 5312 5313module.exports = Stack; 5314 5315 5316/***/ }), 5317/* 98 */ 5318/***/ (function(module, exports, __webpack_require__) { 5319 5320var baseGetTag = __webpack_require__(16), 5321 isObject = __webpack_require__(8); 5322 5323/** `Object#toString` result references. */ 5324var asyncTag = '[object AsyncFunction]', 5325 funcTag = '[object Function]', 5326 genTag = '[object GeneratorFunction]', 5327 proxyTag = '[object Proxy]'; 5328 5329/** 5330 * Checks if `value` is classified as a `Function` object. 5331 * 5332 * @static 5333 * @memberOf _ 5334 * @since 0.1.0 5335 * @category Lang 5336 * @param {*} value The value to check. 5337 * @returns {boolean} Returns `true` if `value` is a function, else `false`. 5338 * @example 5339 * 5340 * _.isFunction(_); 5341 * // => true 5342 * 5343 * _.isFunction(/abc/); 5344 * // => false 5345 */ 5346function isFunction(value) { 5347 if (!isObject(value)) { 5348 return false; 5349 } 5350 // The use of `Object#toString` avoids issues with the `typeof` operator 5351 // in Safari 9 which returns 'object' for typed arrays and other constructors. 5352 var tag = baseGetTag(value); 5353 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 5354} 5355 5356module.exports = isFunction; 5357 5358 5359/***/ }), 5360/* 99 */ 5361/***/ (function(module, exports, __webpack_require__) { 5362 5363/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 5364var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 5365 5366module.exports = freeGlobal; 5367 5368/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) 5369 5370/***/ }), 5371/* 100 */ 5372/***/ (function(module, exports) { 5373 5374/** Used for built-in method references. */ 5375var funcProto = Function.prototype; 5376 5377/** Used to resolve the decompiled source of functions. */ 5378var funcToString = funcProto.toString; 5379 5380/** 5381 * Converts `func` to its source code. 5382 * 5383 * @private 5384 * @param {Function} func The function to convert. 5385 * @returns {string} Returns the source code. 5386 */ 5387function toSource(func) { 5388 if (func != null) { 5389 try { 5390 return funcToString.call(func); 5391 } catch (e) {} 5392 try { 5393 return (func + ''); 5394 } catch (e) {} 5395 } 5396 return ''; 5397} 5398 5399module.exports = toSource; 5400 5401 5402/***/ }), 5403/* 101 */ 5404/***/ (function(module, exports, __webpack_require__) { 5405 5406var baseIsEqualDeep = __webpack_require__(227), 5407 isObjectLike = __webpack_require__(12); 5408 5409/** 5410 * The base implementation of `_.isEqual` which supports partial comparisons 5411 * and tracks traversed objects. 5412 * 5413 * @private 5414 * @param {*} value The value to compare. 5415 * @param {*} other The other value to compare. 5416 * @param {boolean} bitmask The bitmask flags. 5417 * 1 - Unordered comparison 5418 * 2 - Partial comparison 5419 * @param {Function} [customizer] The function to customize comparisons. 5420 * @param {Object} [stack] Tracks traversed `value` and `other` objects. 5421 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 5422 */ 5423function baseIsEqual(value, other, bitmask, customizer, stack) { 5424 if (value === other) { 5425 return true; 5426 } 5427 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { 5428 return value !== value && other !== other; 5429 } 5430 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 5431} 5432 5433module.exports = baseIsEqual; 5434 5435 5436/***/ }), 5437/* 102 */ 5438/***/ (function(module, exports, __webpack_require__) { 5439 5440var SetCache = __webpack_require__(228), 5441 arraySome = __webpack_require__(231), 5442 cacheHas = __webpack_require__(232
vendor: 2,558 bytes, lines 5442-5526
5442); 5443 5444/** Used to compose bitmasks for value comparisons. */ 5445var COMPARE_PARTIAL_FLAG = 1, 5446 COMPARE_UNORDERED_FLAG = 2; 5447 5448/** 5449 * A specialized version of `baseIsEqualDeep` for arrays with support for 5450 * partial deep comparisons. 5451 * 5452 * @private 5453 * @param {Array} array The array to compare. 5454 * @param {Array} other The other array to compare. 5455 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 5456 * @param {Function} customizer The function to customize comparisons. 5457 * @param {Function} equalFunc The function to determine equivalents of values. 5458 * @param {Object} stack Tracks traversed `array` and `other` objects. 5459 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. 5460 */ 5461function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 5462 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 5463 arrLength = array.length, 5464 othLength = other.length; 5465 5466 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 5467 return false; 5468 } 5469 // Check that cyclic values are equal. 5470 var arrStacked = stack.get(array); 5471 var othStacked = stack.get(other); 5472 if (arrStacked && othStacked) { 5473 return arrStacked == other && othStacked == array; 5474 } 5475 var index = -1, 5476 result = true, 5477 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; 5478 5479 stack.set(array, other); 5480 stack.set(other, array); 5481 5482 // Ignore non-index properties. 5483 while (++index < arrLength) { 5484 var arrValue = array[index], 5485 othValue = other[index]; 5486 5487 if (customizer) { 5488 var compared = isPartial 5489 ? customizer(othValue, arrValue, index, other, array, stack) 5490 : customizer(arrValue, othValue, index, array, other, stack); 5491 } 5492 if (compared !== undefined) { 5493 if (compared) { 5494 continue; 5495 } 5496 result = false; 5497 break; 5498 } 5499 // Recursively compare arrays (susceptible to call stack limits). 5500 if (seen) { 5501 if (!arraySome(other, function(othValue, othIndex) { 5502 if (!cacheHas(seen, othIndex) && 5503 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 5504 return seen.push(othIndex); 5505 } 5506 })) { 5507 result = false; 5508 break; 5509 } 5510 } else if (!( 5511 arrValue === othValue || 5512 equalFunc(arrValue, othValue, bitmask, customizer, stack) 5513 )) { 5514 result = false; 5515 break; 5516 } 5517 } 5518 stack['delete'](array); 5519 stack['delete'](other); 5520 return result; 5521} 5522 5523module.exports = equalArrays; 5524 5525 5526/***/ }),
vendor: 3,119 bytes, lines 5527-5644
5527/* 103 */ 5528/***/ (function(module, exports, __webpack_require__) { 5529 5530var arrayPush = __webpack_require__(52), 5531 isArray = __webpack_require__(2); 5532 5533/** 5534 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses 5535 * `keysFunc` and `symbolsFunc` to get the enumerable property names and 5536 * symbols of `object`. 5537 * 5538 * @private 5539 * @param {Object} object The object to query. 5540 * @param {Function} keysFunc The function to get the keys of `object`. 5541 * @param {Function} symbolsFunc The function to get the symbols of `object`. 5542 * @returns {Array} Returns the array of property names and symbols. 5543 */ 5544function baseGetAllKeys(object, keysFunc, symbolsFunc) { 5545 var result = keysFunc(object); 5546 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 5547} 5548 5549module.exports = baseGetAllKeys; 5550 5551 5552/***/ }), 5553/* 104 */ 5554/***/ (function(module, exports, __webpack_require__) { 5555 5556var arrayFilter = __webpack_require__(239), 5557 stubArray = __webpack_require__(105); 5558 5559/** Used for built-in method references. */ 5560var objectProto = Object.prototype; 5561 5562/** Built-in value references. */ 5563var propertyIsEnumerable = objectProto.propertyIsEnumerable; 5564 5565/* Built-in method references for those with the same name as other `lodash` methods. */ 5566var nativeGetSymbols = Object.getOwnPropertySymbols; 5567 5568/** 5569 * Creates an array of the own enumerable symbols of `object`. 5570 * 5571 * @private 5572 * @param {Object} object The object to query. 5573 * @returns {Array} Returns the array of symbols. 5574 */ 5575var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 5576 if (object == null) { 5577 return []; 5578 } 5579 object = Object(object); 5580 return arrayFilter(nativeGetSymbols(object), function(symbol) { 5581 return propertyIsEnumerable.call(object, symbol); 5582 }); 5583}; 5584 5585module.exports = getSymbols; 5586 5587 5588/***/ }), 5589/* 105 */ 5590/***/ (function(module, exports) { 5591 5592/** 5593 * This method returns a new empty array. 5594 * 5595 * @static 5596 * @memberOf _ 5597 * @since 4.13.0 5598 * @category Util 5599 * @returns {Array} Returns the new empty array. 5600 * @example 5601 * 5602 * var arrays = _.times(2, _.stubArray); 5603 * 5604 * console.log(arrays); 5605 * // => [[], []] 5606 * 5607 * console.log(arrays[0] === arrays[1]); 5608 * // => false 5609 */ 5610function stubArray() { 5611 return []; 5612} 5613 5614module.exports = stubArray; 5615 5616 5617/***/ }), 5618/* 106 */ 5619/***/ (function(module, exports, __webpack_require__) { 5620 5621var baseTimes = __webpack_require__(240), 5622 isArguments = __webpack_require__(36), 5623 isArray = __webpack_require__(2), 5624 isBuffer = __webpack_require__(53), 5625 isIndex = __webpack_require__(54), 5626 isTypedArray = __webpack_require__(55); 5627 5628/** Used for built-in method references. */ 5629var objectProto = Object.prototype; 5630 5631/** Used to check objects for own properties. */ 5632var hasOwnProperty = objectProto.hasOwnProperty; 5633 5634/** 5635 * Creates an array of the enumerable property names of the array-like `value`. 5636 * 5637 * @private 5638 * @param {*} value The value to query. 5639 * @param {boolean} inherited Specify returning inherited property names. 5640 * @returns {Array} Returns the array of property names. 5641 */ 5642function arrayLikeKeys(value, inherited) { 5643 var isArr = isArray(value), 5644 isArg = !isArr && isArguments(value),
vendor: 4,429 bytes, lines 5645-5829
5645 isBuff = !isArr && !isArg && isBuffer(value), 5646 isType = !isArr && !isArg && !isBuff && isTypedArray(value), 5647 skipIndexes = isArr || isArg || isBuff || isType, 5648 result = skipIndexes ? baseTimes(value.length, String) : [], 5649 length = result.length; 5650 5651 for (var key in value) { 5652 if ((inherited || hasOwnProperty.call(value, key)) && 5653 !(skipIndexes && ( 5654 // Safari 9 has enumerable `arguments.length` in strict mode. 5655 key == 'length' || 5656 // Node.js 0.10 has enumerable non-index properties on buffers. 5657 (isBuff && (key == 'offset' || key == 'parent')) || 5658 // PhantomJS 2 has enumerable non-index properties on typed arrays. 5659 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || 5660 // Skip index properties. 5661 isIndex(key, length) 5662 ))) { 5663 result.push(key); 5664 } 5665 } 5666 return result; 5667} 5668 5669module.exports = arrayLikeKeys; 5670 5671 5672/***/ }), 5673/* 107 */ 5674/***/ (function(module, exports) { 5675 5676module.exports = function(module) { 5677 if (!module.webpackPolyfill) { 5678 module.deprecate = function() {}; 5679 module.paths = []; 5680 // module.parent = undefined by default 5681 if (!module.children) module.children = []; 5682 Object.defineProperty(module, "loaded", { 5683 enumerable: true, 5684 get: function() { 5685 return module.l; 5686 } 5687 }); 5688 Object.defineProperty(module, "id", { 5689 enumerable: true, 5690 get: function() { 5691 return module.i; 5692 } 5693 }); 5694 module.webpackPolyfill = 1; 5695 } 5696 return module; 5697}; 5698 5699 5700/***/ }), 5701/* 108 */ 5702/***/ (function(module, exports) { 5703 5704/** 5705 * Creates a unary function that invokes `func` with its argument transformed. 5706 * 5707 * @private 5708 * @param {Function} func The function to wrap. 5709 * @param {Function} transform The argument transform. 5710 * @returns {Function} Returns the new function. 5711 */ 5712function overArg(func, transform) { 5713 return function(arg) { 5714 return func(transform(arg)); 5715 }; 5716} 5717 5718module.exports = overArg; 5719 5720 5721/***/ }), 5722/* 109 */ 5723/***/ (function(module, exports, __webpack_require__) { 5724 5725var getNative = __webpack_require__(11), 5726 root = __webpack_require__(6); 5727 5728/* Built-in method references that are verified to be native. */ 5729var WeakMap = getNative(root, 'WeakMap'); 5730 5731module.exports = WeakMap; 5732 5733 5734/***/ }), 5735/* 110 */ 5736/***/ (function(module, exports, __webpack_require__) { 5737 5738var isObject = __webpack_require__(8); 5739 5740/** 5741 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 5742 * 5743 * @private 5744 * @param {*} value The value to check. 5745 * @returns {boolean} Returns `true` if `value` if suitable for strict 5746 * equality comparisons, else `false`. 5747 */ 5748function isStrictComparable(value) { 5749 return value === value && !isObject(value); 5750} 5751 5752module.exports = isStrictComparable; 5753 5754 5755/***/ }), 5756/* 111 */ 5757/***/ (function(module, exports) { 5758 5759/** 5760 * A specialized version of `matchesProperty` for source values suitable 5761 * for strict equality comparisons, i.e. `===`. 5762 * 5763 * @private 5764 * @param {string} key The key of the property to get. 5765 * @param {*} srcValue The value to match. 5766 * @returns {Function} Returns the new spec function. 5767 */ 5768function matchesStrictComparable(key, srcValue) { 5769 return function(object) { 5770 if (object == null) { 5771 return false; 5772 } 5773 return object[key] === srcValue && 5774 (srcValue !== undefined || (key in Object(object))); 5775 }; 5776} 5777 5778module.exports = matchesStrictComparable; 5779 5780 5781/***/ }), 5782/* 112 */ 5783/***/ (function(module, exports) { 5784 5785/** 5786 * A specialized version of `_.map` for arrays without support for iteratee 5787 * shorthands. 5788 * 5789 * @private 5790 * @param {Array} [array] The array to iterate over. 5791 * @param {Function} iteratee The function invoked per iteration. 5792 * @returns {Array} Returns the new mapped array. 5793 */ 5794function arrayMap(array, iteratee) { 5795 var index = -1, 5796 length = array == null ? 0 : array.length, 5797 result = Array(length); 5798 5799 while (++index < length) { 5800 result[index] = iteratee(array[index], index, array); 5801 } 5802 return result; 5803} 5804 5805module.exports = arrayMap; 5806 5807 5808/***/ }), 5809/* 113 */ 5810/***/ (function(module, exports) { 5811 5812/** 5813 * The base implementation of `_.property` without support for deep paths. 5814 * 5815 * @private 5816 * @param {string} key The key of the property to get. 5817 * @returns {Function} Returns the new accessor function. 5818 */ 5819function baseProperty(key) { 5820 return function(object) { 5821 return object == null ? undefined : object[key]; 5822 }; 5823} 5824 5825module.exports = baseProperty; 5826 5827 5828/***/ }), 5829/* 114 */
5830/***/ (function(module, exports) { 5831 5832/** 5833 * The base implementation of `_.findIndex` and `_.findLastIndex` without 5834 * support for iteratee shorthands. 5835 * 5836 * @private 5837 * @param {Array} array The array to inspect. 5838 * @param {Function} predicate The function invoked per iteration. 5839 * @param {number} fromIndex The index to search from. 5840 * @param {boolean} [fromRight] Specify iterating from right to left. 5841 * @returns {number} Returns the index of the matched value, else `-1`. 5842 */ 5843function baseFindIndex(array, predicate, fromIndex, fromRight) { 5844 var length = array.length, 5845 index = fromIndex + (fromRight ? 1 : -1); 5846 5847 while ((fromRight ? index-- : ++index < length)) { 5848 if (predicate(array[index], index, array)) { 5849 return index; 5850 } 5851 } 5852 return -1; 5853} 5854 5855module.exports = baseFindIndex; 5856 5857 5858/***/ }), 5859/* 115 */ 5860/***/ (function(module, exports, __webpack_require__) { 5861 5862var toFinite = __webpack_require__(263); 5863 5864/** 5865 * Converts `value` to an integer. 5866 * 5867 * **Note:** This method is loosely based on 5868 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). 5869 * 5870 * @static 5871 * @memberOf _ 5872 * @since 4.0.0 5873 * @category Lang 5874 * @param {*} value The value to convert. 5875 * @returns {number} Returns the converted integer. 5876 * @example 5877 * 5878 * _.toInteger(3.2); 5879 * // => 3 5880 * 5881 * _.toInteger(Number.MIN_VALUE); 5882 * // => 0 5883 * 5884 * _.toInteger(Infinity); 5885 * // => 1.7976931348623157e+308 5886 * 5887 * _.toInteger('3.2'); 5888 * // => 3 5889 */ 5890function toInteger(value) { 5891 var result = toFinite(value), 5892 remainder = result % 1; 5893 5894 return result === result ? (remainder ? result - remainder : result) : 0; 5895} 5896 5897module.exports = toInteger; 5898 5899 5900/***/ }), 5901/* 116 */ 5902/***/ (function(module, exports, __webpack_require__) { 5903 5904"use strict"; 5905 5906 5907var _interopRequireDefault = __webpack_require__(0); 5908 5909Object.defineProperty(exports, "__esModule", { 5910 value: true 5911}); 5912exports.inQuad = inQuad; 5913exports.outQuad = outQuad; 5914exports.inOutQuad = inOutQuad; 5915exports.inCubic = inCubic; 5916exports.outCubic = outCubic; 5917exports.inOutCubic = inOutCubic; 5918exports.inQuart = inQuart; 5919exports.outQuart = outQuart; 5920exports.inOutQuart = inOutQuart; 5921exports.inQuint = inQuint; 5922exports.outQuint = outQuint; 5923exports.inOutQuint = inOutQuint; 5924exports.inSine = inSine; 5925exports.outSine = outSine; 5926exports.inOutSine = inOutSine; 5927exports.inExpo = inExpo; 5928exports.outExpo = outExpo; 5929exports.inOutExpo = inOutExpo; 5930exports.inCirc = inCirc; 5931exports.outCirc = outCirc; 5932exports.inOutCirc = inOutCirc; 5933exports.outBounce = outBounce; 5934exports.inBack = inBack; 5935exports.outBack = outBack; 5936exports.inOutBack = inOutBack; 5937exports.inElastic = inElastic; 5938exports.outElastic = outElastic; 5939exports.inOutElastic = inOutElastic; 5940exports.swingFromTo = swingFromTo; 5941exports.swingFrom = swingFrom; 5942exports.swingTo = swingTo; 5943exports.bounce = bounce; 5944exports.bouncePast = bouncePast; 5945exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; 5946 5947var _bezierEasing = _interopRequireDefault(__webpack_require__(117)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn 5948// Easing Equations (c) 2003 Robert Penner, BSD license 5949// https://raw.github.com/danro/easing-js/master/LICENSE 5950 5951 5952var magicSwing = 1.70158; 5953var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); 5954exports.ease = ease; 5955var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); 5956exports.easeIn = easeIn; 5957var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); 5958exports.easeOut = easeOut; 5959var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); 5960exports.easeInOut = easeInOut; 5961 5962function inQuad(pos) { 5963 return Math.pow(pos, 2); 5964} 5965 5966function outQuad(pos) { 5967 return -(Math.pow(pos - 1, 2) - 1); 5968} 5969 5970function inOutQuad(pos) { 5971 if ((pos /= 0.5) < 1) { 5972 return 0.5 * Math.pow(pos, 2); 5973 } 5974 5975 return -0.5 * ((pos -= 2) * pos - 2); 5976} 5977 5978function inCubic(pos) { 5979 return Math.pow(pos, 3); 5980} 5981 5982function outCubic(pos) { 5983 return Math.pow(pos - 1, 3) + 1; 5984} 5985 5986function inOutCubic(pos) { 5987 if ((pos /= 0.5) < 1) { 5988 return 0.5 * Math.pow(pos, 3); 5989 } 5990 5991 return 0.5 * (Math.pow(pos - 2, 3) + 2); 5992} 5993 5994function inQuart(pos) { 5995 return Math.pow(pos, 4); 5996} 5997 5998function outQuart(pos) { 5999 return -(Math.pow(pos - 1, 4) - 1); 6000} 6001 6002function inOutQuart(pos) { 6003 if ((pos /= 0.5) < 1) { 6004 return 0.5 * Math.pow(pos, 4); 6005 } 6006 6007 return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); 6008} 6009 6010function inQuint(pos) { 6011 return Math.pow(pos, 5); 6012} 6013 6014function outQuint(pos) { 6015 return Math.pow(pos - 1, 5) + 1; 6016} 6017 6018function inOutQuint(pos) { 6019 if ((pos /= 0.5) < 1) { 6020 return 0.5 * Math.pow(pos, 5); 6021 } 6022 6023 return 0.5 * (Math.pow(pos - 2, 5) + 2); 6024} 6025 6026function inSine(pos) { 6027 return -Math.cos(pos * (Math.PI / 2)) + 1; 6028} 6029 6030function outSine(pos) { 6031 return Math.sin(pos * (Math.PI / 2)); 6032} 6033 6034function inOutSine(pos) { 6035 return -0.5 * (Math.cos(Math.PI * pos) - 1); 6036} 6037 6038function inExpo(pos) { 6039 return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); 6040} 6041 6042function outExpo(pos) { 6043 return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; 6044} 6045 6046function inOutExpo(pos) { 6047 if (pos === 0) { 6048 return 0; 6049 } 6050 6051 if (pos === 1) { 6052 return 1; 6053 } 6054 6055 if ((pos /= 0.5) < 1) { 6056 return 0.5 * Math.pow(2, 10 * (pos - 1)); 6057 } 6058 6059 return 0.5 * (-Math.pow(2, -10 * --pos) + 2); 6060} 6061 6062function inCirc(pos) { 6063 return -(Math.sqrt(1 - pos * pos) - 1); 6064} 6065 6066function outCirc(pos) { 6067 return Math.sqrt(1 - Math.pow(pos - 1, 2)); 6068} 6069 6070function inOutCirc(pos) { 6071 if ((pos /= 0.5) < 1) { 6072 return -0.5 * (Math.sqrt(1 - pos * pos) - 1); 6073 } 6074 6075 return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); 6076} 6077 6078function outBounce(pos) { 6079 if (pos < 1 / 2.75) { 6080 return 7.5625 * pos * pos; 6081 } else if (pos < 2 / 2.75) { 6082 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 6083 } else if (pos < 2.5 / 2.75) { 6084 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 6085 } else { 6086 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 6087 } 6088} 6089 6090function inBack(pos) { 6091 var s = magicSwing; 6092 return pos * pos * ((s + 1) * pos - s); 6093} 6094 6095function outBack(pos) { 6096 var s = magicSwing; 6097 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 6098} 6099 6100function inOutBack(pos) { 6101 var s = magicSwing; 6102 6103 if ((pos /= 0.5) < 1) { 6104 return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); 6105 } 6106 6107 return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); 6108} 6109 6110function inElastic(pos) { 6111 var s = magicSwing; 6112 var p = 0; 6113 var a = 1; 6114 6115 if (pos === 0) { 6116 return 0; 6117 } 6118 6119 if (pos === 1) { 6120 return 1; 6121 } 6122 6123 if (!p) { 6124 p = 0.3; 6125 } 6126 6127 if (a < 1) { 6128 a = 1; 6129 s = p / 4; 6130 } else { 6131 s = p / (2 * Math.PI) * Math.asin(1 / a); 6132 } 6133
6134 return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 6135} 6136 6137function outElastic(pos) { 6138 var s = magicSwing; 6139 var p = 0; 6140 var a = 1; 6141 6142 if (pos === 0) { 6143 return 0; 6144 } 6145 6146 if (pos === 1) { 6147 return 1; 6148 } 6149 6150 if (!p) { 6151 p = 0.3; 6152 } 6153 6154 if (a < 1) { 6155 a = 1; 6156 s = p / 4; 6157 } else { 6158 s = p / (2 * Math.PI) * Math.asin(1 / a); 6159 } 6160 6161 return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; 6162} 6163 6164function inOutElastic(pos) { 6165 var s = magicSwing; 6166 var p = 0; 6167 var a = 1; 6168 6169 if (pos === 0) { 6170 return 0; 6171 } 6172 6173 if ((pos /= 1 / 2) === 2) { 6174 return 1; 6175 } 6176 6177 if (!p) { 6178 p = 0.3 * 1.5; 6179 } 6180 6181 if (a < 1) { 6182 a = 1; 6183 s = p / 4; 6184 } else { 6185 s = p / (2 * Math.PI) * Math.asin(1 / a); 6186 } 6187 6188 if (pos < 1) { 6189 return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 6190 } 6191 6192 return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; 6193} 6194 6195function swingFromTo(pos) { 6196 var s = magicSwing; 6197 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); 6198} 6199 6200function swingFrom(pos) { 6201 var s = magicSwing; 6202 return pos * pos * ((s + 1) * pos - s); 6203} 6204 6205function swingTo(pos) { 6206 var s = magicSwing; 6207 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 6208} 6209 6210function bounce(pos) { 6211 if (pos < 1 / 2.75) { 6212 return 7.5625 * pos * pos; 6213 } else if (pos < 2 / 2.75) { 6214 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 6215 } else if (pos < 2.5 / 2.75) { 6216 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 6217 } else { 6218 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 6219 } 6220} 6221 6222function bouncePast(pos) { 6223 if (pos < 1 / 2.75) { 6224 return 7.5625 * pos * pos; 6225 } else if (pos < 2 / 2.75) { 6226 return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); 6227 } else if (pos < 2.5 / 2.75) { 6228 return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); 6229 } else { 6230 return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); 6231 } 6232} 6233 6234/***/ }), 6235/* 117 */ 6236/***/ (function(module, exports) { 6237 6238/** 6239 * https://github.com/gre/bezier-easing 6240 * BezierEasing - use bezier curve for transition easing function 6241 * by Gaëtan Renaudeau 2014 - 2015 â MIT License 6242 */ 6243 6244// These values are established by empiricism with tests (tradeoff: performance VS precision) 6245var NEWTON_ITERATIONS = 4; 6246var NEWTON_MIN_SLOPE = 0.001; 6247var SUBDIVISION_PRECISION = 0.0000001; 6248var SUBDIVISION_MAX_ITERATIONS = 10; 6249 6250var kSplineTableSize = 11; 6251var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); 6252 6253var float32ArraySupported = typeof Float32Array === 'function'; 6254 6255function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } 6256function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } 6257function C (aA1) { return 3.0 * aA1; } 6258 6259// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. 6260function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } 6261 6262// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. 6263function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } 6264 6265function binarySubdivide (aX, aA, aB, mX1, mX2) { 6266 var currentX, currentT, i = 0; 6267 do { 6268 currentT = aA + (aB - aA) / 2.0; 6269 currentX = calcBezier(currentT, mX1, mX2) - aX; 6270 if (currentX > 0.0) { 6271 aB = currentT; 6272 } else { 6273 aA = currentT; 6274 } 6275 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); 6276 return currentT; 6277} 6278 6279function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { 6280 for (var i = 0; i < NEWTON_ITERATIONS; ++i) { 6281 var currentSlope = getSlope(aGuessT, mX1, mX2); 6282 if (currentSlope === 0.0) { 6283 return aGuessT; 6284 } 6285 var currentX = calcBezier(aGuessT, mX1, mX2) - aX; 6286 aGuessT -= currentX / currentSlope; 6287 } 6288 return aGuessT; 6289} 6290 6291module.exports = function bezier (mX1, mY1, mX2, mY2) { 6292 if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { 6293 throw new Error('bezier x values must be in [0, 1] range'); 6294 } 6295 6296 // Precompute samples table 6297 var sampleValues = float32ArraySupported ? new Float32Array(kS
6297plineTableSize) : new Array(kSplineTableSize); 6298 if (mX1 !== mY1 || mX2 !== mY2) { 6299 for (var i = 0; i < kSplineTableSize; ++i) { 6300 sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); 6301 } 6302 } 6303 6304 function getTForX (aX) { 6305 var intervalStart = 0.0; 6306 var currentSample = 1; 6307 var lastSample = kSplineTableSize - 1; 6308 6309 for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { 6310 intervalStart += kSampleStepSize; 6311 } 6312 --currentSample; 6313 6314 // Interpolate to provide an initial guess for t 6315 var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); 6316 var guessForT = intervalStart + dist * kSampleStepSize; 6317 6318 var initialSlope = getSlope(guessForT, mX1, mX2); 6319 if (initialSlope >= NEWTON_MIN_SLOPE) { 6320 return newtonRaphsonIterate(aX, guessForT, mX1, mX2); 6321 } else if (initialSlope === 0.0) { 6322 return guessForT; 6323 } else { 6324 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); 6325 } 6326 } 6327 6328 return function BezierEasing (x) { 6329 if (mX1 === mY1 && mX2 === mY2) { 6330 return x; // linear 6331 } 6332 // Because JavaScript number are imprecise, we should guarantee the extremes are right. 6333 if (x === 0) { 6334 return 0; 6335 } 6336 if (x === 1) { 6337 return 1; 6338 } 6339 return calcBezier(getTForX(x), mY1, mY2); 6340 }; 6341}; 6342 6343 6344/***/ }), 6345/* 118 */ 6346/***/ (function(module, exports, __webpack_require__) { 6347 6348"use strict"; 6349 6350 6351var _interopRequireDefault2 = __webpack_require__(0); 6352 6353var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(119)); 6354 6355var _interopRequireDefault = __webpack_require__(0); 6356 6357var _interopRequireWildcard = __webpack_require__(18); 6358 6359Object.defineProperty(exports, "__esModule", { 6360 value: true 6361}); 6362exports.optimizeFloat = optimizeFloat; 6363exports.createBezierEasing = createBezierEasing; 6364exports.applyEasing = applyEasing; 6365 6366var easings = _interopRequireWildcard(__webpack_require__(116)); 6367 6368var _bezierEasing = _interopRequireDefault(__webpack_require__(117)); 6369 6370function optimizeFloat(value) { 6371 var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; 6372 var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; 6373 var pow = Math.pow(base, digits); 6374 6375 var _float = Number(Math.round(value * pow) / pow); 6376 6377 return Math.abs(_float) > 0.0001 ? _float : 0; 6378} 6379 6380function createBezierEasing(easing) { 6381 return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); 6382} 6383 6384function applyEasing(easing, position, customEasingFn) { 6385 if (position === 0) { 6386 return 0; 6387 } 6388 6389 if (position === 1) { 6390 return 1; 6391 } 6392 6393 if (customEasingFn) { 6394 return optimizeFloat(position > 0 ? customEasingFn(position) : position); 6395 } 6396 6397 return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); 6398} 6399 6400/***/ }), 6401/* 119 */ 6402/***/ (function(module, exports, __webpack_require__) { 6403 6404var arrayWithoutHoles = __webpack_require__(266); 6405 6406var iterableToArray = __webpack_require__(267); 6407 6408var nonIterableSpread = __webpack_require__(268); 6409 6410function _toConsumableArray(arr) { 6411 return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); 6412} 6413 6414module.exports = _toConsumableArray; 6415 6416/***/ }), 6417/* 120 */ 6418/***/ (function(module, exports, __webpack_require__) { 6419 6420"use strict"; 6421 6422 6423var _interopRequireDefault = __webpack_require__(0); 6424 6425var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); 6426 6427Object.defineProperty(exports, "__esModule", { 6428 value: true 6429}); 6430exports.isPluginType = isPluginType; 6431exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; 6432 6433var _IX2LottieUtils = __webpack_require__(270); 6434 6435var _constants = __webpack_require__(4); 6436 6437var _IX2BrowserSupport = __webpack_require__(48); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined 6438 6439 6440var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, {
6441 getConfig: _IX2LottieUtils.getPluginConfig, 6442 getOrigin: _IX2LottieUtils.getPluginOrigin, 6443 getDuration: _IX2LottieUtils.getPluginDuration, 6444 getDestination: _IX2LottieUtils.getPluginDestination, 6445 createInstance: _IX2LottieUtils.createPluginInstance, 6446 render: _IX2LottieUtils.renderPlugin, 6447 clear: _IX2LottieUtils.clearPlugin 6448}); 6449 6450function isPluginType(actionTypeId) { 6451 return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; 6452} 6453 6454var pluginMethod = function pluginMethod(methodName) { 6455 return function (actionTypeId) { 6456 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 6457 // IX2 plugins require browser libs for now 6458 return function () { 6459 return null; 6460 }; 6461 } 6462 6463 var plugin = pluginMethodMap[actionTypeId]; 6464 6465 if (!plugin) { 6466 throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); 6467 } 6468 6469 var method = plugin[methodName]; 6470 6471 if (!method) { 6472 throw new Error("IX2 invalid plugin method: ".concat(methodName)); 6473 } 6474 6475 return method; 6476 }; 6477}; 6478 6479var getPluginConfig = pluginMethod('getConfig'); 6480exports.getPluginConfig = getPluginConfig; 6481var getPluginOrigin = pluginMethod('getOrigin'); 6482exports.getPluginOrigin = getPluginOrigin; 6483var getPluginDuration = pluginMethod('getDuration'); 6484exports.getPluginDuration = getPluginDuration; 6485var getPluginDestination = pluginMethod('getDestination'); 6486exports.getPluginDestination = getPluginDestination; 6487var createPluginInstance = pluginMethod('createInstance'); 6488exports.createPluginInstance = createPluginInstance; 6489var renderPlugin = pluginMethod('render'); 6490exports.renderPlugin = renderPlugin; 6491var clearPlugin = pluginMethod('clear'); 6492exports.clearPlugin = clearPlugin; 6493 6494/***/ }), 6495/* 121 */ 6496/***/ (function(module, exports, __webpack_require__) { 6497 6498var baseForOwn = __webpack_require__(122), 6499 createBaseEach = __webpack_require__(277); 6500 6501/** 6502 * The base implementation of `_.forEach` without support for iteratee shorthands. 6503 * 6504 * @private 6505 * @param {Array|Object} collection The collection to iterate over. 6506 * @param {Function} iteratee The function invoked per iteration. 6507 * @returns {Array|Object} Returns `collection`. 6508 */ 6509var baseEach = createBaseEach(baseForOwn); 6510 6511module.exports = baseEach; 6512 6513 6514/***/ }), 6515/* 122 */ 6516/***/ (function(module, exports, __webpack_require__) { 6517 6518var baseFor = __webpack_require__(275), 6519 keys = __webpack_require__(35); 6520 6521/** 6522 * The base implementation of `_.forOwn` without support for iteratee shorthands. 6523 * 6524 * @private 6525 * @param {Object} object The object to iterate over. 6526 * @param {Function} iteratee The function invoked per iteration. 6527 * @returns {Object} Returns `object`. 6528 */ 6529function baseForOwn(object, iteratee) { 6530 return object && baseFor(object, iteratee, keys); 6531} 6532 6533module.exports = baseForOwn; 6534 6535 6536/***/ }), 6537/* 123 */ 6538/***/ (function(module, exports, __webpack_require__) { 6539 6540"use strict"; 6541 6542 6543var _interopRequireDefault2 = __webpack_require__(0); 6544 6545var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(119)); 6546 6547var _interopRequireWildcard = __webpack_require__(18); 6548 6549var _interopRequireDefault = __webpack_require__(0); 6550 6551Object.defineProperty(exports, "__esModule", { 6552 value: true 6553}); 6554exports.observeRequests = observeRequests; 6555exports.startEngine = startEngine; 6556exports.stopEngine = stopEngine; 6557exports.stopAllActionGroups = stopAllActionGroups; 6558exports.stopActionGroup = stopActionGroup; 6559exports.startActionGroup = startActionGroup; 6560 6561var _extends2 = _interopRequireDefault(__webpack_require__(30)); 6562 6563var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(284)); 6564 6565var _find = _interopRequireDefault(__webpack_require__(95)); 6566 6567var _get = _interopRequireDefault(__webpack_require__(60)); 6568 6569var _size = _interopRequireDefault(__webpack_require__(285)); 6570 6571var _omitBy = _interopRequireDefault(__webpack_require__(291)); 6572 6573var _isEmpty = _interopRequireDefault(__webpack_require__(303)); 6574 6575var _mapValues = _interopRequireDefault(__webpack_require__(304)); 6576 6577var _forEach = _interopRequireDefault(__webpack_require__(305)); 6578 6579var _throttle = _interopRequireDefault(__webpack_require__(308)); 6580 6581var _constants = __webpack_require__(4); 6582 6583var _shared = __webpack_require__(15); 6584 6585var _IX2EngineActions = __webpack_require__(65); 6586 6587var elementApi = _interopRequireWildcard(__webpack_require__(311)); 6588 6589var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(312)); 6590/* eslint-env browser */ 6591 6592 6593var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); 6594 6595var isQuickEffect = function isQuickEffect(actionTypeId) { 6596 return QuickEffectsIdList.includes(actionTypeId); 6597}; 6598 6599var _constants$IX2EngineC = _constants.IX2EngineConstants, 6600 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 6601 BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, 6602 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 6603 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 6604 W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; 6605var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 6606 getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, 6607 getElementId = _shared$IX2VanillaUti.getElementId, 6608 getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, 6609 observeStore = _shared$IX2VanillaUti.observeStore, 6610 getInstanceId = _shared$IX2VanillaUti.getInstanceId, 6611 renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, 6612 clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, 6613 getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, 6614 getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, 6615 getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, 6616 reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, 6617 shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, 6618 getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, 6619 shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, 6620 cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, 6621 stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, 6622 mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual, 6623 shallowEqual = _shared$IX2VanillaUti.shallowEqual; 6624var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, 6625 isPluginType = _shared$IX2VanillaPlu.isPluginType, 6626 createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, 6627 getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; 6628var ua = navigator.userAgent; 6629var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy 6630 6631var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe 6632 6633function observeRequests(store) { 6634 observeStore({ 6635 store: store, 6636 select: function select(_ref) { 6637 var ixRequest = _ref.ixRequest; 6638 return ixRequest.preview; 6639 }, 6640 onChange: handlePreviewRequest 6641 }); 6642 observeStore({ 6643 store: store, 6644 select: function select(_ref2) { 6645 var ixRequest = _ref2.ixRequest; 6646 return ixRequest.playback; 6647 }, 6648 onChange: handlePlaybackRequest 6649 }); 6650 observeStore({ 6651 store: store, 6652 select: function select(_ref3) { 6653 var ixRequest = _ref3.ixRequest; 6654 return ixRequest.stop; 6655 }, 6656 onChange: handleStopRequest 6657 }); 6658 observeStore({ 6659 store: store, 6660 select: function select(_ref4) { 6661 var ixRequest = _ref4.ixRequest; 6662 return ixRequest.clear; 6663 }, 6664 onChange: handleClearRequest 6665 }); 6666} 6667 6668function observeMediaQueryChange(store) { 6669 observeStore({ 6670 store: store, 6671 select: function select(_ref5) { 6672 var ixSession = _ref5.ixSession; 6673 return ixSession.mediaQueryKey; 6674 }, 6675 onChange: function onChange() { 6676 stopEngine(store); 6677 clearAllStyles({ 6678 store: store, 6679 elementApi: elementApi 6680 }); 6681 startEngine({ 6682 store: store, 6683 allowEvents: true 6684 }); 6685 dispatchPageUpdateEvent(); 6686 } 6687 }); 6688} 6689 6690function observeOneRenderTick(store, onTick) { 6691 var unsubscribe = observeStore({ 6692 store: store, 6693 select: function select(_ref6) { 6694 var ixSession = _ref6.ixSession; 6695 return ixSession.tick; 6696 }, 6697 onChange: function onChange(tick) { 6698 onTick(tick); 6699 unsubscribe(); 6700 } 6701 }); 6702} 6703 6704function handlePreviewRequest(_ref7, store) { 6705 var rawData = _ref7.rawData, 6706 defer = _ref7.defer; 6707 6708 var start = function start() { 6709 startEngine({ 6710 store: store, 6711 rawData: rawData, 6712 allowEvents: true 6713 }); 6714 dispatchPageUpdateEvent(); 6715 }; 6716 6717 defer ? setTimeout(start, 0) : start(); 6718} 6719 6720function dispatchPageUpdateEvent() { 6721 document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); 6722} 6723 6724function handlePlaybackRequest(playback, store) { 6725 var actionTypeId = playback.actionTypeId, 6726 actionListId = playback.actionListId, 6727 actionItemId = playback.actionItemId, 6728 eventId = playback.eventId, 6729 allowEvents = playback.allowEvents, 6730 immediate = playback.immediate, 6731 testManual = playback.testManual, 6732 _playback$verbose = playback.verbose, 6733 verbose = _playback$verbose === void 0 ? true : _playback$verbose; 6734 var rawData = playback.rawData; 6735 6736 if (actionListId && actionItemId && rawData && immediate) { 6737 var actionList = rawData.actionLists[actionListId]; 6738 6739 if (actionList) { 6740 rawData = reduceListToGroup({ 6741 actionList: actionList, 6742 actionItemId: actionItemId, 6743 rawData: rawData 6744 }); 6745 } 6746 } 6747 6748 startEngine({ 6749 store: store, 6750 rawData: rawData, 6751 allowEvents: allowEvents, 6752 testManual: testManual 6753 }); 6754 6755 if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(actionTypeId)) { 6756 stopActionGroup({ 6757 store: store, 6758 actionListId: actionListId 6759 }); 6760 renderInitialGroup({ 6761 store: store, 6762 actionListId: actionListId, 6763 eventId: eventId 6764 }); 6765 var started = startActionGroup({ 6766 store: store, 6767 eventId: eventId, 6768 actionListId: actionListId, 6769 immediate: immediate,
6770 verbose: verbose 6771 }); 6772 6773 if (verbose && started) { 6774 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 6775 actionListId: actionListId, 6776 isPlaying: !immediate 6777 })); 6778 } 6779 } 6780} 6781 6782function handleStopRequest(_ref8, store) { 6783 var actionListId = _ref8.actionListId; 6784 6785 if (actionListId) { 6786 stopActionGroup({ 6787 store: store, 6788 actionListId: actionListId 6789 }); 6790 } else { 6791 stopAllActionGroups({ 6792 store: store 6793 }); 6794 } 6795 6796 stopEngine(store); 6797} 6798 6799function handleClearRequest(state, store) { 6800 stopEngine(store); 6801 clearAllStyles({ 6802 store: store, 6803 elementApi: elementApi 6804 }); 6805} // $FlowFixMe 6806 6807 6808function startEngine(_ref9) { 6809 var store = _ref9.store, 6810 rawData = _ref9.rawData, 6811 allowEvents = _ref9.allowEvents, 6812 testManual = _ref9.testManual; 6813 6814 var _store$getState = store.getState(), 6815 ixSession = _store$getState.ixSession; 6816 6817 if (rawData) { 6818 store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); 6819 } 6820 6821 if (!ixSession.active) { 6822 store.dispatch((0, _IX2EngineActions.sessionInitialized)({ 6823 hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)), 6824 reducedMotion: // $FlowFixMe - Remove this attribute on beta launch 6825 document.body.hasAttribute('data-wf-ix-vacation') && window.matchMedia('(prefers-reduced-motion)').matches 6826 })); 6827 6828 if (allowEvents) { 6829 bindEvents(store); 6830 addDocumentClass(); 6831 6832 if (store.getState().ixSession.hasDefinedMediaQueries) { 6833 observeMediaQueryChange(store); 6834 } 6835 } 6836 6837 store.dispatch((0, _IX2EngineActions.sessionStarted)()); 6838 startRenderLoop(store, testManual); 6839 } 6840} 6841 6842function addDocumentClass() { 6843 var _document = document, 6844 documentElement = _document.documentElement; // $FlowFixMe 6845 6846 if (documentElement.className.indexOf(W_MOD_IX) === -1) { 6847 // $FlowFixMe 6848 documentElement.className += " ".concat(W_MOD_IX); 6849 } 6850} 6851 6852function startRenderLoop(store, testManual) { 6853 var handleFrame = function handleFrame(now) { 6854 var _store$getState2 = store.getState(), 6855 ixSession = _store$getState2.ixSession, 6856 ixParameters = _store$getState2.ixParameters; 6857 6858 if (ixSession.active) { 6859 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); 6860 6861 if (testManual) { 6862 observeOneRenderTick(store, handleFrame); 6863 } else { 6864 requestAnimationFrame(handleFrame); 6865 } 6866 } 6867 }; 6868 6869 handleFrame(window.performance.now()); 6870} // $FlowFixMe 6871 6872 6873function stopEngine(store) { 6874 var _store$getState3 = store.getState(), 6875 ixSession = _store$getState3.ixSession; 6876 6877 if (ixSession.active) { 6878 var eventListeners = ixSession.eventListeners; 6879 eventListeners.forEach(clearEventListener); 6880 store.dispatch((0, _IX2EngineActions.sessionStopped)()); 6881 } 6882} 6883 6884function clearEventListener(_ref10) { 6885 var target = _ref10.target, 6886 listenerParams = _ref10.listenerParams; 6887 target.removeEventListener.apply(target, listenerParams); 6888} 6889 6890function createGroupInstances(_ref11) { 6891 var store = _ref11.store, 6892 eventStateKey = _ref11.eventStateKey, 6893 eventTarget = _ref11.eventTarget, 6894 eventId = _ref11.eventId, 6895 eventConfig = _ref11.eventConfig, 6896 actionListId = _ref11.actionListId, 6897 parameterGroup = _ref11.parameterGroup, 6898 smoothing = _ref11.smoothing, 6899 restingValue = _ref11.restingValue; 6900 6901 var _store$getState4 = store.getState(), 6902 ixData = _store$getState4.ixData, 6903 ixSession = _store$getState4.ixSession; 6904 6905 var events = ixData.events; 6906 var event = events[eventId]; 6907 var eventTypeId = event.eventTypeId; 6908 var targetCache = {}; 6909 var instanceActionGroups = {}; 6910 var instanceConfigs = []; 6911 var continuousActionGroups = parameterGroup.continuousActionGroups; 6912 var parameterId = parameterGroup.id; 6913 6914 if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { 6915 parameterId = getNamespacedParameterId(eventStateKey, parameterId); 6916 } // Limit affected elements when event target is within a boundary node 6917 6918 6919 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 6920 continuousActionGroups.forEach(function (actionGroup) { 6921 var keyframe = actionGroup.keyframe, 6922 actionItems = actionGroup.actionItems;
6923 actionItems.forEach(function (actionItem) { 6924 var actionTypeId = actionItem.actionTypeId; 6925 var target = actionItem.config.target; 6926 6927 if (!target) { 6928 return; 6929 } 6930 6931 var elementRoot = target.boundaryMode ? eventElementRoot : null; 6932 var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; 6933 instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); 6934 6935 if (!targetCache[key]) { 6936 targetCache[key] = true; 6937 var config = actionItem.config; 6938 getAffectedElements({ 6939 config: config, 6940 event: event, 6941 eventTarget: eventTarget, 6942 elementRoot: elementRoot, 6943 elementApi: elementApi 6944 }).forEach(function (element) { 6945 instanceConfigs.push({ 6946 element: element, 6947 key: key 6948 }); 6949 }); 6950 } 6951 }); 6952 }); 6953 instanceConfigs.forEach(function (_ref12) { 6954 var element = _ref12.element, 6955 key = _ref12.key; 6956 var actionGroups = instanceActionGroups[key]; 6957 var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); 6958 var actionTypeId = actionItem.actionTypeId; 6959 var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe 6960 createPluginInstance(actionTypeId)(element, actionItem) : null; 6961 var destination = getDestinationValues({ 6962 element: element, 6963 actionItem: actionItem, 6964 elementApi: elementApi 6965 }, // $FlowFixMe 6966 pluginInstance); 6967 createInstance({ 6968 store: store, 6969 element: element, 6970 eventId: eventId, 6971 actionListId: actionListId, 6972 actionItem: actionItem, 6973 destination: destination, 6974 continuous: true, 6975 parameterId: parameterId, 6976 actionGroups: actionGroups, 6977 smoothing: smoothing, 6978 restingValue: restingValue, 6979 pluginInstance: pluginInstance 6980 }); 6981 }); 6982} 6983 6984function appendActionItem() { 6985 var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 6986 var keyframe = arguments.length > 1 ? arguments[1] : undefined; 6987 var actionItem = arguments.length > 2 ? arguments[2] : undefined; 6988 var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); 6989 var groupIndex; 6990 newActionGroups.some(function (group, index) { 6991 if (group.keyframe === keyframe) { 6992 groupIndex = index; 6993 return true; 6994 } 6995 6996 return false; 6997 }); 6998 6999 if (groupIndex == null) { 7000 groupIndex = newActionGroups.length; 7001 newActionGroups.push({ 7002 keyframe: keyframe, 7003 actionItems: [] 7004 }); 7005 } 7006 7007 newActionGroups[groupIndex].actionItems.push(actionItem); 7008 return newActionGroups; 7009} 7010 7011function bindEvents(store) { 7012 var _store$getState5 = store.getState(), 7013 ixData = _store$getState5.ixData; 7014 7015 var eventTypeMap = ixData.eventTypeMap; 7016 updateViewportWidth(store); 7017 (0, _forEach["default"])(eventTypeMap, function (events, key) { 7018 var logic = _IX2VanillaEvents["default"][key]; 7019 7020 if (!logic) { 7021 console.warn("IX2 event type not configured: ".concat(key)); 7022 return; 7023 } 7024 7025 bindEventType({ 7026 logic: logic, 7027 store: store, 7028 events: events 7029 }); 7030 }); 7031 7032 var _store$getState6 = store.getState(), 7033 ixSession = _store$getState6.ixSession; 7034 7035 if (ixSession.eventListeners.length) { 7036 bindResizeEvents(store); 7037 } 7038} 7039 7040var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; 7041 7042function bindResizeEvents(store) { 7043 var handleResize = function handleResize() { 7044 updateViewportWidth(store); 7045 }; 7046 7047 WINDOW_RESIZE_EVENTS.forEach(function (type) { 7048 window.addEventListener(type, handleResize); 7049 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); 7050 }); 7051 handleResize(); 7052} 7053 7054function updateViewportWidth(store) { 7055 var _store$getState7 = store.getState(), 7056 ixSession = _store$getState7.ixSession, 7057 ixData = _store$getState7.ixData; 7058 7059 var width = window.innerWidth; 7060 7061 if (width !== ixSession.viewportWidth) { 7062 var mediaQueries = ixData.mediaQueries; 7063 store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ 7064 width: width, 7065 mediaQueries: mediaQueries 7066 })); 7067 } 7068} 7069 7070var mapFoundValues = function mapFoundValues(object, iteratee) { 7071 return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); 7072}; 7073
7074var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { 7075 (0, _forEach["default"])(eventTargets, function (elements, eventId) { 7076 elements.forEach(function (element, index) { 7077 var eventStateKey = eventId + COLON_DELIMITER + index; 7078 eventCallback(element, eventId, eventStateKey); 7079 }); 7080 }); 7081}; 7082 7083var getAffectedForEvent = function getAffectedForEvent(event) { 7084 var config = { 7085 target: event.target, 7086 targets: event.targets 7087 }; 7088 return getAffectedElements({ 7089 config: config, 7090 elementApi: elementApi 7091 }); 7092}; 7093 7094function bindEventType(_ref13) { 7095 var logic = _ref13.logic, 7096 store = _ref13.store, 7097 events = _ref13.events; 7098 injectBehaviorCSSFixes(events); 7099 var eventTypes = logic.types, 7100 eventHandler = logic.handler; 7101 7102 var _store$getState8 = store.getState(), 7103 ixData = _store$getState8.ixData; 7104 7105 var actionLists = ixData.actionLists; 7106 var eventTargets = mapFoundValues(events, getAffectedForEvent); 7107 7108 if (!(0, _size["default"])(eventTargets)) { 7109 return; 7110 } 7111 7112 (0, _forEach["default"])(eventTargets, function (elements, key) { 7113 var event = events[key]; 7114 var eventAction = event.action, 7115 eventId = event.id, 7116 _event$mediaQueries = event.mediaQueries, 7117 mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; 7118 var actionListId = eventAction.config.actionListId; 7119 7120 if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { 7121 store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); 7122 } 7123 7124 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 7125 var configs = Array.isArray(event.config) ? event.config : [event.config]; 7126 configs.forEach(function (eventConfig) { 7127 var continuousParameterGroupId = eventConfig.continuousParameterGroupId; 7128 var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); 7129 var parameterGroup = (0, _find["default"])(paramGroups, function (_ref14) { 7130 var id = _ref14.id; 7131 return id === continuousParameterGroupId; 7132 }); 7133 var smoothing = (eventConfig.smoothing || 0) / 100; 7134 var restingValue = (eventConfig.restingState || 0) / 100; 7135 7136 if (!parameterGroup) { 7137 return; 7138 } 7139 7140 elements.forEach(function (eventTarget, index) { 7141 var eventStateKey = eventId + COLON_DELIMITER + index; 7142 createGroupInstances({ 7143 store: store, 7144 eventStateKey: eventStateKey, 7145 eventTarget: eventTarget, 7146 eventId: eventId, 7147 eventConfig: eventConfig, 7148 actionListId: actionListId, 7149 parameterGroup: parameterGroup, 7150 smoothing: smoothing, 7151 restingValue: restingValue 7152 }); 7153 }); 7154 }); 7155 } 7156 7157 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || isQuickEffect(eventAction.actionTypeId)) { 7158 renderInitialGroup({ 7159 store: store, 7160 actionListId: actionListId, 7161 eventId: eventId 7162 }); 7163 } 7164 }); 7165 7166 var handleEvent = function handleEvent(nativeEvent) { 7167 var _store$getState9 = store.getState(), 7168 ixSession = _store$getState9.ixSession; 7169 7170 forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { 7171 var event = events[eventId]; 7172 var oldState = ixSession.eventState[eventStateKey]; 7173 var eventAction = event.action, 7174 _event$mediaQueries2 = event.mediaQueries, 7175 mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config 7176 7177 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7178 return; 7179 } 7180 7181 var handleEventWithConfig = function handleEventWithConfig() { 7182 var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 7183 var newState = eventHandler({ 7184 store: store, 7185 element: element, 7186 event: event, 7187 eventConfig: eventConfig, 7188 nativeEvent: nativeEvent, 7189 eventStateKey: eventStateKey 7190 }, oldState); 7191 7192 if (!shallowEqual(newState, oldState)) { 7193 store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); 7194 } 7195 }; 7196 7197 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 7198 var configs = Array.isArray(event.config) ? event.config : [event.config];
7199 configs.forEach(handleEventWithConfig); 7200 } else { 7201 handleEventWithConfig(); 7202 } 7203 }); 7204 }; 7205 7206 var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); 7207 7208 var addListeners = function addListeners(_ref15) { 7209 var _ref15$target = _ref15.target, 7210 target = _ref15$target === void 0 ? document : _ref15$target, 7211 types = _ref15.types, 7212 shouldThrottle = _ref15.throttle; 7213 types.split(' ').filter(Boolean).forEach(function (type) { 7214 var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe 7215 7216 target.addEventListener(type, handlerFunc); 7217 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); 7218 }); 7219 }; 7220 7221 if (Array.isArray(eventTypes)) { 7222 eventTypes.forEach(addListeners); 7223 } else if (typeof eventTypes === 'string') { 7224 addListeners(logic); 7225 } 7226} 7227/** 7228 * Injects CSS into the document to fix behavior issues across 7229 * different devices. 7230 */ 7231 7232 7233function injectBehaviorCSSFixes(events) { 7234 if (!IS_MOBILE_SAFARI) { 7235 return; 7236 } 7237 7238 var injectedSelectors = {}; 7239 var cssText = ''; 7240 7241 for (var eventId in events) { 7242 var _events$eventId = events[eventId], 7243 eventTypeId = _events$eventId.eventTypeId, 7244 target = _events$eventId.target; 7245 var selector = elementApi.getQuerySelector(target); // $FlowFixMe 7246 7247 if (injectedSelectors[selector]) { 7248 continue; 7249 } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices 7250 7251 7252 if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { 7253 // $FlowFixMe 7254 injectedSelectors[selector] = true; 7255 cssText += // $FlowFixMe 7256 selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; 7257 } 7258 } 7259 7260 if (cssText) { 7261 var style = document.createElement('style'); 7262 style.textContent = cssText; // $FlowFixMe 7263 7264 document.body.appendChild(style); 7265 } 7266} 7267 7268function renderInitialGroup(_ref16) { 7269 var store = _ref16.store, 7270 actionListId = _ref16.actionListId, 7271 eventId = _ref16.eventId; 7272 7273 var _store$getState10 = store.getState(), 7274 ixData = _store$getState10.ixData, 7275 ixSession = _store$getState10.ixSession; 7276 7277 var actionLists = ixData.actionLists, 7278 events = ixData.events; 7279 var event = events[eventId]; 7280 var actionList = actionLists[actionListId]; 7281 7282 if (actionList && actionList.useFirstGroupAsInitialState) { 7283 var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config 7284 7285 var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); 7286 7287 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7288 return; 7289 } 7290 7291 initialStateItems.forEach(function (actionItem) { 7292 var _itemConfig$target; 7293 7294 var itemConfig = actionItem.config, 7295 actionTypeId = actionItem.actionTypeId; 7296 var config = // When useEventTarget is explicitly true, use event target/targets to query elements 7297 (itemConfig === null || itemConfig === void 0 ? void 0 : (_itemConfig$target = itemConfig.target) === null || _itemConfig$target === void 0 ? void 0 : _itemConfig$target.useEventTarget) === true ? { 7298 target: event.target, 7299 targets: event.targets 7300 } : itemConfig; 7301 var itemElements = getAffectedElements({ 7302 config: config, 7303 event: event, 7304 elementApi: elementApi 7305 }); 7306 var shouldUsePlugin = isPluginType(actionTypeId); 7307 itemElements.forEach(function (element) { 7308 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7309 createPluginInstance(actionTypeId)(element, actionItem) : null; 7310 createInstance({ 7311 destination: getDestinationValues({ 7312 element: element, 7313 actionItem: actionItem, 7314 elementApi: elementApi 7315 }, // $FlowFixMe 7316 pluginInstance), 7317 immediate: true, 7318 store: store, 7319 element: element, 7320 eventId: eventId, 7321 actionItem: actionItem, 7322 actionListId: actionListId, 7323 pluginInstance: pluginInstance 7324 }); 7325 }); 7326 }); 7327 } 7328} // $FlowFixMe 7329 7330 7331function stopAllActionGroups(_ref17) { 7332 var store = _ref17.store; 7333 7334 var _store$getState11 = store.getState(), 7335 ixInstances = _store$getState11.ixInstances; 7336
7337 (0, _forEach["default"])(ixInstances, function (instance) { 7338 if (!instance.continuous) { 7339 var actionListId = instance.actionListId, 7340 verbose = instance.verbose; 7341 removeInstance(instance, store); 7342 7343 if (verbose) { 7344 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7345 actionListId: actionListId, 7346 isPlaying: false 7347 })); 7348 } 7349 } 7350 }); 7351} // $FlowFixMe 7352 7353 7354function stopActionGroup(_ref18) { 7355 var store = _ref18.store, 7356 eventId = _ref18.eventId, 7357 eventTarget = _ref18.eventTarget, 7358 eventStateKey = _ref18.eventStateKey, 7359 actionListId = _ref18.actionListId; 7360 7361 var _store$getState12 = store.getState(), 7362 ixInstances = _store$getState12.ixInstances, 7363 ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances 7364 7365 7366 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7367 (0, _forEach["default"])(ixInstances, function (instance) { 7368 var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true 7369 7370 var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids 7371 7372 if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { 7373 // Avoid removal when root boundary does not contain instance element 7374 if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { 7375 return; 7376 } 7377 7378 removeInstance(instance, store); 7379 7380 if (instance.verbose) { 7381 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7382 actionListId: actionListId, 7383 isPlaying: false 7384 })); 7385 } 7386 } 7387 }); 7388} // $FlowFixMe 7389 7390 7391function startActionGroup(_ref19) { 7392 var store = _ref19.store, 7393 eventId = _ref19.eventId, 7394 eventTarget = _ref19.eventTarget, 7395 eventStateKey = _ref19.eventStateKey, 7396 actionListId = _ref19.actionListId, 7397 _ref19$groupIndex = _ref19.groupIndex, 7398 groupIndex = _ref19$groupIndex === void 0 ? 0 : _ref19$groupIndex, 7399 immediate = _ref19.immediate, 7400 verbose = _ref19.verbose; 7401 7402 var _event$action; 7403 7404 var _store$getState13 = store.getState(), 7405 ixData = _store$getState13.ixData, 7406 ixSession = _store$getState13.ixSession; 7407 7408 var events = ixData.events; 7409 var event = events[eventId] || {}; 7410 var _event$mediaQueries3 = event.mediaQueries, 7411 mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; 7412 var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); 7413 var actionItemGroups = actionList.actionItemGroups, 7414 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups 7415 7416 if (!actionItemGroups || !actionItemGroups.length) { 7417 return false; 7418 } // Reset to first group when event loop is configured 7419 7420 7421 if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { 7422 groupIndex = 0; 7423 } // Skip initial state group during action list playback, as it should already be applied 7424 7425 7426 if (groupIndex === 0 && useFirstGroupAsInitialState) { 7427 groupIndex++; 7428 } // Identify first animated group and apply the initial QuickEffect delay 7429 7430 7431 var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; 7432 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 7433 7434 var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); 7435 7436 if (!actionItems.length) { 7437 return false; 7438 } // Abort playback if current media query is not listed in event config 7439 7440 7441 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7442 return false;
7443 } // Limit affected elements when event target is within a boundary node 7444 7445 7446 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7447 var carrierIndex = getMaxDurationItemIndex(actionItems); 7448 var groupStartResult = false; 7449 actionItems.forEach(function (actionItem, actionIndex) { 7450 var config = actionItem.config, 7451 actionTypeId = actionItem.actionTypeId; 7452 var shouldUsePlugin = isPluginType(actionTypeId); 7453 var target = config.target; 7454 7455 if (!target) { 7456 return; 7457 } 7458 7459 var elementRoot = target.boundaryMode ? eventElementRoot : null; 7460 var elements = getAffectedElements({ 7461 config: config, 7462 event: event, 7463 eventTarget: eventTarget, 7464 elementRoot: elementRoot, 7465 elementApi: elementApi 7466 }); 7467 elements.forEach(function (element, elementIndex) { 7468 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7469 createPluginInstance(actionTypeId)(element, actionItem) : null; 7470 var pluginDuration = shouldUsePlugin ? // $FlowFixMe 7471 getPluginDuration(actionTypeId)(element, actionItem) : null; 7472 groupStartResult = true; 7473 var isCarrier = carrierIndex === actionIndex && elementIndex === 0; 7474 var computedStyle = getComputedStyle({ 7475 element: element, 7476 actionItem: actionItem 7477 }); 7478 var destination = getDestinationValues({ 7479 element: element, 7480 actionItem: actionItem, 7481 elementApi: elementApi 7482 }, // $FlowFixMe 7483 pluginInstance); 7484 createInstance({ 7485 store: store, 7486 element: element, 7487 actionItem: actionItem, 7488 eventId: eventId, 7489 eventTarget: eventTarget, 7490 eventStateKey: eventStateKey, 7491 actionListId: actionListId, 7492 groupIndex: groupIndex, 7493 isCarrier: isCarrier, 7494 computedStyle: computedStyle, 7495 destination: destination, 7496 immediate: immediate, 7497 verbose: verbose, 7498 pluginInstance: pluginInstance, 7499 pluginDuration: pluginDuration, 7500 instanceDelay: instanceDelay 7501 }); 7502 }); 7503 }); 7504 return groupStartResult; 7505} 7506 7507function createInstance(options) { 7508 var _ixData$events$eventI; // $FlowFixMe 7509 7510 7511 var store = options.store, 7512 computedStyle = options.computedStyle, 7513 rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); 7514 var element = rest.element, 7515 actionItem = rest.actionItem, 7516 immediate = rest.immediate, 7517 pluginInstance = rest.pluginInstance, 7518 continuous = rest.continuous, 7519 restingValue = rest.restingValue, 7520 eventId = rest.eventId; 7521 var autoStart = !continuous; 7522 var instanceId = getInstanceId(); 7523 7524 var _store$getState14 = store.getState(), 7525 ixElements = _store$getState14.ixElements, 7526 ixSession = _store$getState14.ixSession, 7527 ixData = _store$getState14.ixData; 7528 7529 var elementId = getElementId(ixElements, element); 7530 7531 var _ref20 = ixElements[elementId] || {}, 7532 refState = _ref20.refState; 7533 7534 var refType = elementApi.getRefType(element); 7535 var skipMotion = ixSession.reducedMotion && _constants.ReducedMotionTypes[actionItem.actionTypeId]; 7536 var skipToValue; 7537 7538 if (skipMotion && continuous) { 7539 switch ((_ixData$events$eventI = ixData.events[eventId]) === null || _ixData$events$eventI === void 0 ? void 0 : _ixData$events$eventI.eventTypeId) { 7540 case _constants.EventTypeConsts.MOUSE_MOVE: 7541 case _constants.EventTypeConsts.MOUSE_MOVE_IN_VIEWPORT: 7542 skipToValue = restingValue; 7543 break; 7544 7545 default: 7546 skipToValue = 0.5; 7547 break; 7548 } 7549 } 7550 7551 var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe 7552 pluginInstance); 7553 store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ 7554 instanceId: instanceId, 7555 elementId: elementId, 7556 origin: origin, 7557 refType: refType, 7558 skipMotion: skipMotion, 7559 skipToValue: skipToValue 7560 }, rest))); 7561 dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); 7562 7563 if (immediate) { 7564 renderImmediateInstance(store, instanceId); 7565 return; 7566 } 7567 7568 observeStore({ 7569 store: store, 7570 select: function select(_ref21) {
7571 var ixInstances = _ref21.ixInstances; 7572 return ixInstances[instanceId]; 7573 }, 7574 onChange: handleInstanceChange 7575 }); 7576 7577 if (autoStart) { 7578 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); 7579 } 7580} 7581 7582function removeInstance(instance, store) { 7583 dispatchCustomEvent(document.body, 'ix2-animation-stopping', { 7584 instanceId: instance.id, 7585 state: store.getState() 7586 }); 7587 var elementId = instance.elementId, 7588 actionItem = instance.actionItem; 7589 7590 var _store$getState15 = store.getState(), 7591 ixElements = _store$getState15.ixElements; 7592 7593 var _ref22 = ixElements[elementId] || {}, 7594 ref = _ref22.ref, 7595 refType = _ref22.refType; 7596 7597 if (refType === HTML_ELEMENT) { 7598 cleanupHTMLElement(ref, actionItem, elementApi); 7599 } 7600 7601 store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); 7602} 7603 7604function dispatchCustomEvent(element, eventName, detail) { 7605 var event = document.createEvent('CustomEvent'); 7606 event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe 7607 7608 element.dispatchEvent(event); 7609} 7610 7611function renderImmediateInstance(store, instanceId) { 7612 var _store$getState16 = store.getState(), 7613 ixParameters = _store$getState16.ixParameters; 7614 7615 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); 7616 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); 7617 7618 var _store$getState17 = store.getState(), 7619 ixInstances = _store$getState17.ixInstances; 7620 7621 handleInstanceChange(ixInstances[instanceId], store); 7622} 7623 7624function handleInstanceChange(instance, store) { 7625 var active = instance.active, 7626 continuous = instance.continuous, 7627 complete = instance.complete, 7628 elementId = instance.elementId, 7629 actionItem = instance.actionItem, 7630 actionTypeId = instance.actionTypeId, 7631 renderType = instance.renderType, 7632 current = instance.current, 7633 groupIndex = instance.groupIndex, 7634 eventId = instance.eventId, 7635 eventTarget = instance.eventTarget, 7636 eventStateKey = instance.eventStateKey, 7637 actionListId = instance.actionListId, 7638 isCarrier = instance.isCarrier, 7639 styleProp = instance.styleProp, 7640 verbose = instance.verbose, 7641 pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config 7642 7643 var _store$getState18 = store.getState(), 7644 ixData = _store$getState18.ixData, 7645 ixSession = _store$getState18.ixSession; 7646 7647 var events = ixData.events; 7648 var event = events[eventId] || {}; 7649 var _event$mediaQueries4 = event.mediaQueries, 7650 mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; 7651 7652 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7653 return; 7654 } 7655 7656 if (continuous || active || complete) { 7657 if (current || renderType === RENDER_GENERAL && complete) { 7658 // Render current values to ref state and grab latest 7659 store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); 7660 7661 var _store$getState19 = store.getState(), 7662 ixElements = _store$getState19.ixElements; 7663 7664 var _ref23 = ixElements[elementId] || {}, 7665 ref = _ref23.ref, 7666 refType = _ref23.refType, 7667 refState = _ref23.refState; 7668 7669 var actionState = refState && refState[actionTypeId]; // Choose render based on ref type 7670 7671 switch (refType) { 7672 case HTML_ELEMENT: 7673 { 7674 renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); 7675 break; 7676 } 7677 } 7678 } 7679 7680 if (complete) { 7681 if (isCarrier) { 7682 var started = startActionGroup({ 7683 store: store, 7684 eventId: eventId, 7685 eventTarget: eventTarget, 7686 eventStateKey: eventStateKey, 7687 actionListId: actionListId, 7688 groupIndex: groupIndex + 1, 7689 verbose: verbose 7690 }); 7691 7692 if (verbose && !started) { 7693 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7694 actionListId: actionListId, 7695 isPlaying: false 7696 })); 7697 } 7698 } 7699 7700 removeInstance(instance, store); 7701 } 7702 } 7703} 7704 7705/***/ }), 7706/* 124 */ 7707/***/ (function(module, exports, __webpack_require__) { 7708 7709var defineProperty = __webpack_require__(125); 7710 7711/** 7712 * The base implementation of `assignValue` and `assignMergeValue` without 7713 * value checks. 7714 * 7715 * @private 7716 * @param {Object} object The object to modify. 7717 * @param {string} key The key of the property to assign. 7718 * @param {*} value The value to assign. 7719 */ 7720function baseAssignValue(object, key, value) { 7721 if (key == '__proto__' && defineProperty) { 7722 defineProperty(object, key, { 7723 'configurable': true, 7724 'enumerable': true, 7725 'value': value, 7726 'writable': true 7727 }); 7728 } else { 7729 object[key] = value; 7730 } 7731} 7732 7733module.exports = baseAssignValue; 7734 7735 7736/***/ }), 7737/* 125 */ 7738/***/ (function(module, exports, __webpack_require__) { 7739 7740var getNative = __webpack_require__(11); 7741 7742var defineProperty = (function() { 7743 try { 7744 var func = getNative(Object, 'defineProperty'); 7745 func({}, '', {}); 7746 return func; 7747 } catch (e) {} 7748}()); 7749 7750module.exports = defineProperty; 7751 7752 7753/***/ }), 7754/* 126 */ 7755/***/ (function(module, exports, __webpack_require__) { 7756 7757var isObject = __webpack_require__(8); 7758 7759/** Built-in value references. */ 7760var objectCreate = Object.create; 7761 7762/** 7763 * The base implementation of `_.create` without support for assigning 7764 * properties to the created object. 7765 * 7766 * @private 7767 * @param {Object} proto The object to inherit from. 7768 * @returns {Object} Returns the new object. 7769 */ 7770var baseCreate = (function() { 7771 function object() {} 7772 return function(proto) { 7773 if (!isObject(proto)) { 7774 return {}; 7775 } 7776 if (objectCreate) { 7777 return objectCreate(proto); 7778 } 7779 object.prototype = proto; 7780 var result = new object; 7781 object.prototype = undefined; 7782 return result; 7783 }; 7784}()); 7785 7786module.exports = baseCreate; 7787 7788 7789/***/ }), 7790/* 127 */ 7791/***/ (function(module, exports, __webpack_require__) { 7792 7793var metaMap = __webpack_require__(325), 7794 noop = __webpack_require__(326); 7795 7796/** 7797 * Gets metadata for `func`. 7798 * 7799 * @private 7800 * @param {Function} func The function to query. 7801 * @returns {*} Returns the metadata for `func`. 7802 */ 7803var getData = !metaMap ? noop : function(func) { 7804 return metaMap.get(func); 7805}; 7806 7807module.exports = getData; 7808 7809 7810/***/ }), 7811/* 128 */ 7812/***/ (function(module, exports, __webpack_require__) { 7813 7814var realNames = __webpack_require__(327); 7815 7816/** Used for built-in method references. */ 7817var objectProto = Object.prototype; 7818 7819/** Used to check objects for own properties. */ 7820var hasOwnProperty = objectProto.hasOwnProperty; 7821 7822/** 7823 * Gets the name of `func`. 7824 * 7825 * @private 7826 * @param {Function} func The function to query. 7827 * @returns {string} Returns the function name. 7828 */ 7829function getFuncName(func) { 7830 var result = (func.name + ''), 7831 array = realNames[result], 7832 length = hasOwnProperty.call(realNames, result) ? array.length : 0; 7833 7834 while (length--) { 7835 var data = array[length], 7836 otherFunc = data.func; 7837 if (otherFunc == null || otherFunc == func) { 7838 return data.name; 7839 } 7840 } 7841 return result; 7842} 7843 7844module.exports = getFuncName; 7845 7846 7847/***/ }), 7848/* 129 */ 7849/***/ (function(module, exports, __webpack_require__) { 7850 7851__webpack_require__(130); 7852__webpack_require__(131); 7853__webpack_require__(132); 7854__webpack_require__(134); 7855__webpack_require__(135); 7856__webpack_require__(136); 7857__webpack_require__(137); 7858__webpack_require__(39); 7859__webpack_require__(139); 7860__webpack_require__(334); 7861__webpack_require__(335); 7862__webpack_require__(336); 7863__webpack_require__(337); 7864__webpack_require__(342); 7865module.exports = __webpack_require__(343); 7866 7867 7868/***/ }), 7869/* 130 */ 7870/***/ (function(module, exports, __webpack_require__) { 7871 7872"use strict"; 7873 // @wf-will-never-add-flow-to-this-file 7874 7875/* 7876 global 7877 window, document, Event 7878*/ 7879 7880/*---------------------------------------- 7881 * objectFitPolyfill 2.3.0 7882 * 7883 * Basic, no-frills version - 7884 * Defaults to object-fit: cover and object-position: 50% 50% 7885 * 7886 * Made by Constance Chen 7887 * Released under the MIT license 7888 * 7889 * https://github.com/constancecchen/object-fit-polyfill 7890 *--------------------------------------*/ 7891 7892var _interopRequireDefault = __webpack_require__(0); 7893 7894var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 7895 7896(function () { 7897 // if the page is being rendered on the server, don't continue 7898 if (typeof window === 'undefined') return; // Workaround for Edge 16+, which only implemented object-fit for <img> tags 7899 // TODO: Keep an eye on Edge to determine which version has full final support 7900 7901 var edgeVersion = window.navigator.userAgent.match(/Edge\/(\d{2})\./);
7902 var edgePartialSupport = edgeVersion ? parseInt(edgeVersion[1], 10) >= 16 : false; // If the browser does support object-fit, we don't need to continue 7903 7904 var hasSupport = 'objectFit' in document.documentElement.style !== false; 7905 7906 if (hasSupport && !edgePartialSupport) { 7907 window.objectFitPolyfill = function () { 7908 return false; 7909 }; 7910 7911 return; 7912 } 7913 /** 7914 * Check the container's parent element to make sure it will 7915 * correctly handle and clip absolutely positioned children 7916 * 7917 * @param {node} $container - parent element 7918 */ 7919 7920 7921 var checkParentContainer = function checkParentContainer($container) { 7922 var styles = window.getComputedStyle($container, null); 7923 var position = styles.getPropertyValue('position'); 7924 var overflow = styles.getPropertyValue('overflow'); 7925 var display = styles.getPropertyValue('display'); 7926 7927 if (!position || position === 'static') { 7928 $container.style.position = 'relative'; 7929 } 7930 7931 if (overflow !== 'hidden') { 7932 $container.style.overflow = 'hidden'; 7933 } // Guesstimating that people want the parent to act like full width/height wrapper here. 7934 // Mostly attempts to target <picture> elements, which default to inline. 7935 7936 7937 if (!display || display === 'inline') { 7938 $container.style.display = 'block'; 7939 } 7940 7941 if ($container.clientHeight === 0) { 7942 $container.style.height = '100%'; 7943 } // Add a CSS class hook, in case people need to override styles for any reason. 7944 7945 7946 if ($container.className.indexOf('object-fit-polyfill') === -1) { 7947 $container.className += ' object-fit-polyfill'; 7948 } 7949 }; 7950 /** 7951 * Check for pre-set max-width/height, min-width/height, 7952 * positioning, or margins, which can mess up image calculations 7953 * 7954 * @param {node} $media - img/video element 7955 */ 7956 7957 7958 var checkMediaProperties = function checkMediaProperties($media) { 7959 var styles = window.getComputedStyle($media, null); 7960 var constraints = { 7961 'max-width': 'none', 7962 'max-height': 'none', 7963 'min-width': '0px', 7964 'min-height': '0px', 7965 top: 'auto', 7966 right: 'auto', 7967 bottom: 'auto', 7968 left: 'auto', 7969 'margin-top': '0px', 7970 'margin-right': '0px', 7971 'margin-bottom': '0px', 7972 'margin-left': '0px' 7973 }; 7974 7975 for (var property in constraints) { 7976 var constraint = styles.getPropertyValue(property); 7977 7978 if (constraint !== constraints[property]) { 7979 $media.style[property] = constraints[property]; 7980 } 7981 } 7982 }; 7983 /** 7984 * Calculate & set object-fit 7985 * 7986 * @param {node} $media - img/video/picture element 7987 */ 7988 7989 7990 var objectFit = function objectFit($media) { 7991 // If necessary, make the parent container work with absolutely positioned elements 7992 var $container = $media.parentNode; 7993 checkParentContainer($container); // Check for any pre-set CSS which could mess up image calculations 7994 7995 checkMediaProperties($media); // Mathematically figure out which side needs covering, and add CSS positioning & centering 7996 7997 $media.style.position = 'absolute'; 7998 $media.style.height = '100%'; 7999 $media.style.width = 'auto'; 8000 8001 if ($media.clientWidth > $container.clientWidth) { 8002 $media.style.top = '0'; 8003 $media.style.marginTop = '0'; 8004 $media.style.left = '50%'; 8005 $media.style.marginLeft = $media.clientWidth / -2 + 'px'; 8006 } else { 8007 $media.style.width = '100%'; 8008 $media.style.height = 'auto'; 8009 $media.style.left = '0'; 8010 $media.style.marginLeft = '0'; 8011 $media.style.top = '50%'; 8012 $media.style.marginTop = $media.clientHeight / -2 + 'px'; 8013 } 8014 }; 8015 /** 8016 * Initialize plugin 8017 * 8018 * @param {node} media - Optional specific DOM node(s) to be polyfilled 8019 */ 8020 8021 8022 var objectFitPolyfill = function objectFitPolyfill(media) { 8023 if (typeof media === 'undefined' || media instanceof Event) { 8024 // If left blank, or a default event, all media on the page will be polyfilled. 8025 media = document.querySelectorAll('[data-object-fit]'); 8026 } else if (media && media.nodeName) { 8027 // If it's a single node, wrap it in an array so it works. 8028 media = [media]; 8029 } else if ((0, _typeof2["default"])(media) === 'object' && media.length && media[0].nodeName) { 8030 // If it's an array of DOM nodes (e.g. a jQuery selector), it's fine as-is. 8031 // eslint-disable-next-line no-self-assign 8032 media = media; 8033 } else { 8034 // Otherwise, if it's invalid or an incorrect type, return false to let people know. 8035 return false;
8036 } 8037 8038 for (var i = 0; i < media.length; i++) { 8039 if (!media[i].nodeName) continue; 8040 var mediaType = media[i].nodeName.toLowerCase(); 8041 8042 if (mediaType === 'img') { 8043 if (edgePartialSupport) continue; // Edge supports object-fit for images (but nothing else), so no need to polyfill 8044 8045 if (media[i].complete) { 8046 objectFit(media[i]); 8047 } else { 8048 media[i].addEventListener('load', function () { 8049 objectFit(this); 8050 }); 8051 } 8052 } else if (mediaType === 'video') { 8053 if (media[i].readyState > 0) { 8054 objectFit(media[i]); 8055 } else { 8056 media[i].addEventListener('loadedmetadata', function () { 8057 objectFit(this); 8058 }); 8059 } 8060 } else { 8061 objectFit(media[i]); 8062 } 8063 } 8064 8065 return true; 8066 }; 8067 8068 if (document.readyState === 'loading') { 8069 // Loading hasn't finished yet 8070 document.addEventListener('DOMContentLoaded', objectFitPolyfill); 8071 } else { 8072 // `DOMContentLoaded` has already fired 8073 objectFitPolyfill(); 8074 } 8075 8076 window.addEventListener('resize', objectFitPolyfill); 8077 window.objectFitPolyfill = objectFitPolyfill; 8078})(); 8079 8080/***/ }), 8081/* 131 */ 8082/***/ (function(module, exports, __webpack_require__) { 8083 8084"use strict"; 8085 // @wf-will-never-add-flow-to-this-file 8086 8087/* 8088 global 8089 window, document, $, Webflow 8090*/ 8091 8092(function () { 8093 // if the page is being rendered on the server, don't continue 8094 if (typeof window === 'undefined') return; 8095 8096 function setAllBackgroundVideoStates(shouldPlay) { 8097 if (Webflow.env('design')) { 8098 return; 8099 } // 1. set every video 8100 8101 8102 $('video').each(function () { 8103 shouldPlay && $(this).prop('autoplay') ? this.play() : this.pause(); 8104 }); // 2. set every video controller button 8105 8106 $('.w-background-video--control').each(function () { 8107 if (shouldPlay) { 8108 showPauseButton($(this)); 8109 } else { 8110 showPlayButton($(this)); 8111 } 8112 }); 8113 } 8114 8115 function showPlayButton($btn) { 8116 $btn.find('> span').each(function (i) { 8117 $(this).prop('hidden', function () { 8118 return i === 0; 8119 }); 8120 }); 8121 } 8122
8123 function showPauseButton($btn) { 8124 $btn.find('> span').each(function (i) { 8125 $(this).prop('hidden', function () { 8126 return i === 1; 8127 }); 8128 }); 8129 } 8130 8131 $(document).ready(function () { 8132 var watcher = window.matchMedia('(prefers-reduced-motion: reduce)'); // respond to changing preferences 8133 8134 watcher.addEventListener('change', function (e) { 8135 setAllBackgroundVideoStates(!e.matches); 8136 }); 8137 8138 if (watcher.matches) { 8139 // user currently prefers reduced motion, pause all immediately 8140 setAllBackgroundVideoStates(false); 8141 } // show play button for videos without autoplay 8142 8143 8144 $('video:not([autoplay])').each(function () { 8145 $(this).parent().find('.w-background-video--control').each(function () { 8146 showPlayButton($(this)); 8147 }); 8148 }); 8149 $(document).on('click', '.w-background-video--control', function (e) { 8150 if (Webflow.env('design')) return; 8151 var btn = $(e.currentTarget); 8152 var video = $("video#".concat(btn.attr('aria-controls'))).get(0); 8153 if (!video) return; 8154 8155 if (video.paused) { 8156 var play = video.play(); 8157 showPauseButton(btn); // IE does not return a promise from .play() 8158 8159 if (play && typeof play["catch"] === 'function') { 8160 play["catch"](function () { 8161 // something went wrong and it's not playing 8162 showPlayButton(btn); 8163 }); 8164 } 8165 } else { 8166 video.pause(); 8167 showPlayButton(btn); 8168 } 8169 }); 8170 }); 8171})(); 8172 8173/***/ }), 8174/* 132 */ 8175/***/ (function(module, exports, __webpack_require__) { 8176 8177"use strict"; 8178 // @wf-will-never-add-flow-to-this-file 8179 8180/* globals document, window, navigator */ 8181 8182/* eslint-disable no-var */ 8183 8184/** 8185 * Webflow: Brand pages on the subdomain 8186 */ 8187 8188var Webflow = __webpack_require__(3); 8189 8190Webflow.define('brand', module.exports = function ($) { 8191 var api = {}; 8192 var doc = document; 8193 var $html = $('html'); 8194 var $body = $('body'); 8195 var namespace = '.w-webflow-badge'; 8196 var location = window.location; 8197 var isPhantom = /PhantomJS/i.test(navigator.userAgent); 8198 var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; 8199 var brandElement; // ----------------------------------- 8200 // Module methods 8201 8202 api.ready = function () { 8203 var shouldBrand = $html.attr('data-wf-status'); 8204 var publishedDomain = $html.attr('data-wf-domain') || ''; 8205 8206 if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { 8207 shouldBrand = true; 8208 } 8209 8210 if (shouldBrand && !isPhantom) { 8211 brandElement = brandElement || createBadge(); 8212 ensureBrand(); 8213 setTimeout(ensureBrand, 500); 8214 $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); 8215 } 8216 }; 8217 8218 function onFullScreenChange() { 8219 var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement); 8220 $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); 8221 } 8222 8223 function createBadge() { 8224 var $brand = $('<a class="w-webflow-badge"></a>').attr('href', 'https://webflow.com?utm_campaign=brandjs'); 8225 var $logoArt = $('<img>').attr('src', 'img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ 8226 marginRight: '8px', 8227 width: '16px' 8228 }); 8229 var $logoText = $('<img>').attr('src', 'img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); 8230 $brand.append($logoArt, $logoText); 8231 return $brand[0]; 8232 } 8233 8234 function ensureBrand() { 8235 var found = $body.children(namespace); 8236 var match = found.length && found.get(0) === brandElement; 8237 var inEditor = Webflow.env('editor'); 8238 8239 if (match) { 8240 // Remove brand when Editor is active 8241 if (inEditor) { 8242 found.remove(); 8243 } // Exit early, brand is in place 8244 8245 8246 return; 8247 } // Remove any invalid brand elements 8248 8249 8250 if (found.length) { 8251 found.remove(); 8252 } // Append the brand (unless Editor is active) 8253 8254 8255 if (!inEditor) { 8256 $body.append(brandElement); 8257 } 8258 } // Export module 8259 8260 8261 return api; 8262}); 8263 8264/***/ }), 8265/* 133 */ 8266/***/ (function(module, exports, __webpack_require__) { 8267 8268"use strict"; 8269 // @wf-will-never-add-flow-to-this-file 8270// Include tram for frame-throttling 8271 8272/* globals window */ 8273 8274/* eslint-disable no-var */ 8275 8276var $ = window.$; 8277var tram = __webpack_require__(69) && $.tram; 8278/*! 8279 * Webflow._ (aka) Underscore.js 1.6.0 (custom build) 8280 * _.each 8281 * _.map 8282 * _.find 8283 * _.filter 8284 * _.any 8285 * _.contains 8286 * _.delay 8287 * _.defer 8288 * _.throttle (webflow) 8289 * _.debounce 8290 * _.keys 8291 * _.has 8292 * _.now 8293 * 8294 * http://underscorejs.org
8295 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 8296 * Underscore may be freely distributed under the MIT license. 8297 * @license MIT 8298 */ 8299 8300module.exports = function () { 8301 var _ = {}; // Current version. 8302 8303 _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. 8304 8305 var breaker = {}; // Save bytes in the minified (but not gzipped) version: 8306 8307 /* eslint-disable one-var */ 8308 8309 var ArrayProto = Array.prototype, 8310 ObjProto = Object.prototype, 8311 FuncProto = Function.prototype; 8312 /* eslint-enable one-var */ 8313 // Create quick reference variables for speed access to core prototypes. 8314 8315 /* eslint-disable one-var, no-unused-vars */ 8316 8317 var push = ArrayProto.push, 8318 slice = ArrayProto.slice, 8319 concat = ArrayProto.concat, 8320 toString = ObjProto.toString, 8321 hasOwnProperty = ObjProto.hasOwnProperty; 8322 /* eslint-enable one-var, no-unused-vars */ 8323 // All **ECMAScript 5** native function implementations that we hope to use 8324 // are declared here. 8325 8326 /* eslint-disable one-var, no-unused-vars */ 8327 8328 var nativeForEach = ArrayProto.forEach, 8329 nativeMap = ArrayProto.map, 8330 nativeReduce = ArrayProto.reduce, 8331 nativeReduceRight = ArrayProto.reduceRight, 8332 nativeFilter = ArrayProto.filter, 8333 nativeEvery = ArrayProto.every, 8334 nativeSome = ArrayProto.some, 8335 nativeIndexOf = ArrayProto.indexOf, 8336 nativeLastIndexOf = ArrayProto.lastIndexOf, 8337 nativeIsArray = Array.isArray, 8338 nativeKeys = Object.keys, 8339 nativeBind = FuncProto.bind; 8340 /* eslint-enable one-var, no-unused-vars */ 8341 // Collection Functions 8342 // -------------------- 8343 // The cornerstone, an `each` implementation, aka `forEach`. 8344 // Handles objects with the built-in `forEach`, arrays, and raw objects. 8345 // Delegates to **ECMAScript 5**'s native `forEach` if available. 8346 8347 var each = _.each = _.forEach = function (obj, iterator, context) { 8348 /* jshint shadow:true */ 8349 if (obj == null) return obj; 8350 8351 if (nativeForEach && obj.forEach === nativeForEach) { 8352 obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion 8353 } else if (obj.length === +obj.length) { 8354 for (var i = 0, length = obj.length; i < length; i++) { 8355 if (iterator.call(context, obj[i], i, obj) === breaker) return; 8356 } 8357 } else { 8358 var keys = _.keys(obj); // eslint-disable-next-line no-redeclare 8359 8360 8361 for (var i = 0, length = keys.length; i < length; i++) { 8362 if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 8363 } 8364 } 8365 8366 return obj; 8367 }; // Return the results of applying the iterator to each element. 8368 // Delegates to **ECMAScript 5**'s native `map` if available. 8369 8370 8371 _.map = _.collect = function (obj, iterator, context) { 8372 var results = []; 8373 if (obj == null) return results; 8374 if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); 8375 each(obj, function (value, index, list) { 8376 results.push(iterator.call(context, value, index, list)); 8377 }); 8378 return results; 8379 }; // Return the first value which passes a truth test. Aliased as `detect`. 8380 8381 8382 _.find = _.detect = function (obj, predicate, context) { 8383 var result; 8384 any(obj, function (value, index, list) { 8385 if (predicate.call(context, value, index, list)) { 8386 result = value; 8387 return true; 8388 } 8389 }); 8390 return result; 8391 }; // Return all the elements that pass a truth test. 8392 // Delegates to **ECMAScript 5**'s native `filter` if available. 8393 // Aliased as `select`. 8394 8395 8396 _.filter = _.select = function (obj, predicate, context) { 8397 var results = []; 8398 if (obj == null) return results; 8399 if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); 8400 each(obj, function (value, index, list) { 8401 if (predicate.call(context, value, index, list)) results.push(value); 8402 }); 8403 return results; 8404 }; // Determine if at least one element in the object matches a truth test. 8405 // Delegates to **ECMAScript 5**'s native `some` if available. 8406 // Aliased as `any`. 8407 8408 8409 var any = _.some = _.any = function (obj, predicate, context) { 8410 predicate || (predicate = _.identity); 8411 var result = false;
8412 if (obj == null) return result; 8413 if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); 8414 each(obj, function (value, index, list) { 8415 if (result || (result = predicate.call(context, value, index, list))) return breaker; 8416 }); 8417 return !!result; // eslint-disable-line no-implicit-coercion 8418 }; // Determine if the array or object contains a given value (using `===`). 8419 // Aliased as `include`. 8420 8421 8422 _.contains = _.include = function (obj, target) { 8423 if (obj == null) return false; 8424 if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq 8425 return obj.indexOf(target) != -1; 8426 return any(obj, function (value) { 8427 return value === target; 8428 }); 8429 }; // Function (ahem) Functions 8430 // -------------------- 8431 // Delays a function for the given number of milliseconds, and then calls 8432 // it with the arguments supplied. 8433 8434 8435 _.delay = function (func, wait) { 8436 var args = slice.call(arguments, 2); 8437 return setTimeout(function () { 8438 return func.apply(null, args); 8439 }, wait); 8440 }; // Defers a function, scheduling it to run after the current call stack has 8441 // cleared. 8442 8443 8444 _.defer = function (func) { 8445 return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); 8446 }; // Returns a function, that, when invoked, will only be triggered once every 8447 // browser animation frame - using tram's requestAnimationFrame polyfill. 8448 8449 8450 _.throttle = function (func) { 8451 // eslint-disable-next-line one-var 8452 var wait, args, context; 8453 return function () { 8454 if (wait) return; 8455 wait = true; 8456 args = arguments; 8457 context = this; 8458 tram.frame(function () { 8459 wait = false; 8460 func.apply(context, args); 8461 }); 8462 }; 8463 }; // Returns a function, that, as long as it continues to be invoked, will not 8464 // be triggered. The function will be called after it stops being called for 8465 // N milliseconds. If `immediate` is passed, trigger the function on the 8466 // leading edge, instead of the trailing. 8467 8468 8469 _.debounce = function (func, wait, immediate) { 8470 // eslint-disable-next-line one-var 8471 var timeout, args, context, timestamp, result; 8472 8473 var later = function later() { 8474 var last = _.now() - timestamp; 8475 8476 if (last < wait) { 8477 timeout = setTimeout(later, wait - last); 8478 } else { 8479 timeout = null; 8480 8481 if (!immediate) { 8482 result = func.apply(context, args); 8483 context = args = null; 8484 } 8485 } 8486 }; 8487 8488 return function () { 8489 context = this; 8490 args = arguments; 8491 timestamp = _.now(); 8492 var callNow = immediate && !timeout; 8493 8494 if (!timeout) { 8495 timeout = setTimeout(later, wait); 8496 } 8497 8498 if (callNow) { 8499 result = func.apply(context, args); 8500 context = args = null; 8501 } 8502 8503 return result; 8504 }; 8505 }; // Object Functions 8506 // ---------------- 8507 // Fill in a given object with default properties. 8508 8509 8510 _.defaults = function (obj) { 8511 if (!_.isObject(obj)) return obj; 8512 8513 for (var i = 1, length = arguments.length; i < length; i++) { 8514 var source = arguments[i]; 8515 8516 for (var prop in source) { 8517 // eslint-disable-next-line no-void 8518 if (obj[prop] === void 0) obj[prop] = source[prop]; 8519 } 8520 } 8521 8522 return obj; 8523 }; // Retrieve the names of an object's properties. 8524 // Delegates to **ECMAScript 5**'s native `Object.keys` 8525 8526 8527 _.keys = function (obj) { 8528 if (!_.isObject(obj)) return []; 8529 if (nativeKeys) return nativeKeys(obj); 8530 var keys = []; 8531 8532 for (var key in obj) { 8533 if (_.has(obj, key)) keys.push(key); 8534 } 8535 8536 return keys; 8537 }; // Shortcut function for checking if an object has a given property directly 8538 // on itself (in other words, not on a prototype). 8539 8540 8541 _.has = function (obj, key) { 8542 return hasOwnProperty.call(obj, key); 8543 }; // Is a given variable an object? 8544 8545 8546 _.isObject = function (obj) { 8547 return obj === Object(obj); 8548 }; // Utility Functions 8549 // ----------------- 8550 // A (possibly faster) way to get the current timestamp as an integer. 8551 8552 8553 _.now = Date.now || function () { 8554 return new Date().getTime(); 8555 }; // By default, Underscore uses ERB-style template delimiters, change the 8556 // following template settings to use alternative delimiters. 8557 8558 8559 _.templateSettings = { 8560 evaluate: /<%([\s\S]+?)%>/g, 8561 interpolate: /<%=([\s\S]+?)%>/g, 8562 escape: /<%-([\s\S]+?)%>/g 8563 }; // When customizing `templateSettings`, if you don't want to define an 8564 // interpolation, evaluation or escaping regex, we need one that is 8565 // guaranteed not to match. 8566 8567 var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a 8568 // string literal. 8569 8570 var escapes = { 8571 "'": "'", 8572 '\\': '\\', 8573 '\r': 'r', 8574 '\n': 'n', 8575 "\u2028": 'u2028', 8576 "\u2029": 'u2029' 8577 }; 8578 var escaper = /\\|'|\r|\n|\u2028|\u2029/g; 8579 8580 var escapeChar = function escapeChar(match) { 8581 return '\\' + escapes[match]; 8582 }; // JavaScript micro-templating, similar to John Resig's implementation. 8583 // Underscore templating handles arbitrary delimiters, preserves whitespace, 8584 // and correctly escapes quotes within interpolated code. 8585 // NB: `oldSettings` only exists for backwards compatibility. 8586 8587 8588 _.template = function (text, settings, oldSettings) { 8589 if (!settings && oldSettings) settings = oldSettings; 8590 settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. 8591 8592 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. 8593 8594 var index = 0; 8595 var source = "__p+='"; 8596 text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { 8597 source += text.slice(index, offset).replace(escaper, escapeChar); 8598 index = offset + match.length; 8599 8600 if (escape) { 8601 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 8602 } else if (interpolate) { 8603 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
8604 } else if (evaluate) { 8605 source += "';\n" + evaluate + "\n__p+='"; 8606 } // Adobe VMs need the match returned to produce the correct offest. 8607 8608 8609 return match; 8610 }); 8611 source += "';\n"; // If a variable is not specified, place data values in local scope. 8612 8613 if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; 8614 source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; 8615 8616 try { 8617 // eslint-disable-next-line no-new-func 8618 var render = new Function(settings.variable || 'obj', '_', source); 8619 } catch (e) { 8620 e.source = source; 8621 throw e; 8622 } 8623 8624 var template = function template(data) { 8625 return render.call(this, data, _); 8626 }; // Provide the compiled source as a convenience for precompilation. 8627 8628 8629 var argument = settings.variable || 'obj'; 8630 template.source = 'function(' + argument + '){\n' + source + '}'; 8631 return template; 8632 }; // Export underscore 8633 8634 8635 return _; 8636}(); 8637/* eslint-enable */ 8638 8639/***/ }), 8640/* 134 */ 8641/***/ (function(module, exports, __webpack_require__) { 8642 8643"use strict"; 8644 // @wf-will-never-add-flow-to-this-file 8645 8646/* globals document, window, localStorage, WEBFLOW_API_HOST, WEBFLOW_DEFAULT_HOST */ 8647 8648/* eslint-disable no-var */ 8649 8650/** 8651 * Webflow: Editor loader 8652 */ 8653 8654var Webflow = __webpack_require__(3); 8655 8656Webflow.define('edit', module.exports = function ($, _, options) { 8657 options = options || {}; // Exit early in test env or when inside an iframe 8658 8659 if (Webflow.env('test') || Webflow.env('frame')) { 8660 // Allow test fixtures to continue 8661 if (!options.fixture && !inCypress()) { 8662 return { 8663 exit: 1 8664 }; 8665 } 8666 } 8667 8668 var api = {}; 8669 var $win = $(window); 8670 var $html = $(document.documentElement); 8671 var location = document.location; 8672 var hashchange = 'hashchange'; 8673 var loaded; 8674 var loadEditor = options.load || load; 8675 var hasLocalStorage = false; 8676 8677 try { 8678 // Check localStorage for editor data 8679 hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem('WebflowEditor'); 8680 } catch (e) {// SecurityError: browser storage has been disabled 8681 } 8682 8683 if (hasLocalStorage) { 8684 loadEditor(); 8685 } else if (location.search) { 8686 // Check url query for `edit` parameter or any url ending in `?edit` 8687 if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { 8688 loadEditor(); 8689 } 8690 } else { 8691 // Check hash fragment to support `#hash?edit` 8692 $win.on(hashchange, checkHash).triggerHandler(hashchange); 8693 } 8694 8695 function checkHash() { 8696 if (loaded) { 8697 return; 8698 } // Load editor when hash contains `?edit` 8699 8700 8701 if (/\?edit/.test(location.hash)) { 8702 loadEditor(); 8703 } 8704 } 8705 8706 function load() { 8707 loaded = true; // Predefine global immediately to benefit Webflow.env 8708 8709 window.WebflowEditor = true; 8710 $win.off(hashchange, checkHash); 8711 checkThirdPartyCookieSupport(function (thirdPartyCookiesSupported) { 8712 $.ajax({ 8713 url: cleanSlashes("https://editor-api.webflow.com" + '/api/editor/view'), 8714 data: { 8715 siteId: $html.attr('data-wf-site') 8716 }, 8717 xhrFields: { 8718 withCredentials: true 8719 }, 8720 dataType: 'json', 8721 crossDomain: true, 8722 success: success(thirdPartyCookiesSupported) 8723 }); 8724 }); 8725 } 8726 8727 function success(thirdPartyCookiesSupported) { 8728 return function (data) { 8729 if (!data) { 8730 console.error('Could not load editor data'); 8731 return; 8732 } 8733 8734 data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; 8735 getScript(prefix(data.bugReporterScriptPath), function () { 8736 getScript(prefix(data.scriptPath), function () { 8737 window.WebflowEditor(data); 8738 }); 8739 }); 8740 }; 8741 } 8742 8743 function getScript(url, done) { 8744 $.ajax({ 8745 type: 'GET', 8746 url: url, 8747 dataType: 'script', 8748 cache: true 8749 }).then(done, error); 8750 } 8751 8752 function error(jqXHR, textStatus, errorThrown) { 8753 console.error('Could not load editor script: ' + textStatus); 8754 throw errorThrown; 8755 } 8756 8757 function prefix(url) { 8758 return url.indexOf('//') >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); 8759 } 8760 8761 function cleanSlashes(url) { 8762 return url.replace(/([^:])\/\//g, '$1/'); 8763 } 8764 8765 function checkThirdPartyCookieSupport(callback) { 8766 var iframe = window.document.createElement('iframe'); 8767 iframe.src = "https://webflow.com" + '/site/third-party-cookie-check.html'; 8768 iframe.style.display = 'none'; 8769 iframe.sandbox = 'allow-scripts allow-same-origin'; 8770 8771 var handleMessage = function handleMessage(event) { 8772 if (event.data === 'WF_third_party_cookies_unsupported') { 8773 cleanUpCookieCheckerIframe(iframe, handleMessage); 8774 callback(false); 8775 } else if (event.data === 'WF_third_party_cookies_supported') { 8776 cleanUpCookieCheckerIframe(iframe, handleMessage); 8777 callback(true); 8778 } 8779 }; 8780 8781 iframe.onerror = function () { 8782 cleanUpCookieCheckerIframe(iframe, handleMessage); 8783 callback(false); 8784 }; 8785 8786 window.addEventListener('message', handleMessage, false); 8787 window.document.body.appendChild(iframe); 8788 } 8789 8790 function cleanUpCookieCheckerIframe(iframe, listener) { 8791 window.removeEventListener('message', listener, false); 8792 iframe.remove(); 8793 } // Export module 8794 8795 8796 return api; 8797}); 8798 8799function inCypress() { 8800 try { 8801 return window.top.__Cypress__; 8802 } catch (e) { 8803 return false;
vendor: 4,984 bytes, lines 8804-8983
8804 } 8805} 8806 8807/***/ }), 8808/* 135 */ 8809/***/ (function(module, exports, __webpack_require__) { 8810 8811"use strict"; 8812 // @wf-will-never-add-flow-to-this-file 8813 8814/* globals window, document */ 8815 8816/* eslint-disable no-var */ 8817 8818/** 8819 * Webflow: focus-visible 8820 */ 8821 8822var Webflow = __webpack_require__(3); 8823/* 8824 * This polyfill comes from https://github.com/WICG/focus-visible 8825 */ 8826 8827 8828Webflow.define('focus-visible', module.exports = function () { 8829 /** 8830 * Applies the :focus-visible polyfill at the given scope. 8831 * A scope in this case is either the top-level Document or a Shadow Root. 8832 * 8833 * @param {(Document|ShadowRoot)} scope 8834 * @see https://github.com/WICG/focus-visible 8835 */ 8836 function applyFocusVisiblePolyfill(scope) { 8837 var hadKeyboardEvent = true; 8838 var hadFocusVisibleRecently = false; 8839 var hadFocusVisibleRecentlyTimeout = null; 8840 var inputTypesAllowlist = { 8841 text: true, 8842 search: true, 8843 url: true, 8844 tel: true, 8845 email: true, 8846 password: true, 8847 number: true, 8848 date: true, 8849 month: true, 8850 week: true, 8851 time: true, 8852 datetime: true, 8853 'datetime-local': true 8854 }; 8855 /** 8856 * Helper function for legacy browsers and iframes which sometimes focus 8857 * elements like document, body, and non-interactive SVG. 8858 * @param {Element} el 8859 */ 8860 8861 function isValidFocusTarget(el) { 8862 if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) { 8863 return true; 8864 } 8865 8866 return false; 8867 } 8868 /** 8869 * Computes whether the given element should automatically trigger the 8870 * `focus-visible` class being added, i.e. whether it should always match 8871 * `:focus-visible` when focused. 8872 * @param {Element} el 8873 * @return {boolean} 8874 */ 8875 8876 8877 function focusTriggersKeyboardModality(el) { 8878 var type = el.type; 8879 var tagName = el.tagName; 8880 8881 if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { 8882 return true; 8883 } 8884 8885 if (tagName === 'TEXTAREA' && !el.readOnly) { 8886 return true; 8887 } 8888 8889 if (el.isContentEditable) { 8890 return true; 8891 } 8892 8893 return false; 8894 } 8895 8896 function addFocusVisibleAttribute(el) { 8897 if (el.getAttribute('data-wf-focus-visible')) { 8898 return; 8899 } 8900 8901 el.setAttribute('data-wf-focus-visible', 'true'); 8902 } 8903 8904 function removeFocusVisibleAttribute(el) { 8905 if (!el.getAttribute('data-wf-focus-visible')) { 8906 return; 8907 } 8908 8909 el.removeAttribute('data-wf-focus-visible'); 8910 } 8911 /** 8912 * If the most recent user interaction was via the keyboard; 8913 * and the key press did not include a meta, alt/option, or control key; 8914 * then the modality is keyboard. Otherwise, the modality is not keyboard. 8915 * Apply `focus-visible` to any current active element and keep track 8916 * of our keyboard modality state with `hadKeyboardEvent`. 8917 * @param {KeyboardEvent} e 8918 */ 8919 8920 8921 function onKeyDown(e) { 8922 if (e.metaKey || e.altKey || e.ctrlKey) { 8923 return; 8924 } 8925 8926 if (isValidFocusTarget(scope.activeElement)) { 8927 addFocusVisibleAttribute(scope.activeElement); 8928 } 8929 8930 hadKeyboardEvent = true; 8931 } 8932 /** 8933 * If at any point a user clicks with a pointing device, ensure that we change 8934 * the modality away from keyboard. 8935 * This avoids the situation where a user presses a key on an already focused 8936 * element, and then clicks on a different element, focusing it with a 8937 * pointing device, while we still think we're in keyboard modality. 8938 * @param {Event} e 8939 */ 8940 8941 8942 function onPointerDown() { 8943 hadKeyboardEvent = false; 8944 } 8945 /** 8946 * On `focus`, add the `focus-visible` class to the target if: 8947 * - the target received focus as a result of keyboard navigation, or 8948 * - the event target is an element that will likely require interaction 8949 * via the keyboard (e.g. a text box) 8950 * @param {Event} e 8951 */ 8952 8953 8954 function onFocus(e) { 8955 // Prevent IE from focusing the document or HTML element. 8956 if (!isValidFocusTarget(e.target)) { 8957 return; 8958 } 8959 8960 if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { 8961 addFocusVisibleAttribute(e.target); 8962 } 8963 } 8964 /** 8965 * On `blur`, remove the `focus-visible` class from the target. 8966 * @param {Event} e 8967 */ 8968 8969 8970 function onBlur(e) { 8971 if (!isValidFocusTarget(e.target)) { 8972 return; 8973 } 8974 8975 if (e.target.hasAttribute('data-wf-focus-visible')) { 8976 // To detect a tab/window switch, we look for a blur event followed 8977 // rapidly by a visibility change. 8978 // If we don't see a visibility change within 100ms, it's probably a 8979 // regular focus change. 8980 hadFocusVisibleRecently = true; 8981 window.clearTimeout(hadFocusVisibleRecentlyTimeout); 8982 hadFocusVisibleRecentlyTimeout = window.setTimeout(function () { 8983 hadFocusVisibleRecently = false;
8984 }, 100); 8985 removeFocusVisibleAttribute(e.target); 8986 } 8987 } 8988 /** 8989 * If the user changes tabs, keep track of whether or not the previously 8990 * focused element had .focus-visible. 8991 * @param {Event} e 8992 */ 8993 8994 8995 function onVisibilityChange() { 8996 if (document.visibilityState === 'hidden') { 8997 // If the tab becomes active again, the browser will handle calling focus 8998 // on the element (Safari actually calls it twice). 8999 // If this tab change caused a blur on an element with focus-visible, 9000 // re-apply the class when the user switches back to the tab. 9001 if (hadFocusVisibleRecently) { 9002 hadKeyboardEvent = true; 9003 } 9004 9005 addInitialPointerMoveListeners(); 9006 } 9007 } 9008 /** 9009 * Add a group of listeners to detect usage of any pointing devices. 9010 * These listeners will be added when the polyfill first loads, and anytime 9011 * the window is blurred, so that they are active when the window regains 9012 * focus. 9013 */ 9014 9015 9016 function addInitialPointerMoveListeners() { 9017 document.addEventListener('mousemove', onInitialPointerMove); 9018 document.addEventListener('mousedown', onInitialPointerMove); 9019 document.addEventListener('mouseup', onInitialPointerMove); 9020 document.addEventListener('pointermove', onInitialPointerMove); 9021 document.addEventListener('pointerdown', onInitialPointerMove); 9022 document.addEventListener('pointerup', onInitialPointerMove); 9023 document.addEventListener('touchmove', onInitialPointerMove); 9024 document.addEventListener('touchstart', onInitialPointerMove); 9025 document.addEventListener('touchend', onInitialPointerMove); 9026 } 9027 9028 function removeInitialPointerMoveListeners() { 9029 document.removeEventListener('mousemove', onInitialPointerMove); 9030 document.removeEventListener('mousedown', onInitialPointerMove); 9031 document.removeEventListener('mouseup', onInitialPointerMove); 9032 document.removeEventListener('pointermove', onInitialPointerMove); 9033 document.removeEventListener('pointerdown', onInitialPointerMove); 9034 document.removeEventListener('pointerup', onInitialPointerMove); 9035 document.removeEventListener('touchmove', onInitialPointerMove); 9036 document.removeEventListener('touchstart', onInitialPointerMove); 9037 document.removeEventListener('touchend', onInitialPointerMove); 9038 } 9039 /** 9040 * When the polfyill first loads, assume the user is in keyboard modality. 9041 * If any event is received from a pointing device (e.g. mouse, pointer, 9042 * touch), turn off keyboard modality. 9043 * This accounts for situations where focus enters the page from the URL bar. 9044 * @param {Event} e 9045 */ 9046 9047 9048 function onInitialPointerMove(e) { 9049 // Work around a Safari quirk that fires a mousemove on <html> whenever the 9050 // window blurs, even if you're tabbing out of the page. ¯\_(ã)_/¯ 9051 if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { 9052 return; 9053 } 9054 9055 hadKeyboardEvent = false; 9056 removeInitialPointerMoveListeners(); 9057 } // For some kinds of state, we are interested in changes at the global scope 9058 // only. For example, global pointer input, global key presses and global 9059 // visibility change should affect the state at every scope: 9060 9061 9062 document.addEventListener('keydown', onKeyDown, true); 9063 document.addEventListener('mousedown', onPointerDown, true); 9064 document.addEventListener('pointerdown', onPointerDown, true); 9065 document.addEventListener('touchstart', onPointerDown, true); 9066 document.addEventListener('visibilitychange', onVisibilityChange, true); 9067 addInitialPointerMoveListeners(); // For focus and blur, we specifically care about state changes in the local 9068 // scope. This is because focus / blur events that originate from within a 9069 // shadow root are not re-dispatched from the host element if it was already 9070 // the active element in its own scope: 9071 9072 scope.addEventListener('focus', onFocus, true); 9073 scope.addEventListener('blur', onBlur, true); 9074 } 9075 9076 function ready() { 9077 if (typeof document !== 'undefined') {
9078 try { 9079 // check for native support; this will throw if the selector is not considered valid 9080 document.querySelector(':focus-visible'); 9081 } catch (e) { 9082 // :focus-visible pseudo-selector is not supported natively 9083 applyFocusVisiblePolyfill(document); 9084 } 9085 } 9086 } // Export module 9087 9088 9089 return { 9090 ready: ready 9091 }; 9092}); 9093 9094/***/ }), 9095/* 136 */ 9096/***/ (function(module, exports, __webpack_require__) { 9097 9098"use strict"; 9099 // @wf-will-never-add-flow-to-this-file 9100 9101/* globals window, document */ 9102 9103/* eslint-disable no-var */ 9104 9105/** 9106 * Webflow: focus-within 9107 */ 9108 9109var Webflow = __webpack_require__(3); // polyfill based off of https://github.com/matteobad/focus-within-polyfill 9110 9111 9112Webflow.define('focus-within', module.exports = function () { 9113 /** 9114 * Calculate the entire event path. 9115 * 9116 * @param {Element} node 9117 * @return {Array} computedPath 9118 */ 9119 function computeEventPath(node) { 9120 var path = [node]; 9121 var parent = null; 9122 9123 while (parent = node.parentNode || node.host || node.defaultView) { 9124 path.push(parent); 9125 node = parent; 9126 } 9127 9128 return path; 9129 } 9130 9131 function addFocusWithinAttribute(el) { 9132 if (typeof el.getAttribute !== 'function' || el.getAttribute('data-wf-focus-within')) { 9133 return; 9134 } 9135 9136 el.setAttribute('data-wf-focus-within', 'true'); 9137 } 9138 9139 function removeFocusWithinAttribute(el) { 9140 if (typeof el.getAttribute !== 'function' || !el.getAttribute('data-wf-focus-within')) { 9141 return; 9142 } 9143 9144 el.removeAttribute('data-wf-focus-within'); 9145 } 9146 /** 9147 * Attach event listerns to initiate polyfill 9148 * @return {boolean} 9149 */ 9150 9151 9152 function loadFocusWithinPolyfill() { 9153 var handler = function handler(e) { 9154 var running; 9155 /** 9156 * Request animation frame callback. 9157 * Remove previously applied attributes. 9158 * Add new attributes. 9159 */ 9160 9161 function action() { 9162 running = false; 9163 9164 if ('blur' === e.type) { 9165 Array.prototype.slice.call(computeEventPath(e.target)).forEach(removeFocusWithinAttribute); 9166 } 9167 9168 if ('focus' === e.type) { 9169 Array.prototype.slice.call(computeEventPath(e.target)).forEach(addFocusWithinAttribute); 9170 } 9171 } 9172 9173 if (!running) { 9174 window.requestAnimationFrame(action); 9175 running = true; 9176 } 9177 }; 9178 9179 document.addEventListener('focus', handler, true); 9180 document.addEventListener('blur', handler, true); 9181 addFocusWithinAttribute(document.body); 9182 return true; 9183 } 9184 9185 function ready() { 9186 if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within')) { 9187 try { 9188 // check for native support; this will throw if the selector is not considered valid 9189 document.querySelector(':focus-within'); 9190 } catch (e) { 9191 loadFocusWithinPolyfill(); 9192 } 9193 } 9194 } // Export module 9195 9196 9197 return { 9198 ready: ready 9199 }; 9200}); 9201 9202/***/ }), 9203/* 137 */ 9204/***/ (function(module, exports, __webpack_require__) { 9205 9206"use strict"; 9207 // @wf-will-never-add-flow-to-this-file 9208 9209/* globals document, MouseEvent */ 9210 9211/* eslint-disable no-var */ 9212 9213/** 9214 * Webflow: focus 9215 */ 9216 9217var Webflow = __webpack_require__(3); 9218/* 9219 * Safari has a weird bug where it doesn't support :focus for links with hrefs, 9220 * buttons, and input[type=button|submit], so we listen for mousedown events 9221 * instead and force the element to emit a focus event in those cases. 9222 9223 * See these webkit bugs for reference: 9224 * https://bugs.webkit.org/show_bug.cgi?id=22261 9225 * https://bugs.webkit.org/show_bug.cgi?id=229895 9226 */ 9227 9228 9229Webflow.define('focus', module.exports = function () { 9230 var capturedEvents = []; 9231 var capturing = false; 9232 9233 function captureEvent(e) { 9234 if (capturing) { 9235 e.preventDefault(); 9236 e.stopPropagation(); 9237 e.stopImmediatePropagation(); 9238 capturedEvents.unshift(e); 9239 } 9240 } 9241 /* 9242 * The only mousedown events we care about here are ones emanating from 9243 * (A) anchor links with href attribute, 9244 * (B) non-disabled buttons, 9245 * (C) non-disabled textarea, 9246 * (D) non-disabled inputs of type "button", "reset", "checkbox", "radio", "submit" 9247 * (E) non-interactive elements (button, a, input, textarea, select) that have a tabindex with a numeric value 9248 * (F) audio elements 9249 * (G) video elements with controls attribute 9250 */ 9251 9252 9253 function isPolyfilledFocusEvent(e) { 9254 var el = e.target; 9255 var tag = el.tagName; 9256 return /^a$/i.test(tag) && el.href != null || // (A) 9257 /^(button|textarea)$/i.test(tag) && el.disabled !== true || // (B) (C) 9258 /^input$/i.test(tag) && /^(button|reset|submit|radio|checkbox)$/i.test(el.type) && !el.disabled || // (D)
9259 !/^(button|input|textarea|select|a)$/i.test(tag) && !Number.isNaN(Number.parseFloat(el.tabIndex)) || // (E) 9260 /^audio$/i.test(tag) || // (F) 9261 /^video$/i.test(tag) && el.controls === true // (G) 9262 ; 9263 } 9264 9265 function handler(e) { 9266 if (isPolyfilledFocusEvent(e)) { 9267 // start capturing possible out-of-order mouse events 9268 capturing = true; 9269 /* 9270 * enqueue the focus event _after_ the current batch of events, which 9271 * includes any blur events. The correct order of events is: 9272 * 9273 * [this element] MOUSEDOWN <-- this event 9274 * [previously active element] BLUR 9275 * [previously active element] FOCUSOUT 9276 * [this element] FOCUS <-- forced event 9277 * [this element] FOCUSIN <-- forced event 9278 * [this element] MOUSEUP <-- possibly captured event (it may have fired _before_ the FOCUS event) 9279 * [this element] CLICK <-- possibly captured event (it may have fired _before_ the FOCUS event) 9280 */ 9281 9282 setTimeout(function () { 9283 // stop capturing possible out-of-order mouse events 9284 capturing = false; // trigger focus event 9285 9286 e.target.focus(); // re-dispatch captured mouse events in order 9287 9288 while (capturedEvents.length > 0) { 9289 var event = capturedEvents.pop(); 9290 event.target.dispatchEvent(new MouseEvent(event.type, event)); 9291 } 9292 }, 0); 9293 } 9294 } 9295 9296 function ready() { 9297 if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within') && Webflow.env.safari) { 9298 document.addEventListener('mousedown', handler, true); 9299 document.addEventListener('mouseup', captureEvent, true); 9300 document.addEventListener('click', captureEvent, true); 9301 } 9302 } // Export module 9303 9304 9305 return { 9306 ready: ready 9307 }; 9308}); 9309 9310/***/ }), 9311/* 138 */ 9312/***/ (function(module, exports, __webpack_require__) { 9313 9314"use strict";
9315// @wf-will-never-add-flow-to-this-file 9316 9317/* globals window */ 9318 9319/* eslint-disable no-var */ 9320 9321/** 9322 * Webflow: IX Event triggers for other modules 9323 */ 9324// eslint-disable-next-line strict 9325 9326 9327var $ = window.jQuery; 9328var api = {}; 9329var eventQueue = []; 9330var namespace = '.w-ix'; 9331var eventTriggers = { 9332 reset: function reset(i, el) { 9333 el.__wf_intro = null; 9334 }, 9335 intro: function intro(i, el) { 9336 if (el.__wf_intro) { 9337 return; 9338 } 9339 9340 el.__wf_intro = true; 9341 $(el).triggerHandler(api.types.INTRO); 9342 }, 9343 outro: function outro(i, el) { 9344 if (!el.__wf_intro) { 9345 return; 9346 } 9347 9348 el.__wf_intro = null; 9349 $(el).triggerHandler(api.types.OUTRO); 9350 } 9351}; 9352api.triggers = {}; 9353api.types = { 9354 INTRO: 'w-ix-intro' + namespace, 9355 OUTRO: 'w-ix-outro' + namespace 9356}; // Trigger any events in queue + restore trigger methods 9357 9358api.init = function () { 9359 var count = eventQueue.length; 9360 9361 for (var i = 0; i < count; i++) { 9362 var memo = eventQueue[i]; 9363 memo[0](0, memo[1]); 9364 } 9365 9366 eventQueue = []; 9367 $.extend(api.triggers, eventTriggers); 9368}; // Replace all triggers with async wrapper to queue events until init 9369 9370 9371api.async = function () { 9372 for (var key in eventTriggers) { 9373 var func = eventTriggers[key]; 9374 9375 if (!eventTriggers.hasOwnProperty(key)) { 9376 continue; 9377 } // Replace trigger method with async wrapper 9378 9379 9380 api.triggers[key] = function (i, el) { 9381 eventQueue.push([func, el]); 9382 }; 9383 } 9384}; // Default triggers to async queue 9385 9386 9387api.async(); 9388module.exports = api; 9389 9390/***/ }), 9391/* 139 */ 9392/***/ (function(module, exports, __webpack_require__) { 9393 9394"use strict"; 9395 // @wf-will-never-add-flow-to-this-file 9396 9397/* eslint-disable no-var */ 9398 9399/** 9400 * Webflow: Interactions 2 9401 */ 9402 9403var Webflow = __webpack_require__(3); 9404 9405var ix2 = __webpack_require__(140); 9406 9407ix2.setEnv(Webflow.env); 9408Webflow.define('ix2', module.exports = function () { 9409 return ix2; 9410}); 9411 9412/***/ }), 9413/* 140 */ 9414/***/ (function(module, exports, __webpack_require__) { 9415 9416"use strict"; 9417 9418 9419var _interopRequireWildcard = __webpack_require__(18); 9420 9421var _interopRequireDefault = __webpack_require__(0); 9422 9423Object.defineProperty(exports, "__esModule", { 9424 value: true 9425}); 9426exports.setEnv = setEnv; 9427exports.init = init; 9428exports.destroy = destroy; 9429exports.actions = exports.store = void 0; 9430 9431__webpack_require__(141); 9432 9433var _redux = __webpack_require__(87); 9434 9435var _IX2Reducer = _interopRequireDefault(__webpack_require__(188)); 9436 9437var _IX2VanillaEngine = __webpack_require__(123); 9438 9439var actions = _interopRequireWildcard(__webpack_require__(65)); 9440 9441exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects 9442 9443var store = (0, _redux.createStore)(_IX2Reducer["default"]); 9444exports.store = store; 9445 9446function setEnv(env) { 9447 if (env()) { 9448 (0, _IX2VanillaEngine.observeRequests)(store); 9449 } 9450} 9451 9452function init(rawData) { 9453 destroy(); 9454 (0, _IX2VanillaEngine.startEngine)({ 9455 store: store, 9456 rawData: rawData, 9457 allowEvents: true 9458 }); 9459} 9460 9461function destroy() { 9462 (0, _IX2VanillaEngine.stopEngine)(store); 9463} 9464 9465/***/ }), 9466/* 141 */ 9467/***/ (function(module, exports, __webpack_require__) { 9468 9469var parent = __webpack_require__(142); 9470 9471module.exports = parent; 9472 9473 9474/***/ }), 9475/* 142 */ 9476/***/ (function(module, exports, __webpack_require__) { 9477 9478var parent = __webpack_require__(143); 9479 9480module.exports = parent; 9481 9482 9483/***/ }), 9484/* 143 */ 9485/***/ (function(module, exports, __webpack_require__) { 9486 9487__webpack_require__(144); 9488var entryUnbind = __webpack_require__(176); 9489 9490module.exports = entryUnbind('Array', 'includes'); 9491 9492 9493/***/ }), 9494/* 144 */ 9495/***/ (function(module, exports, __webpack_require__) { 9496 9497"use strict"; 9498 9499var $ = __webpack_require__(145); 9500var $includes = __webpack_require__(85).includes; 9501var addToUnscopables = __webpack_require__(171); 9502 9503// `Array.prototype.includes` method 9504// https://tc39.es/ecma262/#sec-array.prototype.includes 9505$({ target: 'Array', proto: true }, { 9506 includes: function includes(el /* , fromIndex = 0 */) { 9507 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 9508 } 9509}); 9510 9511// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 9512addToUnscopables('includes'); 9513 9514 9515/***/ }), 9516/* 145 */ 9517/***/ (function(module, exports, __webpack_require__) { 9518 9519var global = __webpack_require__(1); 9520var getOwnPropertyDescriptor = __webpack_require__(70).f; 9521var createNonEnumerableProperty = __webpack_require__(43); 9522var redefine = __webpack_require__(159); 9523var setGlobal = __webpack_require__(42); 9524var copyConstructorProperties = __webpack_require__(163); 9525var isForced = __webpack_require__(170); 9526 9527/* 9528 options.target - name of the target object 9529 options.global - target is the global object 9530 options.stat - export as static methods of target 9531 options.proto - export as prototype methods of target 9532 options.real - real prototype method for the `pure` version 9533 options.forced - export even if the native feature is available
9534 options.bind - bind methods to the target, required for the `pure` version 9535 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 9536 options.unsafe - use the simple assignment of property instead of delete + defineProperty 9537 options.sham - add a flag to not completely full polyfills 9538 options.enumerable - export as enumerable property 9539 options.noTargetGet - prevent calling a getter on target 9540 options.name - the .name of the function if it does not match the key 9541*/ 9542module.exports = function (options, source) { 9543 var TARGET = options.target; 9544 var GLOBAL = options.global; 9545 var STATIC = options.stat; 9546 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 9547 if (GLOBAL) { 9548 target = global; 9549 } else if (STATIC) { 9550 target = global[TARGET] || setGlobal(TARGET, {}); 9551 } else { 9552 target = (global[TARGET] || {}).prototype; 9553 } 9554 if (target) for (key in source) { 9555 sourceProperty = source[key]; 9556 if (options.noTargetGet) { 9557 descriptor = getOwnPropertyDescriptor(target, key); 9558 targetProperty = descriptor && descriptor.value; 9559 } else targetProperty = target[key]; 9560 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 9561 // contained in target 9562 if (!FORCED && targetProperty !== undefined) { 9563 if (typeof sourceProperty == typeof targetProperty) continue; 9564 copyConstructorProperties(sourceProperty, targetProperty); 9565 } 9566 // add a flag to not completely full polyfills 9567 if (options.sham || (targetProperty && targetProperty.sham)) { 9568 createNonEnumerableProperty(sourceProperty, 'sham', true); 9569 } 9570 // extend global 9571 redefine(target, key, sourceProperty, options); 9572 } 9573}; 9574 9575 9576/***/ }), 9577/* 146 */ 9578/***/ (function(module, exports, __webpack_require__) { 9579 9580"use strict"; 9581 9582var $propertyIsEnumerable = {}.propertyIsEnumerable; 9583// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9584var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 9585 9586// Nashorn ~ JDK8 bug 9587var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); 9588 9589// `Object.prototype.propertyIsEnumerable` method implementation 9590// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable 9591exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 9592 var descriptor = getOwnPropertyDescriptor(this, V); 9593 return !!descriptor && descriptor.enumerable; 9594} : $propertyIsEnumerable; 9595 9596 9597/***/ }), 9598/* 147 */ 9599/***/ (function(module, exports, __webpack_require__) { 9600 9601var global = __webpack_require__(1); 9602var uncurryThis = __webpack_require__(5); 9603var fails = __webpack_require__(19); 9604var classof = __webpack_require__(148); 9605 9606var Object = global.Object; 9607var split = uncurryThis(''.split); 9608 9609// fallback for non-array-like ES3 and non-enumerable old V8 strings 9610module.exports = fails(function () { 9611 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 9612 // eslint-disable-next-line no-prototype-builtins -- safe 9613 return !Object('z').propertyIsEnumerable(0); 9614}) ? function (it) { 9615 return classof(it) == 'String' ? split(it, '') : Object(it); 9616} : Object; 9617 9618 9619/***/ }), 9620/* 148 */ 9621/***/ (function(module, exports, __webpack_require__) { 9622 9623var uncurryThis = __webpack_require__(5); 9624 9625var toString = uncurryThis({}.toString); 9626var stringSlice = uncurryThis(''.slice); 9627 9628module.exports = function (it) { 9629 return stringSlice(toString(it), 8, -1); 9630}; 9631 9632 9633/***/ }), 9634/* 149 */ 9635/***/ (function(module, exports, __webpack_require__) { 9636 9637var global = __webpack_require__(1); 9638var call = __webpack_require__(40); 9639var isObject = __webpack_require__(20); 9640var isSymbol = __webpack_require__(74); 9641var getMethod = __webpack_require__(153); 9642var ordinaryToPrimitive = __webpack_require__(156); 9643var wellKnownSymbol = __webpack_require__(77); 9644 9645var TypeError = global.TypeError; 9646var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); 9647 9648// `ToPrimitive` abstract operation 9649// https://tc39.es/ecma262/#sec-toprimitive 9650module.exports = function (input, pref) { 9651 if (!isObject(input) || isSymbol(input)) return input; 9652 var exoticToPrim = getMethod(input, TO_PRIMITIVE); 9653 var result; 9654 if (exoticToPrim) { 9655 if (pref === undefined) pref = 'default'; 9656 result = call(exoticToPrim, input, pref); 9657 if (!isObject(result) || isSymbol(result)) return result; 9658 throw TypeError("Can't convert object to primitive value"); 9659 } 9660 if (pref === undefined) pref = 'number'; 9661 return ordinaryToPrimitive(input, pref); 9662}; 9663 9664 9665/***/ }), 9666/* 150 */ 9667/***/ (function(module, exports, __webpack_require__) { 9668 9669var uncurryThis = __webpack_require__(5); 9670 9671module.exports = uncurryThis({}.isPrototypeOf); 9672 9673
vendor: 9,260 bytes, lines 9674-10001
9674/***/ }), 9675/* 151 */ 9676/***/ (function(module, exports, __webpack_require__) { 9677 9678var global = __webpack_require__(1); 9679var userAgent = __webpack_require__(152); 9680 9681var process = global.process; 9682var Deno = global.Deno; 9683var versions = process && process.versions || Deno && Deno.version; 9684var v8 = versions && versions.v8; 9685var match, version; 9686 9687if (v8) { 9688 match = v8.split('.'); 9689 // in old Chrome, versions of V8 isn't V8 = Chrome / 10 9690 // but their correct versions are not interesting for us 9691 version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); 9692} 9693 9694// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` 9695// so check `userAgent` even if `.v8` exists, but 0 9696if (!version && userAgent) { 9697 match = userAgent.match(/Edge\/(\d+)/); 9698 if (!match || match[1] >= 74) { 9699 match = userAgent.match(/Chrome\/(\d+)/); 9700 if (match) version = +match[1]; 9701 } 9702} 9703 9704module.exports = version; 9705 9706 9707/***/ }), 9708/* 152 */ 9709/***/ (function(module, exports, __webpack_require__) { 9710 9711var getBuiltIn = __webpack_require__(27); 9712 9713module.exports = getBuiltIn('navigator', 'userAgent') || ''; 9714 9715 9716/***/ }), 9717/* 153 */ 9718/***/ (function(module, exports, __webpack_require__) { 9719 9720var aCallable = __webpack_require__(154); 9721 9722// `GetMethod` abstract operation 9723// https://tc39.es/ecma262/#sec-getmethod 9724module.exports = function (V, P) { 9725 var func = V[P]; 9726 return func == null ? undefined : aCallable(func); 9727}; 9728 9729 9730/***/ }), 9731/* 154 */ 9732/***/ (function(module, exports, __webpack_require__) { 9733 9734var global = __webpack_require__(1); 9735var isCallable = __webpack_require__(7); 9736var tryToString = __webpack_require__(155); 9737 9738var TypeError = global.TypeError; 9739 9740// `Assert: IsCallable(argument) is true` 9741module.exports = function (argument) { 9742 if (isCallable(argument)) return argument; 9743 throw TypeError(tryToString(argument) + ' is not a function'); 9744}; 9745 9746 9747/***/ }), 9748/* 155 */ 9749/***/ (function(module, exports, __webpack_require__) { 9750 9751var global = __webpack_require__(1); 9752 9753var String = global.String; 9754 9755module.exports = function (argument) { 9756 try { 9757 return String(argument); 9758 } catch (error) { 9759 return 'Object'; 9760 } 9761}; 9762 9763 9764/***/ }), 9765/* 156 */ 9766/***/ (function(module, exports, __webpack_require__) { 9767 9768var global = __webpack_require__(1); 9769var call = __webpack_require__(40); 9770var isCallable = __webpack_require__(7); 9771var isObject = __webpack_require__(20); 9772 9773var TypeError = global.TypeError; 9774 9775// `OrdinaryToPrimitive` abstract operation 9776// https://tc39.es/ecma262/#sec-ordinarytoprimitive 9777module.exports = function (input, pref) { 9778 var fn, val; 9779 if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9780 if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; 9781 if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9782 throw TypeError("Can't convert object to primitive value"); 9783}; 9784 9785 9786/***/ }), 9787/* 157 */ 9788/***/ (function(module, exports) { 9789 9790module.exports = false; 9791 9792 9793/***/ }), 9794/* 158 */ 9795/***/ (function(module, exports, __webpack_require__) { 9796 9797var global = __webpack_require__(1); 9798var requireObjectCoercible = __webpack_require__(72); 9799 9800var Object = global.Object; 9801 9802// `ToObject` abstract operation 9803// https://tc39.es/ecma262/#sec-toobject 9804module.exports = function (argument) { 9805 return Object(requireObjectCoercible(argument)); 9806}; 9807 9808 9809/***/ }), 9810/* 159 */ 9811/***/ (function(module, exports, __webpack_require__) { 9812 9813var global = __webpack_require__(1); 9814var isCallable = __webpack_require__(7); 9815var hasOwn = __webpack_require__(9); 9816var createNonEnumerableProperty = __webpack_require__(43); 9817var setGlobal = __webpack_require__(42); 9818var inspectSource = __webpack_require__(82); 9819var InternalStateModule = __webpack_require__(160); 9820var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(162).CONFIGURABLE; 9821 9822var getInternalState = InternalStateModule.get; 9823var enforceInternalState = InternalStateModule.enforce; 9824var TEMPLATE = String(String).split('String'); 9825 9826(module.exports = function (O, key, value, options) { 9827 var unsafe = options ? !!options.unsafe : false; 9828 var simple = options ? !!options.enumerable : false; 9829 var noTargetGet = options ? !!options.noTargetGet : false; 9830 var name = options && options.name !== undefined ? options.name : key; 9831 var state; 9832 if (isCallable(value)) { 9833 if (String(name).slice(0, 7) === 'Symbol(') { 9834 name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; 9835 } 9836 if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { 9837 createNonEnumerableProperty(value, 'name', name); 9838 } 9839 state = enforceInternalState(value); 9840 if (!state.source) { 9841 state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); 9842 } 9843 } 9844 if (O === global) { 9845 if (simple) O[key] = value; 9846 else setGlobal(key, value); 9847 return; 9848 } else if (!unsafe) { 9849 delete O[key]; 9850 } else if (!noTargetGet && O[key]) { 9851 simple = true; 9852 } 9853 if (simple) O[key] = value; 9854 else createNonEnumerableProperty(O, key, value); 9855// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 9856})(Function.prototype, 'toString', function toString() { 9857 return isCallable(this) && getInternalState(this).source || inspectSource(this); 9858}); 9859 9860 9861/***/ }), 9862/* 160 */ 9863/***/ (function(module, exports, __webpack_require__) { 9864 9865var NATIVE_WEAK_MAP = __webpack_require__(161); 9866var global = __webpack_require__(1); 9867var uncurryThis = __webpack_require__(5); 9868var isObject = __webpack_require__(20); 9869var createNonEnumerableProperty = __webpack_require__(43); 9870var hasOwn = __webpack_require__(9); 9871var shared = __webpack_require__(41); 9872var sharedKey = __webpack_require__(83); 9873var hiddenKeys = __webpack_require__(44); 9874 9875var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; 9876var TypeError = global.TypeError; 9877var WeakMap = global.WeakMap; 9878var set, get, has; 9879 9880var enforce = function (it) { 9881 return has(it) ? get(it) : set(it, {}); 9882}; 9883 9884var getterFor = function (TYPE) { 9885 return function (it) { 9886 var state; 9887 if (!isObject(it) || (state = get(it)).type !== TYPE) { 9888 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 9889 } return state; 9890 }; 9891}; 9892 9893if (NATIVE_WEAK_MAP || shared.state) { 9894 var store = shared.state || (shared.state = new WeakMap()); 9895 var wmget = uncurryThis(store.get); 9896 var wmhas = uncurryThis(store.has); 9897 var wmset = uncurryThis(store.set); 9898 set = function (it, metadata) { 9899 if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 9900 metadata.facade = it; 9901 wmset(store, it, metadata); 9902 return metadata; 9903 }; 9904 get = function (it) { 9905 return wmget(store, it) || {}; 9906 }; 9907 has = function (it) { 9908 return wmhas(store, it); 9909 }; 9910} else { 9911 var STATE = sharedKey('state'); 9912 hiddenKeys[STATE] = true; 9913 set = function (it, metadata) { 9914 if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 9915 metadata.facade = it; 9916 createNonEnumerableProperty(it, STATE, metadata); 9917 return metadata; 9918 }; 9919 get = function (it) { 9920 return hasOwn(it, STATE) ? it[STATE] : {}; 9921 }; 9922 has = function (it) { 9923 return hasOwn(it, STATE); 9924 }; 9925} 9926 9927module.exports = { 9928 set: set, 9929 get: get, 9930 has: has, 9931 enforce: enforce, 9932 getterFor: getterFor 9933}; 9934 9935 9936/***/ }), 9937/* 161 */ 9938/***/ (function(module, exports, __webpack_require__) { 9939 9940var global = __webpack_require__(1); 9941var isCallable = __webpack_require__(7); 9942var inspectSource = __webpack_require__(82); 9943 9944var WeakMap = global.WeakMap; 9945 9946module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); 9947 9948 9949/***/ }), 9950/* 162 */ 9951/***/ (function(module, exports, __webpack_require__) { 9952 9953var DESCRIPTORS = __webpack_require__(14); 9954var hasOwn = __webpack_require__(9); 9955 9956var FunctionPrototype = Function.prototype; 9957// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9958var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; 9959 9960var EXISTS = hasOwn(FunctionPrototype, 'name'); 9961// additional protection from minified / mangled / dropped function names 9962var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; 9963var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); 9964 9965module.exports = { 9966 EXISTS: EXISTS, 9967 PROPER: PROPER, 9968 CONFIGURABLE: CONFIGURABLE 9969}; 9970 9971 9972/***/ }), 9973/* 163 */ 9974/***/ (function(module, exports, __webpack_require__) { 9975 9976var hasOwn = __webpack_require__(9); 9977var ownKeys = __webpack_require__(164); 9978var getOwnPropertyDescriptorModule = __webpack_require__(70); 9979var definePropertyModule = __webpack_require__(28); 9980 9981module.exports = function (target, source) { 9982 var keys = ownKeys(source); 9983 var defineProperty = definePropertyModule.f; 9984 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 9985 for (var i = 0; i < keys.length; i++) { 9986 var key = keys[i]; 9987 if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 9988 } 9989}; 9990 9991 9992/***/ }), 9993/* 164 */ 9994/***/ (function(module, exports, __webpack_require__) { 9995 9996var getBuiltIn = __webpack_require__(27); 9997var uncurryThis = __webpack_require__(5); 9998var getOwnPropertyNamesModule = __webpack_require__(165); 9999var getOwnPropertySymbolsModule = __webpack_require__(169); 10000var anObject = __webpack_require__(29); 10001
vendor: 1,501 bytes, lines 10002-10050
10002var concat = uncurryThis([].concat); 10003 10004// all object keys, includes non-enumerable and symbols 10005module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 10006 var keys = getOwnPropertyNamesModule.f(anObject(it)); 10007 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 10008 return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; 10009}; 10010 10011 10012/***/ }), 10013/* 165 */ 10014/***/ (function(module, exports, __webpack_require__) { 10015 10016var internalObjectKeys = __webpack_require__(84); 10017var enumBugKeys = __webpack_require__(45); 10018 10019var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 10020 10021// `Object.getOwnPropertyNames` method 10022// https://tc39.es/ecma262/#sec-object.getownpropertynames 10023// eslint-disable-next-line es/no-object-getownpropertynames -- safe 10024exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 10025 return internalObjectKeys(O, hiddenKeys); 10026}; 10027 10028 10029/***/ }), 10030/* 166 */ 10031/***/ (function(module, exports, __webpack_require__) { 10032 10033var toIntegerOrInfinity = __webpack_require__(86); 10034 10035var max = Math.max; 10036var min = Math.min; 10037 10038// Helper for a popular repeating case of the spec: 10039// Let integer be ? ToInteger(index). 10040// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). 10041module.exports = function (index, length) { 10042 var integer = toIntegerOrInfinity(index); 10043 return integer < 0 ? max(integer + length, 0) : min(integer, length); 10044}; 10045 10046 10047/***/ }), 10048/* 167 */ 10049/***/ (function(module, exports, __webpack_require__) { 10050
vendor: 7,288 bytes, lines 10051-10300
10051var toLength = __webpack_require__(168); 10052 10053// `LengthOfArrayLike` abstract operation 10054// https://tc39.es/ecma262/#sec-lengthofarraylike 10055module.exports = function (obj) { 10056 return toLength(obj.length); 10057}; 10058 10059 10060/***/ }), 10061/* 168 */ 10062/***/ (function(module, exports, __webpack_require__) { 10063 10064var toIntegerOrInfinity = __webpack_require__(86); 10065 10066var min = Math.min; 10067 10068// `ToLength` abstract operation 10069// https://tc39.es/ecma262/#sec-tolength 10070module.exports = function (argument) { 10071 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 10072}; 10073 10074 10075/***/ }), 10076/* 169 */ 10077/***/ (function(module, exports) { 10078 10079// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe 10080exports.f = Object.getOwnPropertySymbols; 10081 10082 10083/***/ }), 10084/* 170 */ 10085/***/ (function(module, exports, __webpack_require__) { 10086 10087var fails = __webpack_require__(19); 10088var isCallable = __webpack_require__(7); 10089 10090var replacement = /#|\.prototype\./; 10091 10092var isForced = function (feature, detection) { 10093 var value = data[normalize(feature)]; 10094 return value == POLYFILL ? true 10095 : value == NATIVE ? false 10096 : isCallable(detection) ? fails(detection) 10097 : !!detection; 10098}; 10099 10100var normalize = isForced.normalize = function (string) { 10101 return String(string).replace(replacement, '.').toLowerCase(); 10102}; 10103 10104var data = isForced.data = {}; 10105var NATIVE = isForced.NATIVE = 'N'; 10106var POLYFILL = isForced.POLYFILL = 'P'; 10107 10108module.exports = isForced; 10109 10110 10111/***/ }), 10112/* 171 */ 10113/***/ (function(module, exports, __webpack_require__) { 10114 10115var wellKnownSymbol = __webpack_require__(77); 10116var create = __webpack_require__(172); 10117var definePropertyModule = __webpack_require__(28); 10118 10119var UNSCOPABLES = wellKnownSymbol('unscopables'); 10120var ArrayPrototype = Array.prototype; 10121 10122// Array.prototype[@@unscopables] 10123// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 10124if (ArrayPrototype[UNSCOPABLES] == undefined) { 10125 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { 10126 configurable: true, 10127 value: create(null) 10128 }); 10129} 10130 10131// add a key to Array.prototype[@@unscopables] 10132module.exports = function (key) { 10133 ArrayPrototype[UNSCOPABLES][key] = true; 10134}; 10135 10136 10137/***/ }), 10138/* 172 */ 10139/***/ (function(module, exports, __webpack_require__) { 10140 10141/* global ActiveXObject -- old IE, WSH */ 10142var anObject = __webpack_require__(29); 10143var defineProperties = __webpack_require__(173); 10144var enumBugKeys = __webpack_require__(45); 10145var hiddenKeys = __webpack_require__(44); 10146var html = __webpack_require__(175); 10147var documentCreateElement = __webpack_require__(81); 10148var sharedKey = __webpack_require__(83); 10149 10150var GT = '>'; 10151var LT = '<'; 10152var PROTOTYPE = 'prototype'; 10153var SCRIPT = 'script'; 10154var IE_PROTO = sharedKey('IE_PROTO'); 10155 10156var EmptyConstructor = function () { /* empty */ }; 10157 10158var scriptTag = function (content) { 10159 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; 10160}; 10161 10162// Create object with fake `null` prototype: use ActiveX Object with cleared prototype 10163var NullProtoObjectViaActiveX = function (activeXDocument) { 10164 activeXDocument.write(scriptTag('')); 10165 activeXDocument.close(); 10166 var temp = activeXDocument.parentWindow.Object; 10167 activeXDocument = null; // avoid memory leak 10168 return temp; 10169}; 10170 10171// Create object with fake `null` prototype: use iframe Object with cleared prototype 10172var NullProtoObjectViaIFrame = function () { 10173 // Thrash, waste and sodomy: IE GC bug 10174 var iframe = documentCreateElement('iframe'); 10175 var JS = 'java' + SCRIPT + ':'; 10176 var iframeDocument; 10177 iframe.style.display = 'none'; 10178 html.appendChild(iframe); 10179 // https://github.com/zloirock/core-js/issues/475 10180 iframe.src = String(JS); 10181 iframeDocument = iframe.contentWindow.document; 10182 iframeDocument.open(); 10183 iframeDocument.write(scriptTag('document.F=Object')); 10184 iframeDocument.close(); 10185 return iframeDocument.F; 10186}; 10187 10188// Check for document.domain and active x support 10189// No need to use active x approach when document.domain is not set 10190// see https://github.com/es-shims/es5-shim/issues/150 10191// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 10192// avoid IE GC bug 10193var activeXDocument; 10194var NullProtoObject = function () { 10195 try { 10196 activeXDocument = new ActiveXObject('htmlfile'); 10197 } catch (error) { /* ignore */ } 10198 NullProtoObject = typeof document != 'undefined' 10199 ? document.domain && activeXDocument 10200 ? NullProtoObjectViaActiveX(activeXDocument) // old IE 10201 : NullProtoObjectViaIFrame() 10202 : NullProtoObjectViaActiveX(activeXDocument); // WSH 10203 var length = enumBugKeys.length; 10204 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; 10205 return NullProtoObject(); 10206}; 10207 10208hiddenKeys[IE_PROTO] = true; 10209 10210// `Object.create` method 10211// https://tc39.es/ecma262/#sec-object.create 10212module.exports = Object.create || function create(O, Properties) { 10213 var result; 10214 if (O !== null) { 10215 EmptyConstructor[PROTOTYPE] = anObject(O); 10216 result = new EmptyConstructor(); 10217 EmptyConstructor[PROTOTYPE] = null; 10218 // add "__proto__" for Object.getPrototypeOf polyfill 10219 result[IE_PROTO] = O; 10220 } else result = NullProtoObject(); 10221 return Properties === undefined ? result : defineProperties(result, Properties); 10222}; 10223 10224 10225/***/ }), 10226/* 173 */ 10227/***/ (function(module, exports, __webpack_require__) { 10228 10229var DESCRIPTORS = __webpack_require__(14); 10230var definePropertyModule = __webpack_require__(28); 10231var anObject = __webpack_require__(29); 10232var toIndexedObject = __webpack_require__(26); 10233var objectKeys = __webpack_require__(174); 10234 10235// `Object.defineProperties` method 10236// https://tc39.es/ecma262/#sec-object.defineproperties 10237// eslint-disable-next-line es/no-object-defineproperties -- safe 10238module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 10239 anObject(O); 10240 var props = toIndexedObject(Properties); 10241 var keys = objectKeys(Properties); 10242 var length = keys.length; 10243 var index = 0; 10244 var key; 10245 while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); 10246 return O; 10247}; 10248 10249 10250/***/ }), 10251/* 174 */ 10252/***/ (function(module, exports, __webpack_require__) { 10253 10254var internalObjectKeys = __webpack_require__(84); 10255var enumBugKeys = __webpack_require__(45); 10256 10257// `Object.keys` method 10258// https://tc39.es/ecma262/#sec-object.keys 10259// eslint-disable-next-line es/no-object-keys -- safe 10260module.exports = Object.keys || function keys(O) { 10261 return internalObjectKeys(O, enumBugKeys); 10262}; 10263 10264 10265/***/ }), 10266/* 175 */ 10267/***/ (function(module, exports, __webpack_require__) { 10268 10269var getBuiltIn = __webpack_require__(27); 10270 10271module.exports = getBuiltIn('document', 'documentElement'); 10272 10273 10274/***/ }), 10275/* 176 */ 10276/***/ (function(module, exports, __webpack_require__) { 10277 10278var global = __webpack_require__(1); 10279var uncurryThis = __webpack_require__(5); 10280 10281module.exports = function (CONSTRUCTOR, METHOD) { 10282 return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); 10283}; 10284 10285 10286/***/ }), 10287/* 177 */ 10288/***/ (function(module, __webpack_exports__, __webpack_require__) { 10289 10290"use strict"; 10291__webpack_require__.r(__webpack_exports__); 10292/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); 10293/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180); 10294/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(181); 10295 10296 10297 10298 10299/** `Object#toString` result references. */ 10300var nullTag = '[object Null]',
10301 undefinedTag = '[object Undefined]'; 10302 10303/** Built-in value references. */ 10304var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 10305 10306/** 10307 * The base implementation of `getTag` without fallbacks for buggy environments. 10308 * 10309 * @private 10310 * @param {*} value The value to query. 10311 * @returns {string} Returns the `toStringTag`. 10312 */ 10313function baseGetTag(value) { 10314 if (value == null) { 10315 return value === undefined ? undefinedTag : nullTag; 10316 } 10317 return (symToStringTag && symToStringTag in Object(value)) 10318 ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) 10319 : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); 10320} 10321 10322/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); 10323 10324 10325/***/ }), 10326/* 178 */ 10327/***/ (function(module, __webpack_exports__, __webpack_require__) { 10328 10329"use strict"; 10330__webpack_require__.r(__webpack_exports__); 10331/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(179); 10332 10333 10334/** Detect free variable `self`. */ 10335var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 10336 10337/** Used as a reference to the global object. */ 10338var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); 10339 10340/* harmony default export */ __webpack_exports__["default"] = (root); 10341 10342 10343/***/ }), 10344/* 179 */ 10345/***/ (function(module, __webpack_exports__, __webpack_require__) { 10346 10347"use strict"; 10348__webpack_require__.r(__webpack_exports__); 10349/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 10350var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 10351 10352/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); 10353 10354/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) 10355 10356/***/ }), 10357/* 180 */ 10358/***/ (function(module, __webpack_exports__, __webpack_require__) { 10359 10360"use strict"; 10361__webpack_require__.r(__webpack_exports__); 10362/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); 10363 10364 10365/** Used for built-in method references. */ 10366var objectProto = Object.prototype; 10367 10368/** Used to check objects for own properties. */ 10369var hasOwnProperty = objectProto.hasOwnProperty; 10370 10371/** 10372 * Used to resolve the 10373 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10374 * of values. 10375 */ 10376var nativeObjectToString = objectProto.toString; 10377 10378/** Built-in value references. */ 10379var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 10380 10381/** 10382 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 10383 * 10384 * @private 10385 * @param {*} value The value to query. 10386 * @returns {string} Returns the raw `toStringTag`. 10387 */ 10388function getRawTag(value) { 10389 var isOwn = hasOwnProperty.call(value, symToStringTag), 10390 tag = value[symToStringTag]; 10391 10392 try { 10393 value[symToStringTag] = undefined; 10394 var unmasked = true; 10395 } catch (e) {} 10396 10397 var result = nativeObjectToString.call(value); 10398 if (unmasked) { 10399 if (isOwn) { 10400 value[symToStringTag] = tag; 10401 } else { 10402 delete value[symToStringTag]; 10403 } 10404 } 10405 return result; 10406} 10407 10408/* harmony default export */ __webpack_exports__["default"] = (getRawTag); 10409 10410 10411/***/ }), 10412/* 181 */ 10413/***/ (function(module, __webpack_exports__, __webpack_require__) { 10414 10415"use strict"; 10416__webpack_require__.r(__webpack_exports__); 10417/** Used for built-in method references. */ 10418var objectProto = Object.prototype; 10419 10420/** 10421 * Used to resolve the 10422 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10423 * of values. 10424 */ 10425var nativeObjectToString = objectProto.toString; 10426 10427/** 10428 * Converts `value` to a string using `Object.prototype.toString`. 10429 * 10430 * @private 10431 * @param {*} value The value to convert. 10432 * @returns {string} Returns the converted string. 10433 */ 10434function objectToString(value) { 10435 return nativeObjectToString.call(value); 10436} 10437 10438/* harmony default export */ __webpack_exports__["default"] = (objectToString); 10439 10440 10441/***/ }), 10442/* 182 */ 10443/***/ (function(module, __webpack_exports__, __webpack_require__) { 10444 10445"use strict"; 10446__webpack_require__.r(__webpack_exports__); 10447/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); 10448 10449 10450/** Built-in value references. */ 10451var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); 10452 10453/* harmony default export */ __webpack_exports__["default"] = (getPrototype); 10454 10455 10456/***/ }), 10457/* 183 */ 10458/***/ (function(module, __webpack_exports__, __webpack_require__) { 10459 10460"use strict"; 10461__webpack_require__.r(__webpack_exports__); 10462/** 10463 * Creates a unary function that invokes `func` with its argument transformed. 10464 * 10465 * @private 10466 * @param {Function} func The function to wrap. 10467 * @param {Function} transform The argument transform. 10468 * @returns {Function} Returns the new function. 10469 */ 10470function overArg(func, transform) { 10471 return function(arg) { 10472 return func(transform(arg)); 10473 }; 10474} 10475 10476/* harmony default export */ __webpack_exports__["default"] = (overArg); 10477 10478
10479/***/ }), 10480/* 184 */ 10481/***/ (function(module, __webpack_exports__, __webpack_require__) { 10482 10483"use strict"; 10484__webpack_require__.r(__webpack_exports__); 10485/** 10486 * Checks if `value` is object-like. A value is object-like if it's not `null` 10487 * and has a `typeof` result of "object". 10488 * 10489 * @static 10490 * @memberOf _ 10491 * @since 4.0.0 10492 * @category Lang 10493 * @param {*} value The value to check. 10494 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 10495 * @example 10496 * 10497 * _.isObjectLike({}); 10498 * // => true 10499 * 10500 * _.isObjectLike([1, 2, 3]); 10501 * // => true 10502 * 10503 * _.isObjectLike(_.noop); 10504 * // => false 10505 * 10506 * _.isObjectLike(null); 10507 * // => false 10508 */ 10509function isObjectLike(value) { 10510 return value != null && typeof value == 'object'; 10511} 10512 10513/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); 10514 10515 10516/***/ }), 10517/* 185 */ 10518/***/ (function(module, __webpack_exports__, __webpack_require__) { 10519 10520"use strict"; 10521__webpack_require__.r(__webpack_exports__); 10522/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(187); 10523/* global window */ 10524 10525 10526var root; 10527 10528if (typeof self !== 'undefined') { 10529 root = self; 10530} else if (typeof window !== 'undefined') { 10531 root = window; 10532} else if (typeof global !== 'undefined') { 10533 root = global; 10534} else if (true) { 10535 root = module; 10536} else {} 10537 10538var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); 10539/* harmony default export */ __webpack_exports__["default"] = (result); 10540 10541/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(186)(module))) 10542 10543/***/ }), 10544/* 186 */ 10545/***/ (function(module, exports) { 10546 10547module.exports = function(originalModule) { 10548 if (!originalModule.webpackPolyfill) { 10549 var module = Object.create(originalModule); 10550 // module.parent = undefined by default 10551 if (!module.children) module.children = []; 10552 Object.defineProperty(module, "loaded", { 10553 enumerable: true, 10554 get: function() { 10555 return module.l; 10556 } 10557 }); 10558 Object.defineProperty(module, "id", { 10559 enumerable: true, 10560 get: function() { 10561 return module.i; 10562 } 10563 }); 10564 Object.defineProperty(module, "exports", { 10565 enumerable: true 10566 }); 10567 module.webpackPolyfill = 1; 10568 } 10569 return module; 10570}; 10571 10572 10573/***/ }), 10574/* 187 */ 10575/***/ (function(module, __webpack_exports__, __webpack_require__) { 10576 10577"use strict"; 10578__webpack_require__.r(__webpack_exports__); 10579/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); 10580function symbolObservablePonyfill(root) { 10581 var result; 10582 var Symbol = root.Symbol; 10583 10584 if (typeof Symbol === 'function') { 10585 if (Symbol.observable) { 10586 result = Symbol.observable; 10587 } else { 10588 result = Symbol('observable'); 10589 Symbol.observable = result; 10590 } 10591 } else { 10592 result = '@@observable'; 10593 } 10594 10595 return result; 10596}; 10597 10598 10599/***/ }), 10600/* 188 */ 10601/***/ (function(module, exports, __webpack_require__) { 10602 10603"use strict"; 10604 10605 10606Object.defineProperty(exports, "__esModule", { 10607 value: true 10608}); 10609exports["default"] = void 0; 10610 10611var _redux = __webpack_require__(87); 10612 10613var _IX2DataReducer = __webpack_require__(189); 10614 10615var _IX2RequestReducer = __webpack_require__(195); 10616 10617var _IX2SessionReducer = __webpack_require__(196); 10618 10619var _shared = __webpack_require__(15); 10620 10621var _IX2InstancesReducer = __webpack_require__(282); 10622 10623var _IX2ParametersReducer = __webpack_require__(283); 10624 10625var ixElements = _shared.IX2ElementsReducer.ixElements; 10626 10627var _default = (0, _redux.combineReducers)({ 10628 ixData: _IX2DataReducer.ixData, 10629 ixRequest: _IX2RequestReducer.ixRequest, 10630 ixSession: _IX2SessionReducer.ixSession, 10631 ixElements: ixElements, 10632 ixInstances: _IX2InstancesReducer.ixInstances, 10633 ixParameters: _IX2ParametersReducer.ixParameters 10634}); 10635 10636exports["default"] = _default; 10637 10638/***/ }), 10639/* 189 */ 10640/***/ (function(module, exports, __webpack_require__) { 10641 10642"use strict"; 10643 10644 10645Object.defineProperty(exports, "__esModule", { 10646 value: true 10647}); 10648exports.ixData = void 0; 10649 10650var _constants = __webpack_require__(4); 10651 10652var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; 10653 10654var ixData = function ixData() { 10655 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 10656 var action = arguments.length > 1 ? arguments[1] : undefined; 10657 10658 switch (action.type) {
10659 case IX2_RAW_DATA_IMPORTED: 10660 { 10661 return action.payload.ixData || Object.freeze({}); 10662 } 10663 10664 default: 10665 { 10666 return state; 10667 } 10668 } 10669}; 10670 10671exports.ixData = ixData; 10672 10673/***/ }), 10674/* 190 */ 10675/***/ (function(module, exports, __webpack_require__) { 10676 10677"use strict"; 10678 10679 10680Object.defineProperty(exports, "__esModule", { 10681 value: true 10682}); 10683exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; 10684/** 10685 * Event Type IDs 10686 */ 10687 10688var EventTypeConsts = { 10689 NAVBAR_OPEN: 'NAVBAR_OPEN', 10690 NAVBAR_CLOSE: 'NAVBAR_CLOSE', 10691 TAB_ACTIVE: 'TAB_ACTIVE', 10692 TAB_INACTIVE: 'TAB_INACTIVE', 10693 SLIDER_ACTIVE: 'SLIDER_ACTIVE', 10694 SLIDER_INACTIVE: 'SLIDER_INACTIVE', 10695 DROPDOWN_OPEN: 'DROPDOWN_OPEN', 10696 DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', 10697 MOUSE_CLICK: 'MOUSE_CLICK', 10698 MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', 10699 MOUSE_DOWN: 'MOUSE_DOWN', 10700 MOUSE_UP: 'MOUSE_UP', 10701 MOUSE_OVER: 'MOUSE_OVER', 10702 MOUSE_OUT: 'MOUSE_OUT', 10703 MOUSE_MOVE: 'MOUSE_MOVE', 10704 MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', 10705 SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', 10706 SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', 10707 SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', 10708 ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', 10709 ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', 10710 PAGE_START: 'PAGE_START', 10711 PAGE_FINISH: 'PAGE_FINISH', 10712 PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', 10713 PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', 10714 PAGE_SCROLL: 'PAGE_SCROLL' 10715}; 10716/** 10717 * Event Config Enums 10718 */ 10719 10720exports.EventTypeConsts = EventTypeConsts; 10721var EventAppliesTo = { 10722 ELEMENT: 'ELEMENT', 10723 CLASS: 'CLASS', 10724 PAGE: 'PAGE' 10725}; 10726exports.EventAppliesTo = EventAppliesTo; 10727var EventBasedOn = { 10728 ELEMENT: 'ELEMENT', 10729 VIEWPORT: 'VIEWPORT' 10730}; 10731exports.EventBasedOn = EventBasedOn; 10732var EventContinuousMouseAxes = { 10733 X_AXIS: 'X_AXIS', 10734 Y_AXIS: 'Y_AXIS' 10735}; 10736exports.EventContinuousMouseAxes = EventContinuousMouseAxes; 10737var EventLimitAffectedElements = { 10738 CHILDREN: 'CHILDREN', 10739 SIBLINGS: 'SIBLINGS', 10740 IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' 10741}; 10742/** 10743 * Quick Effect Enums 10744 */ 10745 10746exports.EventLimitAffectedElements = EventLimitAffectedElements; 10747var QuickEffectIds = { 10748 FADE_EFFECT: 'FADE_EFFECT', 10749 SLIDE_EFFECT: 'SLIDE_EFFECT', 10750 GROW_EFFECT: 'GROW_EFFECT', 10751 SHRINK_EFFECT: 'SHRINK_EFFECT', 10752 SPIN_EFFECT: 'SPIN_EFFECT', 10753 FLY_EFFECT: 'FLY_EFFECT', 10754 POP_EFFECT: 'POP_EFFECT', 10755 FLIP_EFFECT: 'FLIP_EFFECT', 10756 JIGGLE_EFFECT: 'JIGGLE_EFFECT', 10757 PULSE_EFFECT: 'PULSE_EFFECT', 10758 DROP_EFFECT: 'DROP_EFFECT', 10759 BLINK_EFFECT: 'BLINK_EFFECT', 10760 BOUNCE_EFFECT: 'BOUNCE_EFFECT', 10761 FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', 10762 FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', 10763 RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', 10764 JELLO_EFFECT: 'JELLO_EFFECT', 10765 GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', 10766 SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', 10767 PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' 10768}; 10769/** 10770 * Quick Effect Direction Enums 10771 */ 10772 10773exports.QuickEffectIds = QuickEffectIds; 10774var QuickEffectDirectionConsts = { 10775 LEFT: 'LEFT', 10776 RIGHT: 'RIGHT', 10777 BOTTOM: 'BOTTOM', 10778 TOP: 'TOP', 10779 BOTTOM_LEFT: 'BOTTOM_LEFT', 10780 BOTTOM_RIGHT: 'BOTTOM_RIGHT', 10781 TOP_RIGHT: 'TOP_RIGHT', 10782 TOP_LEFT: 'TOP_LEFT', 10783 CLOCKWISE: 'CLOCKWISE', 10784 COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' 10785}; 10786exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; 10787 10788/***/ }), 10789/* 191 */ 10790/***/ (function(module, exports, __webpack_require__) { 10791 10792"use strict"; 10793 10794 10795Object.defineProperty(exports, "__esModule", { 10796 value: true 10797}); 10798exports.InteractionTypeConsts = void 0; 10799var InteractionTypeConsts = { 10800 MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', 10801 MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', 10802 MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', 10803 SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', 10804 SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', 10805 MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', 10806 PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', 10807 PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', 10808 PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', 10809 NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', 10810 DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', 10811 ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', 10812 TAB_INTERACTION: 'TAB_INTERACTION', 10813 SLIDER_INTERACTION: 'SLIDER_INTERACTION' 10814}; 10815exports.InteractionTypeConsts = InteractionTypeConsts; 10816 10817/***/ }), 10818/* 192 */ 10819/***/ (function(module, exports, __webpack_require__) { 10820 10821"use strict"; 10822 10823 10824var _interopRequireDefault = __webpack_require__(0); 10825 10826var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); 10827 10828var _ReducedMotionTypes; 10829 10830Object.defineProperty(exports, "__esModule", { 10831 value: true 10832}); 10833exports.ReducedMotionTypes = void 0; 10834 10835var _animationActions = __webpack_require__(94); 10836 10837var _animationActions$Act = _animationActions.ActionTypeConsts, 10838 TRANSFORM_MOVE = _animationActions$Act.TRANSFORM_MOVE, 10839 TRANSFORM_SCALE = _animationActions$Act.TRANSFORM_SCALE, 10840 TRANSFORM_ROTATE = _animationActions$Act.TRANSFORM_ROTATE, 10841 TRANSFORM_SKEW = _animationActions$Act.TRANSFORM_SKEW, 10842 STYLE_SIZE = _animationActions$Act.STYLE_SIZE,
10843 STYLE_FILTER = _animationActions$Act.STYLE_FILTER, 10844 STYLE_FONT_VARIATION = _animationActions$Act.STYLE_FONT_VARIATION; 10845/** 10846 * Reduced Motion: Action types to bypass during `prefers-reduced-motion` 10847 */ 10848 10849var ReducedMotionTypes = (_ReducedMotionTypes = {}, (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_MOVE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SCALE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_ROTATE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, TRANSFORM_SKEW, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_SIZE, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FILTER, true), (0, _defineProperty2["default"])(_ReducedMotionTypes, STYLE_FONT_VARIATION, true), _ReducedMotionTypes); 10850exports.ReducedMotionTypes = ReducedMotionTypes; 10851 10852/***/ }), 10853/* 193 */ 10854/***/ (function(module, exports, __webpack_require__) { 10855 10856"use strict"; 10857 10858 10859Object.defineProperty(exports, "__esModule", { 10860 value: true 10861}); 10862exports.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; 10863var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; 10864exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; 10865var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; 10866exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; 10867var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; 10868exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; 10869var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; 10870exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; 10871var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; 10872exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; 10873var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; 10874exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; 10875var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; 10876exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; 10877var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; 10878exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; 10879var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; 10880exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; 10881var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; 10882exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; 10883var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; 10884exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; 10885var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; 10886exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; 10887var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; 10888exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; 10889var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; 10890exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; 10891var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; 10892exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; 10893var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; 10894exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; 10895var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; 10896exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; 10897var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; 10898exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; 10899var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; 10900exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; 10901var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; 10902exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; 10903 10904/***/ }), 10905/* 194 */ 10906/***/ (function(module, exports, __webpack_require__) { 10907 10908"use strict"; 10909 10910 10911Object.defineProperty(exports, "__esModule", { 10912 value: true 10913}); 10914exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exp
10914orts.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.FONT_VARIATION_SETTINGS = 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; 10915var IX2_ID_DELIMITER = '|'; 10916exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; 10917var WF_PAGE = 'data-wf-page'; 10918exports.WF_PAGE = WF_PAGE; 10919var W_MOD_JS = 'w-mod-js'; 10920exports.W_MOD_JS = W_MOD_JS; 10921var W_MOD_IX = 'w-mod-ix'; 10922exports.W_MOD_IX = W_MOD_IX; 10923var BOUNDARY_SELECTOR = '.w-dyn-item'; 10924exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; 10925var CONFIG_X_VALUE = 'xValue'; 10926exports.CONFIG_X_VALUE = CONFIG_X_VALUE; 10927var CONFIG_Y_VALUE = 'yValue'; 10928exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; 10929var CONFIG_Z_VALUE = 'zValue'; 10930exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; 10931var CONFIG_VALUE = 'value'; 10932exports.CONFIG_VALUE = CONFIG_VALUE; 10933var CONFIG_X_UNIT = 'xUnit'; 10934exports.CONFIG_X_UNIT = CONFIG_X_UNIT; 10935var CONFIG_Y_UNIT = 'yUnit'; 10936exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; 10937var CONFIG_Z_UNIT = 'zUnit'; 10938exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; 10939var CONFIG_UNIT = 'unit'; 10940exports.CONFIG_UNIT = CONFIG_UNIT; 10941var TRANSFORM = 'transform'; 10942exports.TRANSFORM = TRANSFORM; 10943var TRANSLATE_X = 'translateX'; 10944exports.TRANSLATE_X = TRANSLATE_X; 10945var TRANSLATE_Y = 'translateY'; 10946exports.TRANSLATE_Y = TRANSLATE_Y; 10947var TRANSLATE_Z = 'translateZ'; 10948exports.TRANSLATE_Z = TRANSLATE_Z; 10949var TRANSLATE_3D = 'translate3d'; 10950exports.TRANSLATE_3D = TRANSLATE_3D; 10951var SCALE_X = 'scaleX'; 10952exports.SCALE_X = SCALE_X; 10953var SCALE_Y = 'scaleY'; 10954exports.SCALE_Y = SCALE_Y; 10955var SCALE_Z = 'scaleZ'; 10956exports.SCALE_Z = SCALE_Z; 10957var SCALE_3D = 'scale3d'; 10958exports.SCALE_3D = SCALE_3D; 10959var ROTATE_X = 'rotateX'; 10960exports.ROTATE_X = ROTATE_X; 10961var ROTATE_Y = 'rotateY'; 10962exports.ROTATE_Y = ROTATE_Y; 10963var ROTATE_Z = 'rotateZ'; 10964exports.ROTATE_Z = ROTATE_Z; 10965var SKEW = 'skew'; 10966exports.SKEW = SKEW; 10967var SKEW_X = 'skewX'; 10968exports.SKEW_X = SKEW_X; 10969var SKEW_Y = 'skewY'; 10970exports.SKEW_Y = SKEW_Y; 10971var OPACITY = 'opacity'; 10972exports.OPACITY = OPACITY; 10973var FILTER = 'filter'; 10974exports.FILTER = FILTER; 10975var FONT_VARIATION_SETTINGS = 'font-variation-settings'; 10976exports.FONT_VARIATION_SETTINGS = FONT_VARIATION_SETTINGS; 10977var WIDTH = 'width'; 10978exports.WIDTH = WIDTH; 10979var HEIGHT = 'height'; 10980exports.HEIGHT = HEIGHT; 10981var BACKGROUND_COLOR = 'backgroundColor'; 10982exports.BACKGROUND_COLOR = BACKGROUND_COLOR; 10983var BACKGROUND = 'background'; 10984exports.BACKGROUND = BACKGROUND; 10985var BORDER_COLOR = 'borderColor'; 10986exports.BORDER_COLOR = BORDER_COLOR; 10987var COLOR = 'color'; 10988exports.COLOR = COLOR; 10989var DISPLAY = 'display'; 10990exports.DISPLAY = DISPLAY; 10991var FLEX = 'flex'; 10992exports.FLEX = FLEX; 10993var WILL_CHANGE = 'willChange'; 10994exports.WILL_CHANGE = WILL_CHANGE; 10995var AUTO = 'AUTO'; 10996exports.AUTO = AUTO; 10997var COMMA_DELIMITER = ','; 10998exports.COMMA_DELIMITER = COMMA_DELIMITER; 10999var COLON_DELIMITER = ':'; 11000exports.COLON_DELIMITER = COLON_DELIMITER; 11001var BAR_DELIMITER = '|'; 11002exports.BAR_DELIMITER = BAR_DELIMITER; 11003var CHILDREN = 'CHILDREN'; 11004exports.CHILDREN = CHILDREN; 11005var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; 11006exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; 11007var SIBLINGS = 'SIBLINGS'; 11008exports.SIBLINGS = SIBLINGS; 11009var PARENT = 'PARENT'; 11010exports.PARENT = PARENT; 11011var PRESERVE_3D = 'preserve-3d'; 11012exports.PRESERVE_3D = PRESERVE_3D; 11013var HTML_ELEMENT = 'HTML_ELEMENT'; 11014exports.HTML_ELEMENT = HTML_ELEMENT; 11015var PLAIN_OBJECT = 'PLAIN_OBJECT'; 11016exports.PLAIN_OBJECT = PLAIN_OBJECT; 11017var ABSTRACT_NODE = 'ABSTRACT_NODE'; 11018exports.ABSTRACT_NODE = ABSTRACT_NODE; 11019var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; 11020exports.RENDER_TRANSFORM = RENDER_TRANSFORM; 11021var RENDER_GENERAL = 'RENDER_GENERAL'; 11022exports.RENDER_GENERAL = RENDER_GENERAL; 11023var RENDER_STYLE = 'RENDER_STYLE'; 11024exports.RENDER_STYLE = RENDER_STYLE; 11025var RENDER_PLUGIN = 'RENDER_PLUGIN'; 11026exports.RENDER_PLUGIN = RENDER_PLUGIN; 11027 11028/***/ }), 11029/* 195 */ 11030/***/ (function(module, exports, __webpack_require__) { 11031 11032"use strict"; 11033 11034 11035var _interopRequireDefault2 = __webpack_require__(0); 11036 11037var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 11038
11039var _Object$create; 11040 11041var _interopRequireDefault = __webpack_require__(0); 11042 11043Object.defineProperty(exports, "__esModule", { 11044 value: true 11045}); 11046exports.ixRequest = void 0; 11047 11048var _extends2 = _interopRequireDefault(__webpack_require__(30)); 11049 11050var _constants = __webpack_require__(4); 11051 11052var _timm = __webpack_require__(22); 11053 11054var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 11055 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 11056 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 11057 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 11058 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; 11059var initialState = { 11060 preview: {}, 11061 playback: {}, 11062 stop: {}, 11063 clear: {} 11064}; 11065var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { 11066 value: 'preview' 11067}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { 11068 value: 'playback' 11069}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { 11070 value: 'stop' 11071}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { 11072 value: 'clear' 11073}), _Object$create)); 11074 11075var ixRequest = function ixRequest() { 11076 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 11077 var action = arguments.length > 1 ? arguments[1] : undefined; 11078 11079 if (action.type in stateKeys) { 11080 var key = [stateKeys[action.type]]; 11081 return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); 11082 } 11083 11084 return state; 11085}; 11086 11087exports.ixRequest = ixRequest; 11088 11089/***/ }), 11090/* 196 */ 11091/***/ (function(module, exports, __webpack_require__) { 11092 11093"use strict"; 11094 11095 11096Object.defineProperty(exports, "__esModule", { 11097 value: true 11098}); 11099exports.ixSession = void 0; 11100 11101var _constants = __webpack_require__(4); 11102 11103var _timm = __webpack_require__(22); 11104 11105var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 11106 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 11107 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 11108 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 11109 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 11110 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 11111 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 11112 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 11113 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 11114 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 11115 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 11116var initialState = { 11117 active: false, 11118 tick: 0, 11119 eventListeners: [], 11120 eventState: {}, 11121 playbackState: {}, 11122 viewportWidth: 0, 11123 mediaQueryKey: null, 11124 hasBoundaryNodes: false, 11125 hasDefinedMediaQueries: false, 11126 reducedMotion: false 11127}; 11128var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe 11129 11130var ixSession = function ixSession() { 11131 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 11132 var action = arguments.length > 1 ? arguments[1] : undefined; 11133 11134 switch (action.type) { 11135 case IX2_SESSION_INITIALIZED: 11136 { 11137 var _action$payload = action.payload, 11138 hasBoundaryNodes = _action$payload.hasBoundaryNodes, 11139 reducedMotion = _action$payload.reducedMotion; 11140 return (0, _timm.merge)(state, { 11141 hasBoundaryNodes: hasBoundaryNodes, 11142 reducedMotion: reducedMotion 11143 }); 11144 } 11145 11146 case IX2_SESSION_STARTED: 11147 { 11148 return (0, _timm.set)(state, 'active', true); 11149 } 11150 11151 case IX2_TEST_FRAME_RENDERED: 11152 { 11153 var _action$payload$step = action.payload.step, 11154 step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; 11155 return (0, _timm.set)(state, 'tick', state.tick + step); 11156 } 11157 11158 case IX2_SESSION_STOPPED: 11159 { 11160 return initialState; 11161 } 11162 11163 case IX2_ANIMATION_FRAME_CHANGED: 11164 { 11165 var now = action.payload.now; 11166 return (0, _timm.set)(state, 'tick', now); 11167 } 11168 11169 case IX2_EVENT_LISTENER_ADDED: 11170 { 11171 var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); 11172 return (0, _timm.set)(state, 'eventListeners', eventListeners); 11173 } 11174 11175 case IX2_EVENT_STATE_CHANGED: 11176 { 11177 var _action$payload2 = action.payload, 11178 stateKey = _action$payload2.stateKey, 11179 newState = _action$payload2.newState; 11180 return (0, _timm.setIn)(state, ['eventState', stateKey], newState); 11181 } 11182 11183 case IX2_ACTION_LIST_PLAYBACK_CHANGED: 11184 { 11185 var _action$payload3 = action.payload, 11186 actionListId = _action$payload3.actionListId, 11187 isPlaying = _action$payload3.isPlaying; 11188 return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); 11189 } 11190 11191 case IX2_VIEWPORT_WIDTH_CHANGED: 11192 { 11193 var _action$payload4 = action.payload, 11194 width = _action$payload4.width, 11195 mediaQueries = _action$payload4.mediaQueries; 11196 var mediaQueryCount = mediaQueries.length; 11197 var mediaQueryKey = null; 11198 11199 for (var i = 0; i < mediaQueryCount; i++) { 11200 var _mediaQueries$i = mediaQueries[i], 11201 key = _mediaQueries$i.key, 11202 min = _mediaQueries$i.min, 11203 max = _mediaQueries$i.max; 11204 11205 if (width >= min && width <= max) { 11206 mediaQueryKey = key; 11207 break; 11208 } 11209 } 11210 11211 return (0, _timm.merge)(state, { 11212 viewportWidth: width, 11213 mediaQueryKey: mediaQueryKey 11214 }); 11215 } 11216 11217 case IX2_MEDIA_QUERIES_DEFINED: 11218 { 11219 return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); 11220 } 11221 11222 default: 11223 { 11224 return state; 11225 } 11226 } 11227}; 11228 11229exports.ixSession = ixSession; 11230 11231/***/ }), 11232/* 197 */ 11233/***/ (function(module, exports, __webpack_require__) { 11234 11235var baseIsMatch = __webpack_require__(198), 11236 getMatchData = __webpack_require__(250), 11237 matchesStrictComparable = __webpack_require__(111); 11238 11239/** 11240 * The base implementation of `_.matches` which doesn't clone `source`. 11241 * 11242 * @private 11243 * @param {Object} source The object of property values to match. 11244 * @returns {Function} Returns the new spec function. 11245 */ 11246function baseMatches(source) { 11247 var matchData = getMatchData(source); 11248 if (matchData.length == 1 && matchData[0][2]) { 11249 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 11250 } 11251 return function(object) { 11252 return object === source || baseIsMatch(object, source, matchData); 11253 }; 11254} 11255 11256module.exports = baseMatches; 11257 11258 11259/***/ }), 11260/* 198 */ 11261/***/ (function(module, exports, __webpack_require__) { 11262 11263var Stack = __webpack_require__(97), 11264 baseIsEqual = __webpack_require__(101); 11265 11266/** Used to compose bitmasks for value comparisons. */ 11267var COMPARE_PARTIAL_FLAG = 1, 11268 COMPARE_UNORDERED_FLAG = 2; 11269 11270/** 11271 * The base implementation of `_.isMatch` without support for iteratee shorthands. 11272 * 11273 * @private 11274 * @param {Object} object The object to inspect. 11275 * @param {Object} source The object of property values to match. 11276 * @param {Array} matchData The property names, values, and compare flags to match. 11277 * @param {Function} [customizer] The function to customize comparisons. 11278 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 11279 */ 11280function baseIsMatch(object, source, matchData, customizer) { 11281 var index = matchData.length, 11282 length = index, 11283 noCustomizer = !customizer; 11284 11285 if (object == null) { 11286 return !length; 11287 } 11288 object = Object(object); 11289 while (index--) { 11290 var data = matchData[index]; 11291 if ((noCustomizer && data[2]) 11292 ? data[1] !== object[data[0]] 11293 : !(data[0] in object) 11294 ) { 11295 return false;
vendor: 4,246 bytes, lines 11296-11512
11296 } 11297 } 11298 while (++index < length) { 11299 data = matchData[index]; 11300 var key = data[0], 11301 objValue = object[key], 11302 srcValue = data[1]; 11303 11304 if (noCustomizer && data[2]) { 11305 if (objValue === undefined && !(key in object)) { 11306 return false; 11307 } 11308 } else { 11309 var stack = new Stack; 11310 if (customizer) { 11311 var result = customizer(objValue, srcValue, key, object, source, stack); 11312 } 11313 if (!(result === undefined 11314 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 11315 : result 11316 )) { 11317 return false; 11318 } 11319 } 11320 } 11321 return true; 11322} 11323 11324module.exports = baseIsMatch; 11325 11326 11327/***/ }), 11328/* 199 */ 11329/***/ (function(module, exports) { 11330 11331/** 11332 * Removes all key-value entries from the list cache. 11333 * 11334 * @private 11335 * @name clear 11336 * @memberOf ListCache 11337 */ 11338function listCacheClear() { 11339 this.__data__ = []; 11340 this.size = 0; 11341} 11342 11343module.exports = listCacheClear; 11344 11345 11346/***/ }), 11347/* 200 */ 11348/***/ (function(module, exports, __webpack_require__) { 11349 11350var assocIndexOf = __webpack_require__(32); 11351 11352/** Used for built-in method references. */ 11353var arrayProto = Array.prototype; 11354 11355/** Built-in value references. */ 11356var splice = arrayProto.splice; 11357 11358/** 11359 * Removes `key` and its value from the list cache. 11360 * 11361 * @private 11362 * @name delete 11363 * @memberOf ListCache 11364 * @param {string} key The key of the value to remove. 11365 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11366 */ 11367function listCacheDelete(key) { 11368 var data = this.__data__, 11369 index = assocIndexOf(data, key); 11370 11371 if (index < 0) { 11372 return false; 11373 } 11374 var lastIndex = data.length - 1; 11375 if (index == lastIndex) { 11376 data.pop(); 11377 } else { 11378 splice.call(data, index, 1); 11379 } 11380 --this.size; 11381 return true; 11382} 11383 11384module.exports = listCacheDelete; 11385 11386 11387/***/ }), 11388/* 201 */ 11389/***/ (function(module, exports, __webpack_require__) { 11390 11391var assocIndexOf = __webpack_require__(32); 11392 11393/** 11394 * Gets the list cache value for `key`. 11395 * 11396 * @private 11397 * @name get 11398 * @memberOf ListCache 11399 * @param {string} key The key of the value to get. 11400 * @returns {*} Returns the entry value. 11401 */ 11402function listCacheGet(key) { 11403 var data = this.__data__, 11404 index = assocIndexOf(data, key); 11405 11406 return index < 0 ? undefined : data[index][1]; 11407} 11408 11409module.exports = listCacheGet; 11410 11411 11412/***/ }), 11413/* 202 */ 11414/***/ (function(module, exports, __webpack_require__) { 11415 11416var assocIndexOf = __webpack_require__(32); 11417 11418/** 11419 * Checks if a list cache value for `key` exists. 11420 * 11421 * @private 11422 * @name has 11423 * @memberOf ListCache 11424 * @param {string} key The key of the entry to check. 11425 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11426 */ 11427function listCacheHas(key) { 11428 return assocIndexOf(this.__data__, key) > -1; 11429} 11430 11431module.exports = listCacheHas; 11432 11433 11434/***/ }), 11435/* 203 */ 11436/***/ (function(module, exports, __webpack_require__) { 11437 11438var assocIndexOf = __webpack_require__(32); 11439 11440/** 11441 * Sets the list cache `key` to `value`. 11442 * 11443 * @private 11444 * @name set 11445 * @memberOf ListCache 11446 * @param {string} key The key of the value to set. 11447 * @param {*} value The value to set. 11448 * @returns {Object} Returns the list cache instance. 11449 */ 11450function listCacheSet(key, value) { 11451 var data = this.__data__, 11452 index = assocIndexOf(data, key); 11453 11454 if (index < 0) { 11455 ++this.size; 11456 data.push([key, value]); 11457 } else { 11458 data[index][1] = value; 11459 } 11460 return this; 11461} 11462 11463module.exports = listCacheSet; 11464 11465 11466/***/ }), 11467/* 204 */ 11468/***/ (function(module, exports, __webpack_require__) { 11469 11470var ListCache = __webpack_require__(31); 11471 11472/** 11473 * Removes all key-value entries from the stack. 11474 * 11475 * @private 11476 * @name clear 11477 * @memberOf Stack 11478 */ 11479function stackClear() { 11480 this.__data__ = new ListCache; 11481 this.size = 0; 11482} 11483 11484module.exports = stackClear; 11485 11486 11487/***/ }), 11488/* 205 */ 11489/***/ (function(module, exports) { 11490 11491/** 11492 * Removes `key` and its value from the stack. 11493 * 11494 * @private 11495 * @name delete 11496 * @memberOf Stack 11497 * @param {string} key The key of the value to remove. 11498 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11499 */ 11500function stackDelete(key) { 11501 var data = this.__data__, 11502 result = data['delete'](key); 11503 11504 this.size = data.size; 11505 return result; 11506} 11507 11508module.exports = stackDelete; 11509 11510 11511/***/ }), 11512/* 206 */
vendor: 11,192 bytes, lines 11513-12009
11513/***/ (function(module, exports) { 11514 11515/** 11516 * Gets the stack value for `key`. 11517 * 11518 * @private 11519 * @name get 11520 * @memberOf Stack 11521 * @param {string} key The key of the value to get. 11522 * @returns {*} Returns the entry value. 11523 */ 11524function stackGet(key) { 11525 return this.__data__.get(key); 11526} 11527 11528module.exports = stackGet; 11529 11530 11531/***/ }), 11532/* 207 */ 11533/***/ (function(module, exports) { 11534 11535/** 11536 * Checks if a stack value for `key` exists. 11537 * 11538 * @private 11539 * @name has 11540 * @memberOf Stack 11541 * @param {string} key The key of the entry to check. 11542 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11543 */ 11544function stackHas(key) { 11545 return this.__data__.has(key); 11546} 11547 11548module.exports = stackHas; 11549 11550 11551/***/ }), 11552/* 208 */ 11553/***/ (function(module, exports, __webpack_require__) { 11554 11555var ListCache = __webpack_require__(31), 11556 Map = __webpack_require__(50), 11557 MapCache = __webpack_require__(51); 11558 11559/** Used as the size to enable large array optimizations. */ 11560var LARGE_ARRAY_SIZE = 200; 11561 11562/** 11563 * Sets the stack `key` to `value`. 11564 * 11565 * @private 11566 * @name set 11567 * @memberOf Stack 11568 * @param {string} key The key of the value to set. 11569 * @param {*} value The value to set. 11570 * @returns {Object} Returns the stack cache instance. 11571 */ 11572function stackSet(key, value) { 11573 var data = this.__data__; 11574 if (data instanceof ListCache) { 11575 var pairs = data.__data__; 11576 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 11577 pairs.push([key, value]); 11578 this.size = ++data.size; 11579 return this; 11580 } 11581 data = this.__data__ = new MapCache(pairs); 11582 } 11583 data.set(key, value); 11584 this.size = data.size; 11585 return this; 11586} 11587 11588module.exports = stackSet; 11589 11590 11591/***/ }), 11592/* 209 */ 11593/***/ (function(module, exports, __webpack_require__) { 11594 11595var isFunction = __webpack_require__(98), 11596 isMasked = __webpack_require__(212), 11597 isObject = __webpack_require__(8), 11598 toSource = __webpack_require__(100); 11599 11600/** 11601 * Used to match `RegExp` 11602 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 11603 */ 11604var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 11605 11606/** Used to detect host constructors (Safari). */ 11607var reIsHostCtor = /^\[object .+?Constructor\]$/; 11608 11609/** Used for built-in method references. */ 11610var funcProto = Function.prototype, 11611 objectProto = Object.prototype; 11612 11613/** Used to resolve the decompiled source of functions. */ 11614var funcToString = funcProto.toString; 11615 11616/** Used to check objects for own properties. */ 11617var hasOwnProperty = objectProto.hasOwnProperty; 11618 11619/** Used to detect if a method is native. */ 11620var reIsNative = RegExp('^' + 11621 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 11622 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 11623); 11624 11625/** 11626 * The base implementation of `_.isNative` without bad shim checks. 11627 * 11628 * @private 11629 * @param {*} value The value to check. 11630 * @returns {boolean} Returns `true` if `value` is a native function, 11631 * else `false`. 11632 */ 11633function baseIsNative(value) { 11634 if (!isObject(value) || isMasked(value)) { 11635 return false; 11636 } 11637 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 11638 return pattern.test(toSource(value)); 11639} 11640 11641module.exports = baseIsNative; 11642 11643 11644/***/ }), 11645/* 210 */ 11646/***/ (function(module, exports, __webpack_require__) { 11647 11648var Symbol = __webpack_require__(23); 11649 11650/** Used for built-in method references. */ 11651var objectProto = Object.prototype; 11652 11653/** Used to check objects for own properties. */ 11654var hasOwnProperty = objectProto.hasOwnProperty; 11655 11656/** 11657 * Used to resolve the 11658 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 11659 * of values. 11660 */ 11661var nativeObjectToString = objectProto.toString; 11662 11663/** Built-in value references. */ 11664var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 11665 11666/** 11667 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 11668 * 11669 * @private 11670 * @param {*} value The value to query. 11671 * @returns {string} Returns the raw `toStringTag`. 11672 */ 11673function getRawTag(value) { 11674 var isOwn = hasOwnProperty.call(value, symToStringTag), 11675 tag = value[symToStringTag]; 11676 11677 try { 11678 value[symToStringTag] = undefined; 11679 var unmasked = true; 11680 } catch (e) {} 11681 11682 var result = nativeObjectToString.call(value); 11683 if (unmasked) { 11684 if (isOwn) { 11685 value[symToStringTag] = tag; 11686 } else { 11687 delete value[symToStringTag]; 11688 } 11689 } 11690 return result; 11691} 11692 11693module.exports = getRawTag; 11694 11695 11696/***/ }), 11697/* 211 */ 11698/***/ (function(module, exports) { 11699 11700/** Used for built-in method references. */ 11701var objectProto = Object.prototype; 11702 11703/** 11704 * Used to resolve the 11705 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 11706 * of values. 11707 */ 11708var nativeObjectToString = objectProto.toString; 11709 11710/** 11711 * Converts `value` to a string using `Object.prototype.toString`. 11712 * 11713 * @private 11714 * @param {*} value The value to convert. 11715 * @returns {string} Returns the converted string. 11716 */ 11717function objectToString(value) { 11718 return nativeObjectToString.call(value); 11719} 11720 11721module.exports = objectToString; 11722 11723 11724/***/ }), 11725/* 212 */ 11726/***/ (function(module, exports, __webpack_require__) { 11727 11728var coreJsData = __webpack_require__(213); 11729 11730/** Used to detect methods masquerading as native. */ 11731var maskSrcKey = (function() { 11732 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 11733 return uid ? ('Symbol(src)_1.' + uid) : ''; 11734}()); 11735 11736/** 11737 * Checks if `func` has its source masked. 11738 * 11739 * @private 11740 * @param {Function} func The function to check. 11741 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 11742 */ 11743function isMasked(func) { 11744 return !!maskSrcKey && (maskSrcKey in func); 11745} 11746 11747module.exports = isMasked; 11748 11749 11750/***/ }), 11751/* 213 */ 11752/***/ (function(module, exports, __webpack_require__) { 11753 11754var root = __webpack_require__(6); 11755 11756/** Used to detect overreaching core-js shims. */ 11757var coreJsData = root['__core-js_shared__']; 11758 11759module.exports = coreJsData; 11760 11761 11762/***/ }), 11763/* 214 */ 11764/***/ (function(module, exports) { 11765 11766/** 11767 * Gets the value at `key` of `object`. 11768 * 11769 * @private 11770 * @param {Object} [object] The object to query. 11771 * @param {string} key The key of the property to get. 11772 * @returns {*} Returns the property value. 11773 */ 11774function getValue(object, key) { 11775 return object == null ? undefined : object[key]; 11776} 11777 11778module.exports = getValue; 11779 11780 11781/***/ }), 11782/* 215 */ 11783/***/ (function(module, exports, __webpack_require__) { 11784 11785var Hash = __webpack_require__(216), 11786 ListCache = __webpack_require__(31), 11787 Map = __webpack_require__(50); 11788 11789/** 11790 * Removes all key-value entries from the map. 11791 * 11792 * @private 11793 * @name clear 11794 * @memberOf MapCache 11795 */ 11796function mapCacheClear() { 11797 this.size = 0; 11798 this.__data__ = { 11799 'hash': new Hash, 11800 'map': new (Map || ListCache), 11801 'string': new Hash 11802 }; 11803} 11804 11805module.exports = mapCacheClear; 11806 11807 11808/***/ }), 11809/* 216 */ 11810/***/ (function(module, exports, __webpack_require__) { 11811 11812var hashClear = __webpack_require__(217), 11813 hashDelete = __webpack_require__(218), 11814 hashGet = __webpack_require__(219), 11815 hashHas = __webpack_require__(220), 11816 hashSet = __webpack_require__(221); 11817 11818/** 11819 * Creates a hash object. 11820 * 11821 * @private 11822 * @constructor 11823 * @param {Array} [entries] The key-value pairs to cache. 11824 */ 11825function Hash(entries) { 11826 var index = -1, 11827 length = entries == null ? 0 : entries.length; 11828 11829 this.clear(); 11830 while (++index < length) { 11831 var entry = entries[index]; 11832 this.set(entry[0], entry[1]); 11833 } 11834} 11835 11836// Add methods to `Hash`. 11837Hash.prototype.clear = hashClear; 11838Hash.prototype['delete'] = hashDelete; 11839Hash.prototype.get = hashGet; 11840Hash.prototype.has = hashHas; 11841Hash.prototype.set = hashSet; 11842 11843module.exports = Hash; 11844 11845 11846/***/ }), 11847/* 217 */ 11848/***/ (function(module, exports, __webpack_require__) { 11849 11850var nativeCreate = __webpack_require__(33); 11851 11852/** 11853 * Removes all key-value entries from the hash. 11854 * 11855 * @private 11856 * @name clear 11857 * @memberOf Hash 11858 */ 11859function hashClear() { 11860 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 11861 this.size = 0; 11862} 11863 11864module.exports = hashClear; 11865 11866 11867/***/ }), 11868/* 218 */ 11869/***/ (function(module, exports) { 11870 11871/** 11872 * Removes `key` and its value from the hash. 11873 * 11874 * @private 11875 * @name delete 11876 * @memberOf Hash 11877 * @param {Object} hash The hash to modify. 11878 * @param {string} key The key of the value to remove. 11879 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11880 */ 11881function hashDelete(key) { 11882 var result = this.has(key) && delete this.__data__[key]; 11883 this.size -= result ? 1 : 0; 11884 return result; 11885} 11886 11887module.exports = hashDelete; 11888 11889 11890/***/ }), 11891/* 219 */ 11892/***/ (function(module, exports, __webpack_require__) { 11893 11894var nativeCreate = __webpack_require__(33); 11895 11896/** Used to stand-in for `undefined` hash values. */ 11897var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11898 11899/** Used for built-in method references. */ 11900var objectProto = Object.prototype; 11901 11902/** Used to check objects for own properties. */ 11903var hasOwnProperty = objectProto.hasOwnProperty; 11904 11905/** 11906 * Gets the hash value for `key`. 11907 * 11908 * @private 11909 * @name get 11910 * @memberOf Hash 11911 * @param {string} key The key of the value to get. 11912 * @returns {*} Returns the entry value. 11913 */ 11914function hashGet(key) { 11915 var data = this.__data__; 11916 if (nativeCreate) { 11917 var result = data[key]; 11918 return result === HASH_UNDEFINED ? undefined : result; 11919 } 11920 return hasOwnProperty.call(data, key) ? data[key] : undefined; 11921} 11922 11923module.exports = hashGet; 11924 11925 11926/***/ }), 11927/* 220 */ 11928/***/ (function(module, exports, __webpack_require__) { 11929 11930var nativeCreate = __webpack_require__(33); 11931 11932/** Used for built-in method references. */ 11933var objectProto = Object.prototype; 11934 11935/** Used to check objects for own properties. */ 11936var hasOwnProperty = objectProto.hasOwnProperty; 11937 11938/** 11939 * Checks if a hash value for `key` exists. 11940 * 11941 * @private 11942 * @name has 11943 * @memberOf Hash 11944 * @param {string} key The key of the entry to check. 11945 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11946 */ 11947function hashHas(key) { 11948 var data = this.__data__; 11949 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 11950} 11951 11952module.exports = hashHas; 11953 11954 11955/***/ }), 11956/* 221 */ 11957/***/ (function(module, exports, __webpack_require__) { 11958 11959var nativeCreate = __webpack_require__(33); 11960 11961/** Used to stand-in for `undefined` hash values. */ 11962var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11963 11964/** 11965 * Sets the hash `key` to `value`. 11966 * 11967 * @private 11968 * @name set 11969 * @memberOf Hash 11970 * @param {string} key The key of the value to set. 11971 * @param {*} value The value to set. 11972 * @returns {Object} Returns the hash instance. 11973 */ 11974function hashSet(key, value) { 11975 var data = this.__data__; 11976 this.size += this.has(key) ? 0 : 1; 11977 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 11978 return this; 11979} 11980 11981module.exports = hashSet; 11982 11983 11984/***/ }), 11985/* 222 */ 11986/***/ (function(module, exports, __webpack_require__) { 11987 11988var getMapData = __webpack_require__(34); 11989 11990/** 11991 * Removes `key` and its value from the map. 11992 * 11993 * @private 11994 * @name delete 11995 * @memberOf MapCache 11996 * @param {string} key The key of the value to remove. 11997 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11998 */ 11999function mapCacheDelete(key) { 12000 var result = getMapData(this, key)['delete'](key); 12001 this.size -= result ? 1 : 0; 12002 return result; 12003} 12004 12005module.exports = mapCacheDelete; 12006 12007 12008/***/ }), 12009/* 223 */
vendor: 13,823 bytes, lines 12010-12530
12010/***/ (function(module, exports) { 12011 12012/** 12013 * Checks if `value` is suitable for use as unique object key. 12014 * 12015 * @private 12016 * @param {*} value The value to check. 12017 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 12018 */ 12019function isKeyable(value) { 12020 var type = typeof value; 12021 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 12022 ? (value !== '__proto__') 12023 : (value === null); 12024} 12025 12026module.exports = isKeyable; 12027 12028 12029/***/ }), 12030/* 224 */ 12031/***/ (function(module, exports, __webpack_require__) { 12032 12033var getMapData = __webpack_require__(34); 12034 12035/** 12036 * Gets the map value for `key`. 12037 * 12038 * @private 12039 * @name get 12040 * @memberOf MapCache 12041 * @param {string} key The key of the value to get. 12042 * @returns {*} Returns the entry value. 12043 */ 12044function mapCacheGet(key) { 12045 return getMapData(this, key).get(key); 12046} 12047 12048module.exports = mapCacheGet; 12049 12050 12051/***/ }), 12052/* 225 */ 12053/***/ (function(module, exports, __webpack_require__) { 12054 12055var getMapData = __webpack_require__(34); 12056 12057/** 12058 * Checks if a map value for `key` exists. 12059 * 12060 * @private 12061 * @name has 12062 * @memberOf MapCache 12063 * @param {string} key The key of the entry to check. 12064 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 12065 */ 12066function mapCacheHas(key) { 12067 return getMapData(this, key).has(key); 12068} 12069 12070module.exports = mapCacheHas; 12071 12072 12073/***/ }), 12074/* 226 */ 12075/***/ (function(module, exports, __webpack_require__) { 12076 12077var getMapData = __webpack_require__(34); 12078 12079/** 12080 * Sets the map `key` to `value`. 12081 * 12082 * @private 12083 * @name set 12084 * @memberOf MapCache 12085 * @param {string} key The key of the value to set. 12086 * @param {*} value The value to set. 12087 * @returns {Object} Returns the map cache instance. 12088 */ 12089function mapCacheSet(key, value) { 12090 var data = getMapData(this, key), 12091 size = data.size; 12092 12093 data.set(key, value); 12094 this.size += data.size == size ? 0 : 1; 12095 return this; 12096} 12097 12098module.exports = mapCacheSet; 12099 12100 12101/***/ }), 12102/* 227 */ 12103/***/ (function(module, exports, __webpack_require__) { 12104 12105var Stack = __webpack_require__(97), 12106 equalArrays = __webpack_require__(102), 12107 equalByTag = __webpack_require__(233), 12108 equalObjects = __webpack_require__(237), 12109 getTag = __webpack_require__(59), 12110 isArray = __webpack_require__(2), 12111 isBuffer = __webpack_require__(53), 12112 isTypedArray = __webpack_require__(55); 12113 12114/** Used to compose bitmasks for value comparisons. */ 12115var COMPARE_PARTIAL_FLAG = 1; 12116 12117/** `Object#toString` result references. */ 12118var argsTag = '[object Arguments]', 12119 arrayTag = '[object Array]', 12120 objectTag = '[object Object]'; 12121 12122/** Used for built-in method references. */ 12123var objectProto = Object.prototype; 12124 12125/** Used to check objects for own properties. */ 12126var hasOwnProperty = objectProto.hasOwnProperty; 12127 12128/** 12129 * A specialized version of `baseIsEqual` for arrays and objects which performs 12130 * deep comparisons and tracks traversed objects enabling objects with circular 12131 * references to be compared. 12132 * 12133 * @private 12134 * @param {Object} object The object to compare. 12135 * @param {Object} other The other object to compare. 12136 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12137 * @param {Function} customizer The function to customize comparisons. 12138 * @param {Function} equalFunc The function to determine equivalents of values. 12139 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 12140 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12141 */ 12142function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 12143 var objIsArr = isArray(object), 12144 othIsArr = isArray(other), 12145 objTag = objIsArr ? arrayTag : getTag(object), 12146 othTag = othIsArr ? arrayTag : getTag(other); 12147 12148 objTag = objTag == argsTag ? objectTag : objTag; 12149 othTag = othTag == argsTag ? objectTag : othTag; 12150 12151 var objIsObj = objTag == objectTag, 12152 othIsObj = othTag == objectTag, 12153 isSameTag = objTag == othTag; 12154 12155 if (isSameTag && isBuffer(object)) { 12156 if (!isBuffer(other)) { 12157 return false; 12158 } 12159 objIsArr = true; 12160 objIsObj = false; 12161 } 12162 if (isSameTag && !objIsObj) { 12163 stack || (stack = new Stack); 12164 return (objIsArr || isTypedArray(object)) 12165 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 12166 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 12167 } 12168 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 12169 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 12170 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 12171 12172 if (objIsWrapped || othIsWrapped) { 12173 var objUnwrapped = objIsWrapped ? object.value() : object, 12174 othUnwrapped = othIsWrapped ? other.value() : other; 12175 12176 stack || (stack = new Stack); 12177 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 12178 } 12179 } 12180 if (!isSameTag) { 12181 return false; 12182 } 12183 stack || (stack = new Stack); 12184 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 12185} 12186 12187module.exports = baseIsEqualDeep; 12188 12189 12190/***/ }), 12191/* 228 */ 12192/***/ (function(module, exports, __webpack_require__) { 12193 12194var MapCache = __webpack_require__(51), 12195 setCacheAdd = __webpack_require__(229), 12196 setCacheHas = __webpack_require__(230); 12197 12198/** 12199 * 12200 * Creates an array cache object to store unique values. 12201 * 12202 * @private 12203 * @constructor 12204 * @param {Array} [values] The values to cache. 12205 */ 12206function SetCache(values) { 12207 var index = -1, 12208 length = values == null ? 0 : values.length; 12209 12210 this.__data__ = new MapCache; 12211 while (++index < length) { 12212 this.add(values[index]); 12213 } 12214} 12215 12216// Add methods to `SetCache`. 12217SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 12218SetCache.prototype.has = setCacheHas; 12219 12220module.exports = SetCache; 12221 12222 12223/***/ }), 12224/* 229 */ 12225/***/ (function(module, exports) { 12226 12227/** Used to stand-in for `undefined` hash values. */ 12228var HASH_UNDEFINED = '__lodash_hash_undefined__'; 12229 12230/** 12231 * Adds `value` to the array cache. 12232 * 12233 * @private 12234 * @name add 12235 * @memberOf SetCache 12236 * @alias push 12237 * @param {*} value The value to cache. 12238 * @returns {Object} Returns the cache instance. 12239 */ 12240function setCacheAdd(value) { 12241 this.__data__.set(value, HASH_UNDEFINED); 12242 return this; 12243} 12244 12245module.exports = setCacheAdd; 12246 12247 12248/***/ }), 12249/* 230 */ 12250/***/ (function(module, exports) { 12251 12252/** 12253 * Checks if `value` is in the array cache. 12254 * 12255 * @private 12256 * @name has 12257 * @memberOf SetCache 12258 * @param {*} value The value to search for. 12259 * @returns {number} Returns `true` if `value` is found, else `false`. 12260 */ 12261function setCacheHas(value) { 12262 return this.__data__.has(value); 12263} 12264 12265module.exports = setCacheHas; 12266 12267 12268/***/ }), 12269/* 231 */ 12270/***/ (function(module, exports) { 12271 12272/** 12273 * A specialized version of `_.some` for arrays without support for iteratee 12274 * shorthands. 12275 * 12276 * @private 12277 * @param {Array} [array] The array to iterate over. 12278 * @param {Function} predicate The function invoked per iteration. 12279 * @returns {boolean} Returns `true` if any element passes the predicate check, 12280 * else `false`. 12281 */ 12282function arraySome(array, predicate) { 12283 var index = -1, 12284 length = array == null ? 0 : array.length; 12285 12286 while (++index < length) { 12287 if (predicate(array[index], index, array)) { 12288 return true; 12289 } 12290 } 12291 return false; 12292} 12293 12294module.exports = arraySome; 12295 12296 12297/***/ }), 12298/* 232 */ 12299/***/ (function(module, exports) { 12300 12301/** 12302 * Checks if a `cache` value for `key` exists. 12303 * 12304 * @private 12305 * @param {Object} cache The cache to query. 12306 * @param {string} key The key of the entry to check. 12307 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 12308 */ 12309function cacheHas(cache, key) { 12310 return cache.has(key); 12311} 12312 12313module.exports = cacheHas; 12314 12315 12316/***/ }), 12317/* 233 */ 12318/***/ (function(module, exports, __webpack_require__) { 12319 12320var Symbol = __webpack_require__(23), 12321 Uint8Array = __webpack_require__(234), 12322 eq = __webpack_require__(49), 12323 equalArrays = __webpack_require__(102), 12324 mapToArray = __webpack_require__(235), 12325 setToArray = __webpack_require__(236); 12326 12327/** Used to compose bitmasks for value comparisons. */ 12328var COMPARE_PARTIAL_FLAG = 1, 12329 COMPARE_UNORDERED_FLAG = 2; 12330 12331/** `Object#toString` result references. */ 12332var boolTag = '[object Boolean]', 12333 dateTag = '[object Date]', 12334 errorTag = '[object Error]', 12335 mapTag = '[object Map]', 12336 numberTag = '[object Number]', 12337 regexpTag = '[object RegExp]', 12338 setTag = '[object Set]', 12339 stringTag = '[object String]', 12340 symbolTag = '[object Symbol]'; 12341 12342var arrayBufferTag = '[object ArrayBuffer]', 12343 dataViewTag = '[object DataView]'; 12344 12345/** Used to convert symbols to primitives and strings. */ 12346var symbolProto = Symbol ? Symbol.prototype : undefined, 12347 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; 12348 12349/** 12350 * A specialized version of `baseIsEqualDeep` for comparing objects of 12351 * the same `toStringTag`. 12352 * 12353 * **Note:** This function only supports comparing values with tags of 12354 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 12355 * 12356 * @private 12357 * @param {Object} object The object to compare. 12358 * @param {Object} other The other object to compare. 12359 * @param {string} tag The `toStringTag` of the objects to compare. 12360 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12361 * @param {Function} customizer The function to customize comparisons. 12362 * @param {Function} equalFunc The function to determine equivalents of values. 12363 * @param {Object} stack Tracks traversed `object` and `other` objects. 12364 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12365 */ 12366function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 12367 switch (tag) { 12368 case dataViewTag: 12369 if ((object.byteLength != other.byteLength) || 12370 (object.byteOffset != other.byteOffset)) { 12371 return false; 12372 } 12373 object = object.buffer; 12374 other = other.buffer; 12375 12376 case arrayBufferTag: 12377 if ((object.byteLength != other.byteLength) || 12378 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 12379 return false; 12380 } 12381 return true; 12382 12383 case boolTag: 12384 case dateTag: 12385 case numberTag: 12386 // Coerce booleans to `1` or `0` and dates to milliseconds. 12387 // Invalid dates are coerced to `NaN`. 12388 return eq(+object, +other); 12389 12390 case errorTag: 12391 return object.name == other.name && object.message == other.message; 12392 12393 case regexpTag: 12394 case stringTag: 12395 // Coerce regexes to strings and treat strings, primitives and objects, 12396 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 12397 // for more details. 12398 return object == (other + ''); 12399 12400 case mapTag: 12401 var convert = mapToArray; 12402 12403 case setTag: 12404 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 12405 convert || (convert = setToArray); 12406 12407 if (object.size != other.size && !isPartial) { 12408 return false; 12409 } 12410 // Assume cyclic values are equal. 12411 var stacked = stack.get(object); 12412 if (stacked) { 12413 return stacked == other; 12414 } 12415 bitmask |= COMPARE_UNORDERED_FLAG; 12416 12417 // Recursively compare objects (susceptible to call stack limits). 12418 stack.set(object, other); 12419 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 12420 stack['delete'](object); 12421 return result; 12422 12423 case symbolTag: 12424 if (symbolValueOf) { 12425 return symbolValueOf.call(object) == symbolValueOf.call(other); 12426 } 12427 } 12428 return false; 12429} 12430 12431module.exports = equalByTag; 12432 12433 12434/***/ }), 12435/* 234 */ 12436/***/ (function(module, exports, __webpack_require__) { 12437 12438var root = __webpack_require__(6); 12439 12440/** Built-in value references. */ 12441var Uint8Array = root.Uint8Array; 12442 12443module.exports = Uint8Array; 12444 12445 12446/***/ }), 12447/* 235 */ 12448/***/ (function(module, exports) { 12449 12450/** 12451 * Converts `map` to its key-value pairs. 12452 * 12453 * @private 12454 * @param {Object} map The map to convert. 12455 * @returns {Array} Returns the key-value pairs. 12456 */ 12457function mapToArray(map) { 12458 var index = -1, 12459 result = Array(map.size); 12460 12461 map.forEach(function(value, key) { 12462 result[++index] = [key, value]; 12463 }); 12464 return result; 12465} 12466 12467module.exports = mapToArray; 12468 12469 12470/***/ }), 12471/* 236 */ 12472/***/ (function(module, exports) { 12473 12474/** 12475 * Converts `set` to an array of its values. 12476 * 12477 * @private 12478 * @param {Object} set The set to convert. 12479 * @returns {Array} Returns the values. 12480 */ 12481function setToArray(set) { 12482 var index = -1, 12483 result = Array(set.size); 12484 12485 set.forEach(function(value) { 12486 result[++index] = value; 12487 }); 12488 return result; 12489} 12490 12491module.exports = setToArray; 12492 12493 12494/***/ }), 12495/* 237 */ 12496/***/ (function(module, exports, __webpack_require__) { 12497 12498var getAllKeys = __webpack_require__(238); 12499 12500/** Used to compose bitmasks for value comparisons. */ 12501var COMPARE_PARTIAL_FLAG = 1; 12502 12503/** Used for built-in method references. */ 12504var objectProto = Object.prototype; 12505 12506/** Used to check objects for own properties. */ 12507var hasOwnProperty = objectProto.hasOwnProperty; 12508 12509/** 12510 * A specialized version of `baseIsEqualDeep` for objects with support for 12511 * partial deep comparisons. 12512 * 12513 * @private 12514 * @param {Object} object The object to compare. 12515 * @param {Object} other The other object to compare. 12516 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12517 * @param {Function} customizer The function to customize comparisons. 12518 * @param {Function} equalFunc The function to determine equivalents of values. 12519 * @param {Object} stack Tracks traversed `object` and `other` objects. 12520 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12521 */ 12522function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 12523 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 12524 objProps = getAllKeys(object), 12525 objLength = objProps.length, 12526 othProps = getAllKeys(other), 12527 othLength = othProps.length; 12528 12529 if (objLength != othLength && !isPartial) { 12530 return false;
vendor: 1,075 bytes, lines 12531-12565
12531 } 12532 var index = objLength; 12533 while (index--) { 12534 var key = objProps[index]; 12535 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 12536 return false; 12537 } 12538 } 12539 // Check that cyclic values are equal. 12540 var objStacked = stack.get(object); 12541 var othStacked = stack.get(other); 12542 if (objStacked && othStacked) { 12543 return objStacked == other && othStacked == object; 12544 } 12545 var result = true; 12546 stack.set(object, other); 12547 stack.set(other, object); 12548 12549 var skipCtor = isPartial; 12550 while (++index < objLength) { 12551 key = objProps[index]; 12552 var objValue = object[key], 12553 othValue = other[key]; 12554 12555 if (customizer) { 12556 var compared = isPartial 12557 ? customizer(othValue, objValue, key, other, object, stack) 12558 : customizer(objValue, othValue, key, object, other, stack); 12559 } 12560 // Recursively compare objects (susceptible to call stack limits). 12561 if (!(compared === undefined 12562 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 12563 : compared 12564 )) { 12565 result = false;
vendor: 10,628 bytes, lines 12566-12973
12566 break; 12567 } 12568 skipCtor || (skipCtor = key == 'constructor'); 12569 } 12570 if (result && !skipCtor) { 12571 var objCtor = object.constructor, 12572 othCtor = other.constructor; 12573 12574 // Non `Object` object instances with different constructors are not equal. 12575 if (objCtor != othCtor && 12576 ('constructor' in object && 'constructor' in other) && 12577 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 12578 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 12579 result = false; 12580 } 12581 } 12582 stack['delete'](object); 12583 stack['delete'](other); 12584 return result; 12585} 12586 12587module.exports = equalObjects; 12588 12589 12590/***/ }), 12591/* 238 */ 12592/***/ (function(module, exports, __webpack_require__) { 12593 12594var baseGetAllKeys = __webpack_require__(103), 12595 getSymbols = __webpack_require__(104), 12596 keys = __webpack_require__(35); 12597 12598/** 12599 * Creates an array of own enumerable property names and symbols of `object`. 12600 * 12601 * @private 12602 * @param {Object} object The object to query. 12603 * @returns {Array} Returns the array of property names and symbols. 12604 */ 12605function getAllKeys(object) { 12606 return baseGetAllKeys(object, keys, getSymbols); 12607} 12608 12609module.exports = getAllKeys; 12610 12611 12612/***/ }), 12613/* 239 */ 12614/***/ (function(module, exports) { 12615 12616/** 12617 * A specialized version of `_.filter` for arrays without support for 12618 * iteratee shorthands. 12619 * 12620 * @private 12621 * @param {Array} [array] The array to iterate over. 12622 * @param {Function} predicate The function invoked per iteration. 12623 * @returns {Array} Returns the new filtered array. 12624 */ 12625function arrayFilter(array, predicate) { 12626 var index = -1, 12627 length = array == null ? 0 : array.length, 12628 resIndex = 0, 12629 result = []; 12630 12631 while (++index < length) { 12632 var value = array[index]; 12633 if (predicate(value, index, array)) { 12634 result[resIndex++] = value; 12635 } 12636 } 12637 return result; 12638} 12639 12640module.exports = arrayFilter; 12641 12642 12643/***/ }), 12644/* 240 */ 12645/***/ (function(module, exports) { 12646 12647/** 12648 * The base implementation of `_.times` without support for iteratee shorthands 12649 * or max array length checks. 12650 * 12651 * @private 12652 * @param {number} n The number of times to invoke `iteratee`. 12653 * @param {Function} iteratee The function invoked per iteration. 12654 * @returns {Array} Returns the array of results. 12655 */ 12656function baseTimes(n, iteratee) { 12657 var index = -1, 12658 result = Array(n); 12659 12660 while (++index < n) { 12661 result[index] = iteratee(index); 12662 } 12663 return result; 12664} 12665 12666module.exports = baseTimes; 12667 12668 12669/***/ }), 12670/* 241 */ 12671/***/ (function(module, exports, __webpack_require__) { 12672 12673var baseGetTag = __webpack_require__(16), 12674 isObjectLike = __webpack_require__(12); 12675 12676/** `Object#toString` result references. */ 12677var argsTag = '[object Arguments]'; 12678 12679/** 12680 * The base implementation of `_.isArguments`. 12681 * 12682 * @private 12683 * @param {*} value The value to check. 12684 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 12685 */ 12686function baseIsArguments(value) { 12687 return isObjectLike(value) && baseGetTag(value) == argsTag; 12688} 12689 12690module.exports = baseIsArguments; 12691 12692 12693/***/ }), 12694/* 242 */ 12695/***/ (function(module, exports) { 12696 12697/** 12698 * This method returns `false`. 12699 * 12700 * @static 12701 * @memberOf _ 12702 * @since 4.13.0 12703 * @category Util 12704 * @returns {boolean} Returns `false`. 12705 * @example 12706 * 12707 * _.times(2, _.stubFalse); 12708 * // => [false, false] 12709 */ 12710function stubFalse() { 12711 return false; 12712} 12713 12714module.exports = stubFalse; 12715 12716 12717/***/ }), 12718/* 243 */ 12719/***/ (function(module, exports, __webpack_require__) { 12720 12721var baseGetTag = __webpack_require__(16), 12722 isLength = __webpack_require__(56), 12723 isObjectLike = __webpack_require__(12); 12724 12725/** `Object#toString` result references. */ 12726var argsTag = '[object Arguments]', 12727 arrayTag = '[object Array]', 12728 boolTag = '[object Boolean]', 12729 dateTag = '[object Date]', 12730 errorTag = '[object Error]', 12731 funcTag = '[object Function]', 12732 mapTag = '[object Map]', 12733 numberTag = '[object Number]', 12734 objectTag = '[object Object]', 12735 regexpTag = '[object RegExp]', 12736 setTag = '[object Set]', 12737 stringTag = '[object String]', 12738 weakMapTag = '[object WeakMap]'; 12739 12740var arrayBufferTag = '[object ArrayBuffer]', 12741 dataViewTag = '[object DataView]', 12742 float32Tag = '[object Float32Array]', 12743 float64Tag = '[object Float64Array]', 12744 int8Tag = '[object Int8Array]', 12745 int16Tag = '[object Int16Array]', 12746 int32Tag = '[object Int32Array]', 12747 uint8Tag = '[object Uint8Array]', 12748 uint8ClampedTag = '[object Uint8ClampedArray]', 12749 uint16Tag = '[object Uint16Array]', 12750 uint32Tag = '[object Uint32Array]'; 12751 12752/** Used to identify `toStringTag` values of typed arrays. */ 12753var typedArrayTags = {}; 12754typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 12755typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 12756typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 12757typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 12758typedArrayTags[uint32Tag] = true; 12759typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 12760typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = 12761typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 12762typedArrayTags[errorTag] = typedArrayTags[funcTag] = 12763typedArrayTags[mapTag] = typedArrayTags[numberTag] = 12764typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 12765typedArrayTags[setTag] = typedArrayTags[stringTag] = 12766typedArrayTags[weakMapTag] = false; 12767 12768/** 12769 * The base implementation of `_.isTypedArray` without Node.js optimizations. 12770 * 12771 * @private 12772 * @param {*} value The value to check. 12773 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 12774 */ 12775function baseIsTypedArray(value) { 12776 return isObjectLike(value) && 12777 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 12778} 12779 12780module.exports = baseIsTypedArray; 12781 12782 12783/***/ }), 12784/* 244 */ 12785/***/ (function(module, exports) { 12786 12787/** 12788 * The base implementation of `_.unary` without support for storing metadata. 12789 * 12790 * @private 12791 * @param {Function} func The function to cap arguments for. 12792 * @returns {Function} Returns the new capped function. 12793 */ 12794function baseUnary(func) { 12795 return function(value) { 12796 return func(value); 12797 }; 12798} 12799 12800module.exports = baseUnary; 12801 12802 12803/***/ }), 12804/* 245 */ 12805/***/ (function(module, exports, __webpack_require__) { 12806 12807/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(99); 12808 12809/** Detect free variable `exports`. */ 12810var freeExports = true && exports && !exports.nodeType && exports; 12811 12812/** Detect free variable `module`. */ 12813var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 12814 12815/** Detect the popular CommonJS extension `module.exports`. */ 12816var moduleExports = freeModule && freeModule.exports === freeExports; 12817 12818/** Detect free variable `process` from Node.js. */ 12819var freeProcess = moduleExports && freeGlobal.process; 12820 12821/** Used to access faster Node.js helpers. */ 12822var nodeUtil = (function() { 12823 try { 12824 // Use `util.types` for Node.js 10+. 12825 var types = freeModule && freeModule.require && freeModule.require('util').types; 12826 12827 if (types) { 12828 return types; 12829 } 12830 12831 // Legacy `process.binding('util')` for Node.js < 10. 12832 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 12833 } catch (e) {} 12834}()); 12835 12836module.exports = nodeUtil; 12837 12838/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(107)(module))) 12839 12840/***/ }), 12841/* 246 */ 12842/***/ (function(module, exports, __webpack_require__) { 12843 12844var overArg = __webpack_require__(108); 12845 12846/* Built-in method references for those with the same name as other `lodash` methods. */ 12847var nativeKeys = overArg(Object.keys, Object); 12848 12849module.exports = nativeKeys; 12850 12851 12852/***/ }), 12853/* 247 */ 12854/***/ (function(module, exports, __webpack_require__) { 12855 12856var getNative = __webpack_require__(11), 12857 root = __webpack_require__(6); 12858 12859/* Built-in method references that are verified to be native. */ 12860var DataView = getNative(root, 'DataView'); 12861 12862module.exports = DataView; 12863 12864 12865/***/ }), 12866/* 248 */ 12867/***/ (function(module, exports, __webpack_require__) { 12868 12869var getNative = __webpack_require__(11), 12870 root = __webpack_require__(6); 12871 12872/* Built-in method references that are verified to be native. */ 12873var Promise = getNative(root, 'Promise'); 12874 12875module.exports = Promise; 12876 12877 12878/***/ }), 12879/* 249 */ 12880/***/ (function(module, exports, __webpack_require__) { 12881 12882var getNative = __webpack_require__(11), 12883 root = __webpack_require__(6); 12884 12885/* Built-in method references that are verified to be native. */ 12886var Set = getNative(root, 'Set'); 12887 12888module.exports = Set; 12889 12890 12891/***/ }), 12892/* 250 */ 12893/***/ (function(module, exports, __webpack_require__) { 12894 12895var isStrictComparable = __webpack_require__(110), 12896 keys = __webpack_require__(35); 12897 12898/** 12899 * Gets the property names, values, and compare flags of `object`. 12900 * 12901 * @private 12902 * @param {Object} object The object to query. 12903 * @returns {Array} Returns the match data of `object`. 12904 */ 12905function getMatchData(object) { 12906 var result = keys(object), 12907 length = result.length; 12908 12909 while (length--) { 12910 var key = result[length], 12911 value = object[key]; 12912 12913 result[length] = [key, value, isStrictComparable(value)]; 12914 } 12915 return result; 12916} 12917 12918module.exports = getMatchData; 12919 12920 12921/***/ }), 12922/* 251 */ 12923/***/ (function(module, exports, __webpack_require__) { 12924 12925var baseIsEqual = __webpack_require__(101), 12926 get = __webpack_require__(60), 12927 hasIn = __webpack_require__(257), 12928 isKey = __webpack_require__(62), 12929 isStrictComparable = __webpack_require__(110), 12930 matchesStrictComparable = __webpack_require__(111), 12931 toKey = __webpack_require__(24); 12932 12933/** Used to compose bitmasks for value comparisons. */ 12934var COMPARE_PARTIAL_FLAG = 1, 12935 COMPARE_UNORDERED_FLAG = 2; 12936 12937/** 12938 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 12939 * 12940 * @private 12941 * @param {string} path The path of the property to get. 12942 * @param {*} srcValue The value to match. 12943 * @returns {Function} Returns the new spec function. 12944 */ 12945function baseMatchesProperty(path, srcValue) { 12946 if (isKey(path) && isStrictComparable(srcValue)) { 12947 return matchesStrictComparable(toKey(path), srcValue); 12948 } 12949 return function(object) { 12950 var objValue = get(object, path); 12951 return (objValue === undefined && objValue === srcValue) 12952 ? hasIn(object, path) 12953 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 12954 }; 12955} 12956 12957module.exports = baseMatchesProperty; 12958 12959 12960/***/ }), 12961/* 252 */ 12962/***/ (function(module, exports, __webpack_require__) { 12963 12964var memoizeCapped = __webpack_require__(253); 12965 12966/** Used to match property names within property paths. */ 12967var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 12968 12969/** Used to match backslashes in property paths. */ 12970var reEscapeChar = /\\(\\)?/g; 12971 12972/** 12973 * Converts `string` to a property path array.
vendor: 5,053 bytes, lines 12974-13167
12974 * 12975 * @private 12976 * @param {string} string The string to convert. 12977 * @returns {Array} Returns the property path array. 12978 */ 12979var stringToPath = memoizeCapped(function(string) { 12980 var result = []; 12981 if (string.charCodeAt(0) === 46 /* . */) { 12982 result.push(''); 12983 } 12984 string.replace(rePropName, function(match, number, quote, subString) { 12985 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 12986 }); 12987 return result; 12988}); 12989 12990module.exports = stringToPath; 12991 12992 12993/***/ }), 12994/* 253 */ 12995/***/ (function(module, exports, __webpack_require__) { 12996 12997var memoize = __webpack_require__(254); 12998 12999/** Used as the maximum memoize cache size. */ 13000var MAX_MEMOIZE_SIZE = 500; 13001 13002/** 13003 * A specialized version of `_.memoize` which clears the memoized function's 13004 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 13005 * 13006 * @private 13007 * @param {Function} func The function to have its output memoized. 13008 * @returns {Function} Returns the new memoized function. 13009 */ 13010function memoizeCapped(func) { 13011 var result = memoize(func, function(key) { 13012 if (cache.size === MAX_MEMOIZE_SIZE) { 13013 cache.clear(); 13014 } 13015 return key; 13016 }); 13017 13018 var cache = result.cache; 13019 return result; 13020} 13021 13022module.exports = memoizeCapped; 13023 13024 13025/***/ }), 13026/* 254 */ 13027/***/ (function(module, exports, __webpack_require__) { 13028 13029var MapCache = __webpack_require__(51); 13030 13031/** Error message constants. */ 13032var FUNC_ERROR_TEXT = 'Expected a function'; 13033 13034/** 13035 * Creates a function that memoizes the result of `func`. If `resolver` is 13036 * provided, it determines the cache key for storing the result based on the 13037 * arguments provided to the memoized function. By default, the first argument 13038 * provided to the memoized function is used as the map cache key. The `func` 13039 * is invoked with the `this` binding of the memoized function. 13040 * 13041 * **Note:** The cache is exposed as the `cache` property on the memoized 13042 * function. Its creation may be customized by replacing the `_.memoize.Cache` 13043 * constructor with one whose instances implement the 13044 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 13045 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 13046 * 13047 * @static 13048 * @memberOf _ 13049 * @since 0.1.0 13050 * @category Function 13051 * @param {Function} func The function to have its output memoized. 13052 * @param {Function} [resolver] The function to resolve the cache key. 13053 * @returns {Function} Returns the new memoized function. 13054 * @example 13055 * 13056 * var object = { 'a': 1, 'b': 2 }; 13057 * var other = { 'c': 3, 'd': 4 }; 13058 * 13059 * var values = _.memoize(_.values); 13060 * values(object); 13061 * // => [1, 2] 13062 * 13063 * values(other); 13064 * // => [3, 4] 13065 * 13066 * object.a = 2; 13067 * values(object); 13068 * // => [1, 2] 13069 * 13070 * // Modify the result cache. 13071 * values.cache.set(object, ['a', 'b']); 13072 * values(object); 13073 * // => ['a', 'b'] 13074 * 13075 * // Replace `_.memoize.Cache`. 13076 * _.memoize.Cache = WeakMap; 13077 */ 13078function memoize(func, resolver) { 13079 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 13080 throw new TypeError(FUNC_ERROR_TEXT); 13081 } 13082 var memoized = function() { 13083 var args = arguments, 13084 key = resolver ? resolver.apply(this, args) : args[0], 13085 cache = memoized.cache; 13086 13087 if (cache.has(key)) { 13088 return cache.get(key); 13089 } 13090 var result = func.apply(this, args); 13091 memoized.cache = cache.set(key, result) || cache; 13092 return result; 13093 }; 13094 memoized.cache = new (memoize.Cache || MapCache); 13095 return memoized; 13096} 13097 13098// Expose `MapCache`. 13099memoize.Cache = MapCache; 13100 13101module.exports = memoize; 13102 13103 13104/***/ }), 13105/* 255 */ 13106/***/ (function(module, exports, __webpack_require__) { 13107 13108var baseToString = __webpack_require__(256); 13109 13110/** 13111 * Converts `value` to a string. An empty string is returned for `null` 13112 * and `undefined` values. The sign of `-0` is preserved. 13113 * 13114 * @static 13115 * @memberOf _ 13116 * @since 4.0.0 13117 * @category Lang 13118 * @param {*} value The value to convert. 13119 * @returns {string} Returns the converted string. 13120 * @example 13121 * 13122 * _.toString(null); 13123 * // => '' 13124 * 13125 * _.toString(-0); 13126 * // => '-0' 13127 * 13128 * _.toString([1, 2, 3]); 13129 * // => '1,2,3' 13130 */ 13131function toString(value) { 13132 return value == null ? '' : baseToString(value); 13133} 13134 13135module.exports = toString; 13136 13137 13138/***/ }), 13139/* 256 */ 13140/***/ (function(module, exports, __webpack_require__) { 13141 13142var Symbol = __webpack_require__(23), 13143 arrayMap = __webpack_require__(112), 13144 isArray = __webpack_require__(2), 13145 isSymbol = __webpack_require__(38); 13146 13147/** Used as references for various `Number` constants. */ 13148var INFINITY = 1 / 0; 13149 13150/** Used to convert symbols to primitives and strings. */ 13151var symbolProto = Symbol ? Symbol.prototype : undefined, 13152 symbolToString = symbolProto ? symbolProto.toString : undefined; 13153 13154/** 13155 * The base implementation of `_.toString` which doesn't convert nullish 13156 * values to empty strings. 13157 * 13158 * @private 13159 * @param {*} value The value to process. 13160 * @returns {string} Returns the string. 13161 */ 13162function baseToString(value) { 13163 // Exit early for strings to avoid a performance hit in some environments. 13164 if (typeof value == 'string') { 13165 return value; 13166 } 13167 if (isArray(value)) {
vendor: 2,364 bytes, lines 13168-13265
13168 // Recursively convert values (susceptible to call stack limits). 13169 return arrayMap(value, baseToString) + ''; 13170 } 13171 if (isSymbol(value)) { 13172 return symbolToString ? symbolToString.call(value) : ''; 13173 } 13174 var result = (value + ''); 13175 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 13176} 13177 13178module.exports = baseToString; 13179 13180 13181/***/ }), 13182/* 257 */ 13183/***/ (function(module, exports, __webpack_require__) { 13184 13185var baseHasIn = __webpack_require__(258), 13186 hasPath = __webpack_require__(259); 13187 13188/** 13189 * Checks if `path` is a direct or inherited property of `object`. 13190 * 13191 * @static 13192 * @memberOf _ 13193 * @since 4.0.0 13194 * @category Object 13195 * @param {Object} object The object to query. 13196 * @param {Array|string} path The path to check. 13197 * @returns {boolean} Returns `true` if `path` exists, else `false`. 13198 * @example 13199 * 13200 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 13201 * 13202 * _.hasIn(object, 'a'); 13203 * // => true 13204 * 13205 * _.hasIn(object, 'a.b'); 13206 * // => true 13207 * 13208 * _.hasIn(object, ['a', 'b']); 13209 * // => true 13210 * 13211 * _.hasIn(object, 'b'); 13212 * // => false 13213 */ 13214function hasIn(object, path) { 13215 return object != null && hasPath(object, path, baseHasIn); 13216} 13217 13218module.exports = hasIn; 13219 13220 13221/***/ }), 13222/* 258 */ 13223/***/ (function(module, exports) { 13224 13225/** 13226 * The base implementation of `_.hasIn` without support for deep paths. 13227 * 13228 * @private 13229 * @param {Object} [object] The object to query. 13230 * @param {Array|string} key The key to check. 13231 * @returns {boolean} Returns `true` if `key` exists, else `false`. 13232 */ 13233function baseHasIn(object, key) { 13234 return object != null && key in Object(object); 13235} 13236 13237module.exports = baseHasIn; 13238 13239 13240/***/ }), 13241/* 259 */ 13242/***/ (function(module, exports, __webpack_require__) { 13243 13244var castPath = __webpack_require__(37), 13245 isArguments = __webpack_require__(36), 13246 isArray = __webpack_require__(2), 13247 isIndex = __webpack_require__(54), 13248 isLength = __webpack_require__(56), 13249 toKey = __webpack_require__(24); 13250 13251/** 13252 * Checks if `path` exists on `object`. 13253 * 13254 * @private 13255 * @param {Object} object The object to query. 13256 * @param {Array|string} path The path to check. 13257 * @param {Function} hasFunc The function to check properties. 13258 * @returns {boolean} Returns `true` if `path` exists, else `false`. 13259 */ 13260function hasPath(object, path, hasFunc) { 13261 path = castPath(path, object); 13262 13263 var index = -1, 13264 length = path.length, 13265 result = false;
vendor: 4,842 bytes, lines 13266-13471
13266 13267 while (++index < length) { 13268 var key = toKey(path[index]); 13269 if (!(result = object != null && hasFunc(object, key))) { 13270 break; 13271 } 13272 object = object[key]; 13273 } 13274 if (result || ++index != length) { 13275 return result; 13276 } 13277 length = object == null ? 0 : object.length; 13278 return !!length && isLength(length) && isIndex(key, length) && 13279 (isArray(object) || isArguments(object)); 13280} 13281 13282module.exports = hasPath; 13283 13284 13285/***/ }), 13286/* 260 */ 13287/***/ (function(module, exports, __webpack_require__) { 13288 13289var baseProperty = __webpack_require__(113), 13290 basePropertyDeep = __webpack_require__(261), 13291 isKey = __webpack_require__(62), 13292 toKey = __webpack_require__(24); 13293 13294/** 13295 * Creates a function that returns the value at `path` of a given object. 13296 * 13297 * @static 13298 * @memberOf _ 13299 * @since 2.4.0 13300 * @category Util 13301 * @param {Array|string} path The path of the property to get. 13302 * @returns {Function} Returns the new accessor function. 13303 * @example 13304 * 13305 * var objects = [ 13306 * { 'a': { 'b': 2 } }, 13307 * { 'a': { 'b': 1 } } 13308 * ]; 13309 * 13310 * _.map(objects, _.property('a.b')); 13311 * // => [2, 1] 13312 * 13313 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 13314 * // => [1, 2] 13315 */ 13316function property(path) { 13317 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 13318} 13319 13320module.exports = property; 13321 13322 13323/***/ }), 13324/* 261 */ 13325/***/ (function(module, exports, __webpack_require__) { 13326 13327var baseGet = __webpack_require__(61); 13328 13329/** 13330 * A specialized version of `baseProperty` which supports deep paths. 13331 * 13332 * @private 13333 * @param {Array|string} path The path of the property to get. 13334 * @returns {Function} Returns the new accessor function. 13335 */ 13336function basePropertyDeep(path) { 13337 return function(object) { 13338 return baseGet(object, path); 13339 }; 13340} 13341 13342module.exports = basePropertyDeep; 13343 13344 13345/***/ }), 13346/* 262 */ 13347/***/ (function(module, exports, __webpack_require__) { 13348 13349var baseFindIndex = __webpack_require__(114), 13350 baseIteratee = __webpack_require__(10), 13351 toInteger = __webpack_require__(115); 13352 13353/* Built-in method references for those with the same name as other `lodash` methods. */ 13354var nativeMax = Math.max; 13355 13356/** 13357 * This method is like `_.find` except that it returns the index of the first 13358 * element `predicate` returns truthy for instead of the element itself. 13359 * 13360 * @static 13361 * @memberOf _ 13362 * @since 1.1.0 13363 * @category Array 13364 * @param {Array} array The array to inspect. 13365 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13366 * @param {number} [fromIndex=0] The index to search from. 13367 * @returns {number} Returns the index of the found element, else `-1`. 13368 * @example 13369 * 13370 * var users = [ 13371 * { 'user': 'barney', 'active': false }, 13372 * { 'user': 'fred', 'active': false }, 13373 * { 'user': 'pebbles', 'active': true } 13374 * ]; 13375 * 13376 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 13377 * // => 0 13378 * 13379 * // The `_.matches` iteratee shorthand. 13380 * _.findIndex(users, { 'user': 'fred', 'active': false }); 13381 * // => 1 13382 * 13383 * // The `_.matchesProperty` iteratee shorthand. 13384 * _.findIndex(users, ['active', false]); 13385 * // => 0 13386 * 13387 * // The `_.property` iteratee shorthand. 13388 * _.findIndex(users, 'active'); 13389 * // => 2 13390 */ 13391function findIndex(array, predicate, fromIndex) { 13392 var length = array == null ? 0 : array.length; 13393 if (!length) { 13394 return -1; 13395 } 13396 var index = fromIndex == null ? 0 : toInteger(fromIndex); 13397 if (index < 0) { 13398 index = nativeMax(length + index, 0); 13399 } 13400 return baseFindIndex(array, baseIteratee(predicate, 3), index); 13401} 13402 13403module.exports = findIndex; 13404 13405 13406/***/ }), 13407/* 263 */ 13408/***/ (function(module, exports, __webpack_require__) { 13409 13410var toNumber = __webpack_require__(64); 13411 13412/** Used as references for various `Number` constants. */ 13413var INFINITY = 1 / 0, 13414 MAX_INTEGER = 1.7976931348623157e+308; 13415 13416/** 13417 * Converts `value` to a finite number. 13418 * 13419 * @static 13420 * @memberOf _ 13421 * @since 4.12.0 13422 * @category Lang 13423 * @param {*} value The value to convert. 13424 * @returns {number} Returns the converted number. 13425 * @example 13426 * 13427 * _.toFinite(3.2); 13428 * // => 3.2 13429 * 13430 * _.toFinite(Number.MIN_VALUE); 13431 * // => 5e-324 13432 * 13433 * _.toFinite(Infinity); 13434 * // => 1.7976931348623157e+308 13435 * 13436 * _.toFinite('3.2'); 13437 * // => 3.2 13438 */ 13439function toFinite(value) { 13440 if (!value) { 13441 return value === 0 ? value : 0; 13442 } 13443 value = toNumber(value); 13444 if (value === INFINITY || value === -INFINITY) { 13445 var sign = (value < 0 ? -1 : 1); 13446 return sign * MAX_INTEGER; 13447 } 13448 return value === value ? value : 0; 13449} 13450 13451module.exports = toFinite; 13452 13453 13454/***/ }), 13455/* 264 */ 13456/***/ (function(module, exports, __webpack_require__) { 13457 13458var trimmedEndIndex = __webpack_require__(265); 13459 13460/** Used to match leading whitespace. */ 13461var reTrimStart = /^\s+/; 13462 13463/** 13464 * The base implementation of `_.trim`. 13465 * 13466 * @private 13467 * @param {string} string The string to trim. 13468 * @returns {string} Returns the trimmed string. 13469 */ 13470function baseTrim(string) { 13471 return string
13472 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') 13473 : string; 13474} 13475 13476module.exports = baseTrim; 13477 13478 13479/***/ }), 13480/* 265 */ 13481/***/ (function(module, exports) { 13482 13483/** Used to match a single whitespace character. */ 13484var reWhitespace = /\s/; 13485 13486/** 13487 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace 13488 * character of `string`. 13489 * 13490 * @private 13491 * @param {string} string The string to inspect. 13492 * @returns {number} Returns the index of the last non-whitespace character. 13493 */ 13494function trimmedEndIndex(string) { 13495 var index = string.length; 13496 13497 while (index-- && reWhitespace.test(string.charAt(index))) {} 13498 return index; 13499} 13500 13501module.exports = trimmedEndIndex; 13502 13503 13504/***/ }), 13505/* 266 */ 13506/***/ (function(module, exports) { 13507 13508function _arrayWithoutHoles(arr) { 13509 if (Array.isArray(arr)) { 13510 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 13511 arr2[i] = arr[i]; 13512 } 13513 13514 return arr2; 13515 } 13516} 13517 13518module.exports = _arrayWithoutHoles; 13519 13520/***/ }), 13521/* 267 */ 13522/***/ (function(module, exports) { 13523 13524function _iterableToArray(iter) { 13525 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 13526} 13527 13528module.exports = _iterableToArray; 13529 13530/***/ }), 13531/* 268 */ 13532/***/ (function(module, exports) { 13533 13534function _nonIterableSpread() { 13535 throw new TypeError("Invalid attempt to spread non-iterable instance"); 13536} 13537 13538module.exports = _nonIterableSpread; 13539 13540/***/ }), 13541/* 269 */ 13542/***/ (function(module, exports, __webpack_require__) { 13543 13544"use strict"; 13545 13546 13547Object.defineProperty(exports, "__esModule", { 13548 value: true 13549}); 13550exports.createElementState = createElementState; 13551exports.mergeActionState = mergeActionState; 13552exports.ixElements = void 0; 13553 13554var _timm = __webpack_require__(22); 13555 13556var _constants = __webpack_require__(4); 13557 13558var _constants$IX2EngineC = _constants.IX2EngineConstants, 13559 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 13560 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 13561 ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, 13562 CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, 13563 CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, 13564 CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, 13565 CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, 13566 CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, 13567 CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, 13568 CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, 13569 CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; 13570var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 13571 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 13572 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 13573 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; 13574var initialState = {}; 13575var refState = 'refState'; 13576 13577var ixElements = function ixElements() { 13578 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 13579 var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 13580 13581 switch (action.type) { 13582 case IX2_SESSION_STOPPED: 13583 { 13584 return initialState; 13585 } 13586 13587 case IX2_INSTANCE_ADDED: 13588 { 13589 var _action$payload = action.payload, 13590 elementId = _action$payload.elementId, 13591 ref = _action$payload.element, 13592 origin = _action$payload.origin, 13593 actionItem = _action$payload.actionItem, 13594 refType = _action$payload.refType; 13595 var actionTypeId = actionItem.actionTypeId; 13596 var newState = state; // Create new ref entry if it doesn't exist 13597 13598 if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { 13599 newState = createElementState(newState, ref, refType, elementId, actionItem); 13600 } // Merge origin values into ref state 13601 13602 13603 return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); 13604 } 13605 13606 case IX2_ELEMENT_STATE_CHANGED: 13607 { 13608 var _action$payload2 = action.payload, 13609 _elementId = _action$payload2.elementId, 13610 _actionTypeId = _action$payload2.actionTypeId, 13611 current = _action$payload2.current, 13612 _actionItem = _action$payload2.actionItem; 13613 return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); 13614 } 13615 13616 default: 13617 { 13618 return state; 13619 } 13620 } 13621}; 13622 13623exports.ixElements = ixElements; 13624 13625function createElementState(state, ref, refType, elementId, actionItem) { 13626 var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; 13627 return (0, _timm.mergeIn)(state, [elementId], { 13628 id: elementId, 13629 ref: ref, 13630 refId: refId, 13631 refType: refType 13632 }); 13633} 13634 13635function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used 13636actionItem) { 13637 var units = pickUnits(actionItem); 13638 var mergePath = [elementId, refState, actionTypeId]; 13639 return (0, _timm.mergeIn)(state, mergePath, actionState, units); 13640} 13641 13642var 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 13643// eslint-disable-next-line flowtype/no-weak-types 13644 13645function pickUnits(actionItem) { 13646 var config = actionItem.config; 13647 return valueUnitPairs.reduce(function (result, pair) { 13648 var valueKey = pair[0]; 13649 var unitKey = pair[1]; 13650 var configValue = config[valueKey]; 13651 var configUnit = config[unitKey]; 13652 13653 if (configValue != null && configUnit != null) { 13654 result[unitKey] = configUnit; 13655 } 13656 13657 return result; 13658 }, {}); 13659} 13660 13661/***/ }), 13662/* 270 */ 13663/***/ (function(module, exports, __webpack_require__) { 13664 13665"use strict"; 13666 13667 13668Object.defineProperty(exports, "__esModule", { 13669 value: true 13670}); 13671exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; 13672/* eslint-env browser */ 13673// $FlowFixMe 13674 13675var getPluginConfig = function getPluginConfig(actionItemConfig) { 13676 return actionItemConfig.value; 13677}; // $FlowFixMe 13678 13679 13680exports.getPluginConfig = getPluginConfig; 13681 13682var getPluginDuration = function getPluginDuration(element, actionItem) { 13683 if (actionItem.config.duration !== 'auto') { 13684 return null; 13685 } 13686 13687 var duration = parseFloat(element.getAttribute('data-duration')); 13688 13689 if (duration > 0) { 13690 return duration * 1000; 13691 } 13692 13693 return parseFloat(element.getAttribute('data-default-duration')) * 1000; 13694}; // $FlowFixMe 13695 13696 13697exports.getPluginDuration = getPluginDuration; 13698 13699var getPluginOrigin = function getPluginOrigin(refState) { 13700 return refState || { 13701 value: 0 13702 }; 13703}; // $FlowFixMe 13704 13705 13706exports.getPluginOrigin = getPluginOrigin; 13707 13708var getPluginDestination = function getPluginDestination(actionItemConfig) { 13709 return { 13710 value: actionItemConfig.value 13711 }; 13712}; // $FlowFixMe 13713 13714 13715exports.getPluginDestination = getPluginDestination; 13716 13717var createPluginInstance = function createPluginInstance(element) { 13718 var instance = window.Webflow.require('lottie').createInstance(element); 13719 13720 instance.stop(); 13721 instance.setSubframe(true); 13722 return instance; 13723}; // $FlowFixMe 13724 13725 13726exports.createPluginInstance = createPluginInstance; 13727 13728var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { 13729 if (!pluginInstance) { 13730 return; 13731 } 13732 13733 var percent = refState[actionItem.actionTypeId].value / 100; 13734 pluginInstance.goToFrame(pluginInstance.frames * percent); 13735}; // $FlowFixMe 13736 13737 13738exports.renderPlugin = renderPlugin; 13739 13740var clearPlugin = function clearPlugin(element) { 13741 var instance = window.Webflow.require('lottie').createInstance(element); 13742 13743 instance.stop(); 13744}; 13745 13746exports.clearPlugin = clearPlugin; 13747 13748/***/ }), 13749/* 271 */ 13750/***/ (function(module, exports, __webpack_require__) { 13751 13752"use strict"; 13753 13754 13755var _interopRequireDefault2 = __webpack_require__(0); 13756 13757var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 13758 13759var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 13760
13761var _Object$freeze, _Object$freeze2, _transformDefaults; 13762 13763var _interopRequireDefault = __webpack_require__(0); 13764 13765Object.defineProperty(exports, "__esModule", { 13766 value: true 13767}); 13768exports.getInstanceId = getInstanceId; 13769exports.getElementId = getElementId; 13770exports.reifyState = reifyState; 13771exports.observeStore = observeStore; 13772exports.getAffectedElements = getAffectedElements; 13773exports.getComputedStyle = getComputedStyle; 13774exports.getInstanceOrigin = getInstanceOrigin; 13775exports.getDestinationValues = getDestinationValues; 13776exports.getRenderType = getRenderType; 13777exports.getStyleProp = getStyleProp; 13778exports.renderHTMLElement = renderHTMLElement; 13779exports.clearAllStyles = clearAllStyles; 13780exports.cleanupHTMLElement = cleanupHTMLElement; 13781exports.getMaxDurationItemIndex = getMaxDurationItemIndex; 13782exports.getActionListProgress = getActionListProgress; 13783exports.reduceListToGroup = reduceListToGroup; 13784exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; 13785exports.getNamespacedParameterId = getNamespacedParameterId; 13786exports.shouldAllowMediaQuery = shouldAllowMediaQuery; 13787exports.mediaQueriesEqual = mediaQueriesEqual; 13788exports.stringifyTarget = stringifyTarget; 13789Object.defineProperty(exports, "shallowEqual", { 13790 enumerable: true, 13791 get: function get() { 13792 return _shallowEqual["default"]; 13793 } 13794}); 13795exports.getItemConfigByKey = void 0; 13796 13797var _defaultTo = _interopRequireDefault(__webpack_require__(272)); 13798 13799var _reduce = _interopRequireDefault(__webpack_require__(273)); 13800 13801var _findLast = _interopRequireDefault(__webpack_require__(279)); 13802 13803var _timm = __webpack_require__(22); 13804 13805var _constants = __webpack_require__(4); 13806 13807var _shallowEqual = _interopRequireDefault(__webpack_require__(281)); 13808 13809var _IX2EasingUtils = __webpack_require__(118); 13810 13811var _IX2VanillaPlugins = __webpack_require__(120); 13812 13813var _IX2BrowserSupport = __webpack_require__(48); 13814/* eslint-env browser */ 13815 13816 13817var _constants$IX2EngineC = _constants.IX2EngineConstants, 13818 BACKGROUND = _constants$IX2EngineC.BACKGROUND, 13819 TRANSFORM = _constants$IX2EngineC.TRANSFORM, 13820 TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, 13821 SCALE_3D = _constants$IX2EngineC.SCALE_3D, 13822 ROTATE_X = _constants$IX2EngineC.ROTATE_X, 13823 ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, 13824 ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, 13825 SKEW = _constants$IX2EngineC.SKEW, 13826 PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, 13827 FLEX = _constants$IX2EngineC.FLEX, 13828 OPACITY = _constants$IX2EngineC.OPACITY, 13829 FILTER = _constants$IX2EngineC.FILTER, 13830 FONT_VARIATION_SETTINGS = _constants$IX2EngineC.FONT_VARIATION_SETTINGS, 13831 WIDTH = _constants$IX2EngineC.WIDTH, 13832 HEIGHT = _constants$IX2EngineC.HEIGHT, 13833 BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, 13834 BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, 13835 COLOR = _constants$IX2EngineC.COLOR, 13836 CHILDREN = _constants$IX2EngineC.CHILDREN, 13837 IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, 13838 SIBLINGS = _constants$IX2EngineC.SIBLINGS, 13839 PARENT = _constants$IX2EngineC.PARENT, 13840 DISPLAY = _constants$IX2EngineC.DISPLAY, 13841 WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, 13842 AUTO = _constants$IX2EngineC.AUTO, 13843 COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, 13844 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 13845 BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, 13846 RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, 13847 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 13848 RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, 13849 RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; 13850var _constants$ActionType = _constants.ActionTypeConsts, 13851 TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, 13852 TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, 13853 TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, 13854 TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, 13855 STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, 13856 STYLE_FILTER = _constants$ActionType.STYLE_FILTER, 13857 STYLE_FONT_VARIATION = _constants$ActionType.STYLE_FONT_VARIATION, 13858 STYLE_SIZE = _constants$ActionType.STYLE_SIZE,
13859 STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, 13860 STYLE_BORDER = _constants$ActionType.STYLE_BORDER, 13861 STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, 13862 GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; 13863var OBJECT_VALUE = 'OBJECT_VALUE'; 13864 13865var trim = function trim(v) { 13866 return v.trim(); 13867}; 13868 13869var 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)); 13870var 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), (0, _defineProperty2["default"])(_Object$freeze2, FONT_VARIATION_SETTINGS, FONT_VARIATION_SETTINGS), _Object$freeze2)); 13871var objectCache = {}; 13872var instanceCount = 1; 13873 13874function getInstanceId() { 13875 return 'i' + instanceCount++; 13876} 13877 13878var elementCount = 1; // $FlowFixMe 13879 13880function getElementId(ixElements, ref) { 13881 // TODO: optimize element lookup 13882 for (var key in ixElements) { 13883 var ixEl = ixElements[key]; 13884 13885 if (ixEl && ixEl.ref === ref) { 13886 return ixEl.id; 13887 } 13888 } 13889 13890 return 'e' + elementCount++; 13891} // $FlowFixMe 13892 13893 13894function reifyState() { 13895 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 13896 events = _ref2.events, 13897 actionLists = _ref2.actionLists, 13898 site = _ref2.site; 13899 13900 var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { 13901 var eventTypeId = event.eventTypeId; 13902 13903 if (!result[eventTypeId]) { 13904 result[eventTypeId] = {}; 13905 } 13906 13907 result[eventTypeId][event.id] = event; 13908 return result; 13909 }, {}); 13910 var mediaQueries = site && site.mediaQueries; 13911 var mediaQueryKeys = []; 13912 13913 if (mediaQueries) { 13914 mediaQueryKeys = mediaQueries.map(function (mq) { 13915 return mq.key; 13916 }); 13917 } else { 13918 mediaQueries = []; 13919 console.warn("IX2 missing mediaQueries in site data"); 13920 } 13921 13922 return { 13923 ixData: { 13924 events: events, 13925 actionLists: actionLists, 13926 eventTypeMap: eventTypeMap, 13927 mediaQueries: mediaQueries, 13928 mediaQueryKeys: mediaQueryKeys 13929 } 13930 }; 13931} 13932 13933var strictEqual = function strictEqual(a, b) { 13934 return a === b; 13935}; // $FlowFixMe 13936 13937 13938function observeStore(_ref3) { 13939 var store = _ref3.store, 13940 select = _ref3.select, 13941 onChange = _ref3.onChange, 13942 _ref3$comparator = _ref3.comparator, 13943 comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; 13944 var getState = store.getState, 13945 subscribe = store.subscribe; 13946 var unsubscribe = subscribe(handleChange); 13947 var currentState = select(getState()); 13948 13949 function handleChange() { 13950 var nextState = select(getState()); 13951 13952 if (nextState == null) { 13953 unsubscribe(); 13954 return; 13955 } 13956 13957 if (!comparator(nextState, currentState)) { 13958 currentState = nextState; 13959 onChange(currentState, store); 13960 } 13961 } 13962 13963 return unsubscribe; 13964} 13965 13966function normalizeTarget(target) { 13967 var type = (0, _typeof2["default"])(target); 13968 13969 if (type === 'string') { 13970 return { 13971 id: target 13972 }; 13973 } else if (target != null && type === 'object') { 13974 var id = target.id, 13975 objectId = target.objectId, 13976 selector = target.selector, 13977 selectorGuids = target.selectorGuids, 13978 appliesTo = target.appliesTo, 13979 useEventTarget = target.useEventTarget; 13980 return { 13981 id: id, 13982 objectId: objectId, 13983 selector: selector, 13984 selectorGuids: selectorGuids, 13985 appliesTo: appliesTo, 13986 useEventTarget: useEventTarget 13987 }; 13988 } 13989 13990 return {}; 13991} 13992 13993function getAffectedElements(_ref4) { 13994 var config = _ref4.config, 13995 event = _ref4.event, 13996 eventTarget = _ref4.eventTarget, 13997 elementRoot = _ref4.elementRoot, 13998 elementApi = _ref4.elementApi; 13999 14000 var _ref, _event$action, _event$action$config; 14001 14002 if (!elementApi) { 14003 throw new Error('IX2 missing elementApi'); 14004 } 14005 14006 var targets = config.targets; 14007 14008 if (Array.isArray(targets) && targets.length > 0) { 14009 return targets.reduce(function (accumulator, target) { 14010 return accumulator.concat(getAffectedElements({ 14011 config: { 14012 target: target 14013 }, 14014 event: event, 14015 eventTarget: eventTarget, 14016 elementRoot: elementRoot, 14017 elementApi: elementApi 14018 })); 14019 }, []); 14020 } 14021 14022 var getValidDocument = elementApi.getValidDocument, 14023 getQuerySelector = elementApi.getQuerySelector, 14024 queryDocument = elementApi.queryDocument, 14025 getChildElements = elementApi.getChildElements,
14026 getSiblingElements = elementApi.getSiblingElements, 14027 matchSelector = elementApi.matchSelector, 14028 elementContains = elementApi.elementContains, 14029 isSiblingNode = elementApi.isSiblingNode; 14030 var target = config.target; 14031 14032 if (!target) { 14033 return []; 14034 } 14035 14036 var _normalizeTarget = normalizeTarget(target), 14037 id = _normalizeTarget.id, 14038 objectId = _normalizeTarget.objectId, 14039 selector = _normalizeTarget.selector, 14040 selectorGuids = _normalizeTarget.selectorGuids, 14041 appliesTo = _normalizeTarget.appliesTo, 14042 useEventTarget = _normalizeTarget.useEventTarget; 14043 14044 if (objectId) { 14045 var ref = objectCache[objectId] || (objectCache[objectId] = {}); 14046 return [ref]; 14047 } 14048 14049 if (appliesTo === _constants.EventAppliesTo.PAGE) { 14050 var doc = getValidDocument(id); 14051 return doc ? [doc] : []; 14052 } 14053 14054 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 : {}; 14055 var override = overrides[id || selector] || {}; 14056 var validOverride = Boolean(override.id || override.selector); 14057 var limitAffectedElements; 14058 var baseSelector; 14059 var finalSelector; 14060 var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); 14061 14062 if (validOverride) { 14063 limitAffectedElements = override.limitAffectedElements; 14064 baseSelector = eventTargetSelector; 14065 finalSelector = getQuerySelector(override); 14066 } else { 14067 // pass in selectorGuids as well for server-side rendering. 14068 baseSelector = finalSelector = getQuerySelector({ 14069 id: id, 14070 selector: selector, 14071 selectorGuids: selectorGuids 14072 }); 14073 } 14074 14075 if (event && useEventTarget) { 14076 // eventTarget is not defined when this function is called in a clear request, so find 14077 // all target elements associated with the event data, and return affected elements. 14078 var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); 14079 14080 if (finalSelector) { 14081 if (useEventTarget === PARENT) { 14082 return queryDocument(finalSelector).filter(function (parentElement) { 14083 return eventTargets.some(function (targetElement) { 14084 return elementContains(parentElement, targetElement); 14085 }); 14086 }); 14087 } 14088 14089 if (useEventTarget === CHILDREN) { 14090 return queryDocument(finalSelector).filter(function (childElement) { 14091 return eventTargets.some(function (targetElement) { 14092 return elementContains(targetElement, childElement); 14093 }); 14094 }); 14095 } 14096 14097 if (useEventTarget === SIBLINGS) { 14098 return queryDocument(finalSelector).filter(function (siblingElement) { 14099 return eventTargets.some(function (targetElement) { 14100 return isSiblingNode(targetElement, siblingElement); 14101 }); 14102 }); 14103 } 14104 } 14105 14106 return eventTargets; 14107 } 14108 14109 if (baseSelector == null || finalSelector == null) { 14110 return []; 14111 } 14112 14113 if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { 14114 return queryDocument(finalSelector).filter(function (element) { 14115 return elementRoot.contains(element); 14116 }); 14117 } 14118 14119 if (limitAffectedElements === CHILDREN) { 14120 return queryDocument(baseSelector, finalSelector); 14121 } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { 14122 return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 14123 } else if (limitAffectedElements === SIBLINGS) { 14124 return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 14125 } else { 14126 return queryDocument(finalSelector); 14127 } 14128} // $FlowFixMe 14129 14130 14131function getComputedStyle(_ref5) { 14132 var element = _ref5.element, 14133 actionItem = _ref5.actionItem; 14134 14135 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14136 return {}; 14137 } 14138 14139 var actionTypeId = actionItem.actionTypeId; 14140 14141 switch (actionTypeId) { 14142 case STYLE_SIZE: 14143 case STYLE_BACKGROUND_COLOR: 14144 case STYLE_BORDER: 14145 case STYLE_TEXT_COLOR: 14146 case GENERAL_DISPLAY: 14147 return window.getComputedStyle(element); 14148 14149 default: 14150 return {}; 14151 } 14152} 14153 14154var pxValueRegex = /px/; 14155 14156var getFilterDefaults = function getFilterDefaults(actionState, filters) { 14157 return filters.reduce(function (result, filter) { 14158 if (result[filter.type] == null) { 14159 result[filter.type] = filterDefaults[// $FlowFixMe - property `saturation` (did you mean `saturate`?) is missing in `filterDefaults` 14160 filter.type]; 14161 } 14162 14163 return result; 14164 }, actionState || {}); 14165}; 14166 14167var getFontVariationDefaults = function getFontVariationDefaults(actionState, fontVariations) { 14168 return fontVariations.reduce(function (result, fontVariation) { 14169 if (result[fontVariation.type] == null) { 14170 result[fontVariation.type] = fontVariationDefaults[fontVariation.type] || fontVariation.defaultValue || 0; 14171 } 14172 14173 return result; 14174 }, actionState || {}); 14175}; 14176 14177function getInstanceOrigin(element) { 14178 var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 14179 var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 14180 var actionItem = arguments.length > 3 ? arguments[3] : undefined; 14181 var elementApi = arguments.length > 4 ? arguments[4] : undefined;
14182 var getStyle = elementApi.getStyle; // Flow Hack: Passing actionTypeId to isPluginType and then trying 14183 // to do type refinement using the same variable via a switch statement 14184 // breaks down. This is is a workaround to ensure we can use type refinement. 14185 14186 var actionTypeId = actionItem.actionTypeId; 14187 14188 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14189 // $FlowFixMe 14190 return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); 14191 } 14192 14193 switch (actionItem.actionTypeId) { 14194 case TRANSFORM_MOVE: 14195 case TRANSFORM_SCALE: 14196 case TRANSFORM_ROTATE: 14197 case TRANSFORM_SKEW: 14198 { 14199 return refState[actionItem.actionTypeId] || transformDefaults[actionItem.actionTypeId]; 14200 } 14201 14202 case STYLE_FILTER: 14203 return getFilterDefaults(refState[actionItem.actionTypeId], actionItem.config.filters); 14204 14205 case STYLE_FONT_VARIATION: 14206 return getFontVariationDefaults(refState[actionItem.actionTypeId], actionItem.config.fontVariations); 14207 14208 case STYLE_OPACITY: 14209 return { 14210 value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) 14211 }; 14212 14213 case STYLE_SIZE: 14214 { 14215 var inlineWidth = getStyle(element, WIDTH); 14216 var inlineHeight = getStyle(element, HEIGHT); 14217 var widthValue; 14218 var heightValue; // When destination unit is 'AUTO', ensure origin values are in px 14219 14220 if (actionItem.config.widthUnit === AUTO) { 14221 widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); 14222 } else { 14223 widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); 14224 } 14225 14226 if (actionItem.config.heightUnit === AUTO) { 14227 heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); 14228 } else { 14229 heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); 14230 } 14231 14232 return { 14233 widthValue: widthValue, 14234 heightValue: heightValue 14235 }; 14236 } 14237 14238 case STYLE_BACKGROUND_COLOR: 14239 case STYLE_BORDER: 14240 case STYLE_TEXT_COLOR: 14241 return parseColor({ 14242 element: element, 14243 actionTypeId: actionItem.actionTypeId, 14244 computedStyle: computedStyle, 14245 getStyle: getStyle 14246 }); 14247 14248 case GENERAL_DISPLAY: 14249 return { 14250 value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) 14251 }; 14252 // $FlowFixMe - `OBJECT_VALUE` is not an expected `actionTypeId` 14253 14254 case OBJECT_VALUE: 14255 return refState[actionItem.actionTypeId] || { 14256 value: 0 14257 }; 14258 14259 default: 14260 { 14261 // As far as the type system can tell, we're missing a handler for 14262 // PLUGIN_LOTTIE. 14263 // 14264 // This is actually handled by `isPluginType` above. 14265 // 14266 // $FlowFixMe 14267 14268 /*:: (actionItem: empty); */ 14269 return; 14270 } 14271 } 14272} 14273 14274var reduceFilters = function reduceFilters(result, filter) { 14275 if (filter) { 14276 result[filter.type] = filter.value || 0; 14277 } 14278 14279 return result; 14280}; 14281 14282var reduceFontVariations = function reduceFontVariations(result, fontVariation) { 14283 if (fontVariation) { 14284 result[fontVariation.type] = fontVariation.value || 0; 14285 } 14286 14287 return result; 14288}; // $FlowFixMe 14289 14290 14291var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { 14292 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14293 // $FlowFixMe 14294 return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); 14295 } 14296 14297 switch (actionTypeId) { 14298 case STYLE_FILTER: 14299 { 14300 var filter = (0, _findLast["default"])(config.filters, function (_ref6) { 14301 var type = _ref6.type; 14302 return type === key; 14303 }); 14304 return filter ? filter.value : 0; 14305 } 14306 14307 case STYLE_FONT_VARIATION: 14308 { 14309 var fontVariation = (0, _findLast["default"])(config.fontVariations, function (_ref7) { 14310 var type = _ref7.type; 14311 return type === key; 14312 }); 14313 return fontVariation ? fontVariation.value : 0; 14314 } 14315 14316 default: 14317 return config[key]; 14318 } 14319}; 14320 14321exports.getItemConfigByKey = getItemConfigByKey; 14322 14323function getDestinationValues(_ref8) { 14324 var element = _ref8.element, 14325 actionItem = _ref8.actionItem, 14326 elementApi = _ref8.elementApi; 14327 14328 if ((0, _IX2VanillaPlugins.isPluginType)(actionItem.actionTypeId)) { 14329 // $FlowFixMe 14330 return (0, _IX2VanillaPlugins.getPluginDestination)(actionItem.actionTypeId)(actionItem.config); 14331 } 14332 14333 switch (actionItem.actionTypeId) { 14334 case TRANSFORM_MOVE: 14335 case TRANSFORM_SCALE: 14336 case TRANSFORM_ROTATE: 14337 case TRANSFORM_SKEW: 14338 { 14339 var _actionItem$config = actionItem.config, 14340 xValue = _actionItem$config.xValue, 14341 yValue = _actionItem$config.yValue, 14342 zValue = _actionItem$config.zValue; 14343 return { 14344 xValue: xValue, 14345 yValue: yValue, 14346 zValue: zValue 14347 }; 14348 } 14349 14350 case STYLE_SIZE: 14351 {
14352 var getStyle = elementApi.getStyle, 14353 setStyle = elementApi.setStyle, 14354 getProperty = elementApi.getProperty; 14355 var _actionItem$config2 = actionItem.config, 14356 widthUnit = _actionItem$config2.widthUnit, 14357 heightUnit = _actionItem$config2.heightUnit; 14358 var _actionItem$config3 = actionItem.config, 14359 widthValue = _actionItem$config3.widthValue, 14360 heightValue = _actionItem$config3.heightValue; 14361 14362 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14363 return { 14364 widthValue: widthValue, 14365 heightValue: heightValue 14366 }; 14367 } 14368 14369 if (widthUnit === AUTO) { 14370 var temp = getStyle(element, WIDTH); 14371 setStyle(element, WIDTH, ''); 14372 widthValue = getProperty(element, 'offsetWidth'); 14373 setStyle(element, WIDTH, temp); 14374 } 14375 14376 if (heightUnit === AUTO) { 14377 var _temp = getStyle(element, HEIGHT); 14378 14379 setStyle(element, HEIGHT, ''); 14380 heightValue = getProperty(element, 'offsetHeight'); 14381 setStyle(element, HEIGHT, _temp); 14382 } 14383 14384 return { 14385 widthValue: widthValue, 14386 heightValue: heightValue 14387 }; 14388 } 14389 14390 case STYLE_BACKGROUND_COLOR: 14391 case STYLE_BORDER: 14392 case STYLE_TEXT_COLOR: 14393 { 14394 var _actionItem$config4 = actionItem.config, 14395 rValue = _actionItem$config4.rValue, 14396 gValue = _actionItem$config4.gValue, 14397 bValue = _actionItem$config4.bValue, 14398 aValue = _actionItem$config4.aValue; 14399 return { 14400 rValue: rValue, 14401 gValue: gValue, 14402 bValue: bValue, 14403 aValue: aValue 14404 }; 14405 } 14406 14407 case STYLE_FILTER: 14408 { 14409 return actionItem.config.filters.reduce(reduceFilters, {}); 14410 } 14411 14412 case STYLE_FONT_VARIATION: 14413 { 14414 return actionItem.config.fontVariations.reduce(reduceFontVariations, {}); 14415 } 14416 14417 default: 14418 { 14419 var value = actionItem.config.value; 14420 return { 14421 value: value 14422 }; 14423 } 14424 } 14425} // $FlowFixMe 14426 14427 14428function getRenderType(actionTypeId) { 14429 if (/^TRANSFORM_/.test(actionTypeId)) { 14430 return RENDER_TRANSFORM; 14431 } 14432 14433 if (/^STYLE_/.test(actionTypeId)) { 14434 return RENDER_STYLE; 14435 } 14436 14437 if (/^GENERAL_/.test(actionTypeId)) { 14438 return RENDER_GENERAL; 14439 } 14440 14441 if (/^PLUGIN_/.test(actionTypeId)) { 14442 return RENDER_PLUGIN; 14443 } 14444} // $FlowFixMe 14445 14446 14447function getStyleProp(renderType, actionTypeId) { 14448 return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; 14449} 14450 14451function renderHTMLElement( // $FlowFixMe 14452element, // $FlowFixMe 14453refState, // $FlowFixMe 14454actionState, // $FlowFixMe 14455eventId, // $FlowFixMe 14456actionItem, // $FlowFixMe 14457styleProp, // $FlowFixMe 14458elementApi, // $FlowFixMe 14459renderType, // $FlowFixMe 14460pluginInstance) { 14461 switch (renderType) { 14462 case RENDER_TRANSFORM: 14463 { 14464 return renderTransform(element, refState, actionState, actionItem, elementApi); 14465 } 14466 14467 case RENDER_STYLE: 14468 { 14469 return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); 14470 } 14471 14472 case RENDER_GENERAL: 14473 { 14474 return renderGeneral(element, actionItem, elementApi); 14475 } 14476 14477 case RENDER_PLUGIN: 14478 { 14479 var actionTypeId = actionItem.actionTypeId; 14480 14481 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14482 // $FlowFixMe 14483 return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); 14484 } 14485 } 14486 } 14487} 14488 14489var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ 14490 xValue: 0, 14491 yValue: 0, 14492 zValue: 0 14493})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ 14494 xValue: 1, 14495 yValue: 1, 14496 zValue: 1 14497})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ 14498 xValue: 0, 14499 yValue: 0, 14500 zValue: 0 14501})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ 14502 xValue: 0, 14503 yValue: 0 14504})), _transformDefaults); 14505var filterDefaults = Object.freeze({ 14506 blur: 0, 14507 'hue-rotate': 0, 14508 invert: 0, 14509 grayscale: 0, 14510 saturate: 100, 14511 sepia: 0, 14512 contrast: 100, 14513 brightness: 100 14514}); 14515var fontVariationDefaults = Object.freeze({ 14516 wght: 0, 14517 opsz: 0, 14518 wdth: 0, 14519 slnt: 0 14520}); 14521 14522var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { 14523 var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref9) { 14524 var type = _ref9.type; 14525 return type === filterType; 14526 }); 14527 14528 if (filter && filter.unit) { 14529 return filter.unit; 14530 } 14531 14532 switch (filterType) { 14533 case 'blur': 14534 return 'px'; 14535 14536 case 'hue-rotate': 14537 return 'deg'; 14538 14539 default: 14540 return '%'; 14541 } 14542}; 14543 14544var transformKeys = Object.keys(transformDefaults); 14545 14546function renderTransform(element, refState, actionState, actionItem, elementApi) { 14547 var newTransform = transformKeys.map(function (actionTypeId) { 14548 var defaults = transformDefaults[actionTypeId]; 14549 14550 var _ref10 = refState[actionTypeId] || {}, 14551 _ref10$xValue = _ref10.xValue, 14552 xValue = _ref10$xValue === void 0 ? defaults.xValue : _ref10$xValue, 14553 _ref10$yValue = _ref10.yValue, 14554 yValue = _ref10$yValue === void 0 ? defaults.yValue : _ref10$yValue, 14555 _ref10$zValue = _ref10.zValue, 14556 zValue = _ref10$zValue === void 0 ? defaults.zValue : _ref10$zValue, 14557 _ref10$xUnit = _ref10.xUnit, 14558 xUnit = _ref10$xUnit === void 0 ? '' : _ref10$xUnit, 14559 _ref10$yUnit = _ref10.yUnit, 14560 yUnit = _ref10$yUnit === void 0 ? '' : _ref10$yUnit, 14561 _ref10$zUnit = _ref10.zUnit, 14562 zUnit = _ref10$zUnit === void 0 ? '' : _ref10$zUnit; 14563 14564 switch (actionTypeId) { 14565 case TRANSFORM_MOVE: 14566 return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 14567 14568 case TRANSFORM_SCALE:
14569 return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 14570 14571 case TRANSFORM_ROTATE: 14572 return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); 14573 14574 case TRANSFORM_SKEW: 14575 return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); 14576 14577 default: 14578 return ''; 14579 } 14580 }).join(' '); 14581 var setStyle = elementApi.setStyle; 14582 addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 14583 setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d 14584 14585 if (hasDefined3dTransform(actionItem, actionState)) { 14586 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); 14587 } 14588} 14589 14590function renderFilter(element, actionState, actionItemConfig, elementApi) { 14591 var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { 14592 return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); 14593 }, ''); 14594 var setStyle = elementApi.setStyle; 14595 addWillChange(element, FILTER, elementApi); 14596 setStyle(element, FILTER, filterValue); 14597} 14598 14599function renderFontVariation(element, actionState, actionItemConfig, elementApi) { 14600 var fontVariationValue = (0, _reduce["default"])(actionState, function (result, value, type) { 14601 result.push("\"".concat(type, "\" ").concat(value)); 14602 return result; 14603 }, []).join(', '); 14604 var setStyle = elementApi.setStyle; 14605 addWillChange(element, FONT_VARIATION_SETTINGS, elementApi); 14606 setStyle(element, FONT_VARIATION_SETTINGS, fontVariationValue); 14607} 14608 14609function hasDefined3dTransform(_ref11, _ref12) { 14610 var actionTypeId = _ref11.actionTypeId; 14611 var xValue = _ref12.xValue, 14612 yValue = _ref12.yValue, 14613 zValue = _ref12.zValue; 14614 // TRANSLATE_Z 14615 return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z 14616 actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y 14617 actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); 14618} 14619 14620var paramCapture = '\\(([^)]+)\\)'; 14621var rgbValidRegex = /^rgb/; 14622var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); 14623 14624function getFirstMatch(regex, value) { 14625 var match = regex.exec(value); 14626 return match ? match[1] : ''; 14627} 14628 14629function parseColor(_ref13) { 14630 var element = _ref13.element, 14631 actionTypeId = _ref13.actionTypeId, 14632 computedStyle = _ref13.computedStyle, 14633 getStyle = _ref13.getStyle; 14634 var prop = colorStyleProps[actionTypeId]; 14635 var inlineValue = getStyle(element, prop); 14636 var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; 14637 var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); 14638 return { 14639 rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), 14640 gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), 14641 bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), 14642 aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) 14643 }; 14644} 14645
14646function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { 14647 var setStyle = elementApi.setStyle; 14648 14649 switch (actionItem.actionTypeId) { 14650 case STYLE_SIZE: 14651 { 14652 var _actionItem$config5 = actionItem.config, 14653 _actionItem$config5$w = _actionItem$config5.widthUnit, 14654 widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, 14655 _actionItem$config5$h = _actionItem$config5.heightUnit, 14656 heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; 14657 var widthValue = actionState.widthValue, 14658 heightValue = actionState.heightValue; 14659 14660 if (widthValue !== undefined) { 14661 if (widthUnit === AUTO) { 14662 widthUnit = 'px'; 14663 } 14664 14665 addWillChange(element, WIDTH, elementApi); 14666 setStyle(element, WIDTH, widthValue + widthUnit); 14667 } 14668 14669 if (heightValue !== undefined) { 14670 if (heightUnit === AUTO) { 14671 heightUnit = 'px'; 14672 } 14673 14674 addWillChange(element, HEIGHT, elementApi); 14675 setStyle(element, HEIGHT, heightValue + heightUnit); 14676 } 14677 14678 break; 14679 } 14680 14681 case STYLE_FILTER: 14682 { 14683 renderFilter(element, actionState, actionItem.config, elementApi); 14684 break; 14685 } 14686 14687 case STYLE_FONT_VARIATION: 14688 { 14689 renderFontVariation(element, actionState, actionItem.config, elementApi); 14690 break; 14691 } 14692 14693 case STYLE_BACKGROUND_COLOR: 14694 case STYLE_BORDER: 14695 case STYLE_TEXT_COLOR: 14696 { 14697 var prop = colorStyleProps[actionItem.actionTypeId]; 14698 var rValue = Math.round(actionState.rValue); 14699 var gValue = Math.round(actionState.gValue); 14700 var bValue = Math.round(actionState.bValue); 14701 var aValue = actionState.aValue; 14702 addWillChange(element, prop, elementApi); 14703 setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); 14704 break; 14705 } 14706 14707 default: 14708 { 14709 var _actionItem$config$un = actionItem.config.unit, 14710 unit = _actionItem$config$un === void 0 ? '' : _actionItem$config$un; 14711 addWillChange(element, styleProp, elementApi); 14712 setStyle(element, styleProp, actionState.value + unit); 14713 break; 14714 } 14715 } 14716} 14717 14718function renderGeneral(element, actionItem, elementApi) { 14719 var setStyle = elementApi.setStyle; 14720 14721 switch (actionItem.actionTypeId) { 14722 case GENERAL_DISPLAY: 14723 { 14724 var value = actionItem.config.value; 14725 14726 if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { 14727 setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); 14728 } else { 14729 setStyle(element, DISPLAY, value); 14730 } 14731 14732 return; 14733 } 14734 } 14735} 14736 14737function addWillChange(element, prop, elementApi) { 14738 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14739 return; 14740 } 14741 14742 var validProp = willChangeProps[prop]; 14743 14744 if (!validProp) { 14745 return; 14746 } 14747
14748 var getStyle = elementApi.getStyle, 14749 setStyle = elementApi.setStyle; 14750 var value = getStyle(element, WILL_CHANGE); 14751 14752 if (!value) { 14753 setStyle(element, WILL_CHANGE, validProp); 14754 return; 14755 } 14756 14757 var values = value.split(COMMA_DELIMITER).map(trim); 14758 14759 if (values.indexOf(validProp) === -1) { 14760 setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); 14761 } 14762} 14763 14764function removeWillChange(element, prop, elementApi) { 14765 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14766 return; 14767 } 14768 14769 var validProp = willChangeProps[prop]; 14770 14771 if (!validProp) { 14772 return; 14773 } 14774 14775 var getStyle = elementApi.getStyle, 14776 setStyle = elementApi.setStyle; 14777 var value = getStyle(element, WILL_CHANGE); 14778 14779 if (!value || value.indexOf(validProp) === -1) { 14780 return; 14781 } 14782 14783 setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { 14784 return v !== validProp; 14785 }).join(COMMA_DELIMITER)); 14786} // $FlowFixMe 14787 14788 14789function clearAllStyles(_ref14) { 14790 var store = _ref14.store, 14791 elementApi = _ref14.elementApi; 14792 14793 var _store$getState = store.getState(), 14794 ixData = _store$getState.ixData; 14795 14796 var _ixData$events = ixData.events, 14797 events = _ixData$events === void 0 ? {} : _ixData$events, 14798 _ixData$actionLists = ixData.actionLists, 14799 actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; 14800 Object.keys(events).forEach(function (eventId) { 14801 var event = events[eventId]; 14802 var config = event.action.config; 14803 var actionListId = config.actionListId; 14804 var actionList = actionLists[actionListId]; 14805 14806 if (actionList) { 14807 clearActionListStyles({ 14808 actionList: actionList, 14809 event: event, 14810 elementApi: elementApi 14811 }); 14812 } 14813 }); 14814 Object.keys(actionLists).forEach(function (actionListId) { 14815 clearActionListStyles({ 14816 actionList: actionLists[actionListId], 14817 elementApi: elementApi 14818 }); 14819 }); 14820} // $FlowFixMe 14821 14822 14823function clearActionListStyles(_ref15) { 14824 var _ref15$actionList = _ref15.actionList, 14825 actionList = _ref15$actionList === void 0 ? {} : _ref15$actionList, 14826 event = _ref15.event, 14827 elementApi = _ref15.elementApi; 14828 var actionItemGroups = actionList.actionItemGroups, 14829 continuousParameterGroups = actionList.continuousParameterGroups; 14830 actionItemGroups && actionItemGroups.forEach(function (actionGroup) { 14831 clearActionGroupStyles({ 14832 actionGroup: actionGroup, 14833 event: event, 14834 elementApi: elementApi 14835 }); 14836 }); 14837 continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { 14838 var continuousActionGroups = paramGroup.continuousActionGroups; 14839 continuousActionGroups.forEach(function (actionGroup) { 14840 clearActionGroupStyles({ 14841 actionGroup: actionGroup, 14842 event: event, 14843 elementApi: elementApi 14844 }); 14845 }); 14846 }); 14847} 14848 14849function clearActionGroupStyles(_ref16) { 14850 var actionGroup = _ref16.actionGroup, 14851 event = _ref16.event, 14852 elementApi = _ref16.elementApi; 14853 var actionItems = actionGroup.actionItems; 14854 actionItems.forEach(function (_ref17) { 14855 var actionTypeId = _ref17.actionTypeId, 14856 config = _ref17.config; 14857 var clearElement; 14858 14859 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14860 clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); 14861 } else { 14862 clearElement = processElementByType({ 14863 effect: clearStyleProp, 14864 actionTypeId: actionTypeId, 14865 elementApi: elementApi 14866 }); 14867 } 14868 14869 getAffectedElements({ 14870 config: config, 14871 event: event, 14872 elementApi: elementApi 14873 }
14873).forEach(clearElement); 14874 }); 14875} // $FlowFixMe 14876 14877 14878function cleanupHTMLElement(element, actionItem, elementApi) { 14879 var setStyle = elementApi.setStyle, 14880 getStyle = elementApi.getStyle; 14881 var actionTypeId = actionItem.actionTypeId; 14882 14883 if (actionTypeId === STYLE_SIZE) { 14884 var config = actionItem.config; 14885 14886 if (config.widthUnit === AUTO) { 14887 setStyle(element, WIDTH, ''); 14888 } 14889 14890 if (config.heightUnit === AUTO) { 14891 setStyle(element, HEIGHT, ''); 14892 } 14893 } 14894 14895 if (getStyle(element, WILL_CHANGE)) { 14896 processElementByType({ 14897 effect: removeWillChange, 14898 actionTypeId: actionTypeId, 14899 elementApi: elementApi 14900 })(element); 14901 } 14902} 14903 14904var processElementByType = function processElementByType(_ref18) { 14905 var effect = _ref18.effect, 14906 actionTypeId = _ref18.actionTypeId, 14907 elementApi = _ref18.elementApi; 14908 return function (element) { 14909 switch (actionTypeId) { 14910 case TRANSFORM_MOVE: 14911 case TRANSFORM_SCALE: 14912 case TRANSFORM_ROTATE: 14913 case TRANSFORM_SKEW: 14914 effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 14915 break; 14916 14917 case STYLE_FILTER: 14918 effect(element, FILTER, elementApi); 14919 break; 14920 14921 case STYLE_FONT_VARIATION: 14922 effect(element, FONT_VARIATION_SETTINGS, elementApi); 14923 break; 14924 14925 case STYLE_OPACITY: 14926 effect(element, OPACITY, elementApi); 14927 break; 14928 14929 case STYLE_SIZE: 14930 effect(element, WIDTH, elementApi); 14931 effect(element, HEIGHT, elementApi); 14932 break; 14933 14934 case STYLE_BACKGROUND_COLOR: 14935 case STYLE_BORDER: 14936 case STYLE_TEXT_COLOR: 14937 effect(element, colorStyleProps[actionTypeId], elementApi); 14938 break; 14939 14940 case GENERAL_DISPLAY: 14941 effect(element, DISPLAY, elementApi); 14942 break; 14943 } 14944 }; 14945}; 14946 14947function clearStyleProp(element, prop, elementApi) { 14948 var setStyle = elementApi.setStyle; 14949 removeWillChange(element, prop, elementApi); 14950 setStyle(element, prop, ''); // Clear transform-style: preserve-3d 14951 14952 if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { 14953 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); 14954 } 14955} // $FlowFixMe 14956 14957 14958function getMaxDurationItemIndex(actionItems) { 14959 var maxDuration = 0; 14960 var resultIndex = 0; 14961 actionItems.forEach(function (actionItem, index) { 14962 var config = actionItem.config; 14963 var total = config.delay + config.duration; 14964 14965 if (total >= maxDuration) { 14966 maxDuration = total; 14967 resultIndex = index; 14968 } 14969 }); 14970 return resultIndex; 14971} // $FlowFixMe 14972 14973 14974function getActionListProgress(actionList, instance) { 14975 var actionItemGroups = actionList.actionItemGroups, 14976 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; 14977 var instanceItem = instance.actionItem, 14978 _instance$verboseTime = instance.verboseTimeElapsed, 14979 verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; 14980 var totalDuration = 0; 14981 var elapsedDuration = 0; 14982 actionItemGroups.forEach(function (group, index) { 14983 if (useFirstGroupAsInitialState && index === 0) { 14984 return; 14985 } 14986 14987 var actionItems = group.actionItems; 14988 var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; 14989 var config = carrierItem.config, 14990 actionTypeId = carrierItem.actionTypeId; 14991 14992 if (instanceItem.id === carrierItem.id) { 14993 elapsedDuration = totalDuration + verboseTimeElapsed; 14994 } 14995 14996 var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; 14997 totalDuration += config.delay + duration; 14998 }); 14999 return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; 15000} // $FlowFixMe 15001 15002 15003function reduceListToGroup(_ref19) { 15004 var actionList = _ref19.actionList, 15005 actionItemId = _ref19.actionItemId, 15006 rawData = _ref19.rawData; 15007 var actionItemGroups = actionList.actionItemGroups, 15008 continuousParameterGroups = actionList.continuousParameterGroups; 15009 var newActionItems = []; 15010 15011 var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { 15012 newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { 15013 delay: 0, 15014 duration: 0 15015 })); 15016 return actionItem.id === actionItemId; 15017 }; 15018 15019 actionItemGroups && actionItemGroups.some(function (_ref20) { 15020 var actionItems = _ref20.actionItems; 15021 return actionItems.some(takeItemUntilMatch); 15022 }); 15023 continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { 15024 var continuousActionGroups = paramGroup.continuousActionGroups; 15025 return continuousActionGroups.some(function (_ref21) { 15026 var actionItems = _ref21.actionItems; 15027 return actionItems.some(takeItemUntilMatch); 15028 }); 15029 }); 15030 return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { 15031 id: actionList.id, 15032 actionItemGroups: [{ 15033 actionItems: newActionItems 15034 }] 15035 })); 15036} // $FlowFixMe 15037 15038 15039function shouldNamespaceEventParameter(eventTypeId, _ref23) { 15040 var basedOn = _ref23.basedOn; 15041 return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; 15042} 15043 15044function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { 15045 var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; 15046 return namespacedParameterId; 15047} // $FlowFixMe 15048 15049 15050function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { 15051 // During design mode, current media query key does not exist 15052 if (mediaQueryKey == null) { 15053 return true; 15054 } 15055 15056 return mediaQueries.indexOf(mediaQueryKey) !== -1; 15057} // $FlowFixMe 15058 15059 15060function mediaQueriesEqual(listA, listB) { 15061 return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); 15062} // $FlowFixMe 15063 15064 15065function stringifyTarget(target) { 15066 if (typeof target === 'string') { 15067 return target; 15068 } 15069 15070 var _target$id = target.id, 15071 id = _target$id === void 0 ? '' : _target$id, 15072 _target$selector = target.selector, 15073 selector = _target$selector === void 0 ? '' : _target$selector, 15074 _target$useEventTarge = target.useEventTarget, 15075 useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; 15076 return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; 15077} 15078 15079/***/ }), 15080/* 272 */
vendor: 9,324 bytes, lines 15081-15414
15081/***/ (function(module, exports) { 15082 15083/** 15084 * Checks `value` to determine whether a default value should be returned in 15085 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 15086 * or `undefined`. 15087 * 15088 * @static 15089 * @memberOf _ 15090 * @since 4.14.0 15091 * @category Util 15092 * @param {*} value The value to check. 15093 * @param {*} defaultValue The default value. 15094 * @returns {*} Returns the resolved value. 15095 * @example 15096 * 15097 * _.defaultTo(1, 10); 15098 * // => 1 15099 * 15100 * _.defaultTo(undefined, 10); 15101 * // => 10 15102 */ 15103function defaultTo(value, defaultValue) { 15104 return (value == null || value !== value) ? defaultValue : value; 15105} 15106 15107module.exports = defaultTo; 15108 15109 15110/***/ }), 15111/* 273 */ 15112/***/ (function(module, exports, __webpack_require__) { 15113 15114var arrayReduce = __webpack_require__(274), 15115 baseEach = __webpack_require__(121), 15116 baseIteratee = __webpack_require__(10), 15117 baseReduce = __webpack_require__(278), 15118 isArray = __webpack_require__(2); 15119 15120/** 15121 * Reduces `collection` to a value which is the accumulated result of running 15122 * each element in `collection` thru `iteratee`, where each successive 15123 * invocation is supplied the return value of the previous. If `accumulator` 15124 * is not given, the first element of `collection` is used as the initial 15125 * value. The iteratee is invoked with four arguments: 15126 * (accumulator, value, index|key, collection). 15127 * 15128 * Many lodash methods are guarded to work as iteratees for methods like 15129 * `_.reduce`, `_.reduceRight`, and `_.transform`. 15130 * 15131 * The guarded methods are: 15132 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 15133 * and `sortBy` 15134 * 15135 * @static 15136 * @memberOf _ 15137 * @since 0.1.0 15138 * @category Collection 15139 * @param {Array|Object} collection The collection to iterate over. 15140 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15141 * @param {*} [accumulator] The initial value. 15142 * @returns {*} Returns the accumulated value. 15143 * @see _.reduceRight 15144 * @example 15145 * 15146 * _.reduce([1, 2], function(sum, n) { 15147 * return sum + n; 15148 * }, 0); 15149 * // => 3 15150 * 15151 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 15152 * (result[value] || (result[value] = [])).push(key); 15153 * return result; 15154 * }, {}); 15155 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 15156 */ 15157function reduce(collection, iteratee, accumulator) { 15158 var func = isArray(collection) ? arrayReduce : baseReduce, 15159 initAccum = arguments.length < 3; 15160 15161 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 15162} 15163 15164module.exports = reduce; 15165 15166 15167/***/ }), 15168/* 274 */ 15169/***/ (function(module, exports) { 15170 15171/** 15172 * A specialized version of `_.reduce` for arrays without support for 15173 * iteratee shorthands. 15174 * 15175 * @private 15176 * @param {Array} [array] The array to iterate over. 15177 * @param {Function} iteratee The function invoked per iteration. 15178 * @param {*} [accumulator] The initial value. 15179 * @param {boolean} [initAccum] Specify using the first element of `array` as 15180 * the initial value. 15181 * @returns {*} Returns the accumulated value. 15182 */ 15183function arrayReduce(array, iteratee, accumulator, initAccum) { 15184 var index = -1, 15185 length = array == null ? 0 : array.length; 15186 15187 if (initAccum && length) { 15188 accumulator = array[++index]; 15189 } 15190 while (++index < length) { 15191 accumulator = iteratee(accumulator, array[index], index, array); 15192 } 15193 return accumulator; 15194} 15195 15196module.exports = arrayReduce; 15197 15198 15199/***/ }), 15200/* 275 */ 15201/***/ (function(module, exports, __webpack_require__) { 15202 15203var createBaseFor = __webpack_require__(276); 15204 15205/** 15206 * The base implementation of `baseForOwn` which iterates over `object` 15207 * properties returned by `keysFunc` and invokes `iteratee` for each property. 15208 * Iteratee functions may exit iteration early by explicitly returning `false`. 15209 * 15210 * @private 15211 * @param {Object} object The object to iterate over. 15212 * @param {Function} iteratee The function invoked per iteration. 15213 * @param {Function} keysFunc The function to get the keys of `object`. 15214 * @returns {Object} Returns `object`. 15215 */ 15216var baseFor = createBaseFor(); 15217 15218module.exports = baseFor; 15219 15220 15221/***/ }), 15222/* 276 */ 15223/***/ (function(module, exports) { 15224 15225/** 15226 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 15227 * 15228 * @private 15229 * @param {boolean} [fromRight] Specify iterating from right to left. 15230 * @returns {Function} Returns the new base function. 15231 */ 15232function createBaseFor(fromRight) { 15233 return function(object, iteratee, keysFunc) { 15234 var index = -1, 15235 iterable = Object(object), 15236 props = keysFunc(object), 15237 length = props.length; 15238 15239 while (length--) { 15240 var key = props[fromRight ? length : ++index]; 15241 if (iteratee(iterable[key], key, iterable) === false) { 15242 break; 15243 } 15244 } 15245 return object; 15246 }; 15247} 15248 15249module.exports = createBaseFor; 15250 15251 15252/***/ }), 15253/* 277 */ 15254/***/ (function(module, exports, __webpack_require__) { 15255 15256var isArrayLike = __webpack_require__(17); 15257 15258/** 15259 * Creates a `baseEach` or `baseEachRight` function. 15260 * 15261 * @private 15262 * @param {Function} eachFunc The function to iterate over a collection. 15263 * @param {boolean} [fromRight] Specify iterating from right to left. 15264 * @returns {Function} Returns the new base function. 15265 */ 15266function createBaseEach(eachFunc, fromRight) { 15267 return function(collection, iteratee) { 15268 if (collection == null) { 15269 return collection; 15270 } 15271 if (!isArrayLike(collection)) { 15272 return eachFunc(collection, iteratee); 15273 } 15274 var length = collection.length, 15275 index = fromRight ? length : -1, 15276 iterable = Object(collection); 15277 15278 while ((fromRight ? index-- : ++index < length)) { 15279 if (iteratee(iterable[index], index, iterable) === false) { 15280 break; 15281 } 15282 } 15283 return collection; 15284 }; 15285} 15286 15287module.exports = createBaseEach; 15288 15289 15290/***/ }), 15291/* 278 */ 15292/***/ (function(module, exports) { 15293 15294/** 15295 * The base implementation of `_.reduce` and `_.reduceRight`, without support 15296 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 15297 * 15298 * @private 15299 * @param {Array|Object} collection The collection to iterate over. 15300 * @param {Function} iteratee The function invoked per iteration. 15301 * @param {*} accumulator The initial value. 15302 * @param {boolean} initAccum Specify using the first or last element of 15303 * `collection` as the initial value. 15304 * @param {Function} eachFunc The function to iterate over `collection`. 15305 * @returns {*} Returns the accumulated value. 15306 */ 15307function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 15308 eachFunc(collection, function(value, index, collection) { 15309 accumulator = initAccum 15310 ? (initAccum = false, value) 15311 : iteratee(accumulator, value, index, collection); 15312 }); 15313 return accumulator; 15314} 15315 15316module.exports = baseReduce; 15317 15318 15319/***/ }), 15320/* 279 */ 15321/***/ (function(module, exports, __webpack_require__) { 15322 15323var createFind = __webpack_require__(96), 15324 findLastIndex = __webpack_require__(280); 15325 15326/** 15327 * This method is like `_.find` except that it iterates over elements of 15328 * `collection` from right to left. 15329 * 15330 * @static 15331 * @memberOf _ 15332 * @since 2.0.0 15333 * @category Collection 15334 * @param {Array|Object} collection The collection to inspect. 15335 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15336 * @param {number} [fromIndex=collection.length-1] The index to search from. 15337 * @returns {*} Returns the matched element, else `undefined`. 15338 * @example 15339 * 15340 * _.findLast([1, 2, 3, 4], function(n) { 15341 * return n % 2 == 1; 15342 * }); 15343 * // => 3 15344 */ 15345var findLast = createFind(findLastIndex); 15346 15347module.exports = findLast; 15348 15349 15350/***/ }), 15351/* 280 */ 15352/***/ (function(module, exports, __webpack_require__) { 15353 15354var baseFindIndex = __webpack_require__(114), 15355 baseIteratee = __webpack_require__(10), 15356 toInteger = __webpack_require__(115); 15357 15358/* Built-in method references for those with the same name as other `lodash` methods. */ 15359var nativeMax = Math.max, 15360 nativeMin = Math.min; 15361 15362/** 15363 * This method is like `_.findIndex` except that it iterates over elements 15364 * of `collection` from right to left. 15365 * 15366 * @static 15367 * @memberOf _ 15368 * @since 2.0.0 15369 * @category Array 15370 * @param {Array} array The array to inspect. 15371 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15372 * @param {number} [fromIndex=array.length-1] The index to search from. 15373 * @returns {number} Returns the index of the found element, else `-1`. 15374 * @example 15375 * 15376 * var users = [ 15377 * { 'user': 'barney', 'active': true }, 15378 * { 'user': 'fred', 'active': false }, 15379 * { 'user': 'pebbles', 'active': false } 15380 * ]; 15381 * 15382 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 15383 * // => 2 15384 * 15385 * // The `_.matches` iteratee shorthand. 15386 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 15387 * // => 0 15388 * 15389 * // The `_.matchesProperty` iteratee shorthand. 15390 * _.findLastIndex(users, ['active', false]); 15391 * // => 2 15392 * 15393 * // The `_.property` iteratee shorthand. 15394 * _.findLastIndex(users, 'active'); 15395 * // => 0 15396 */ 15397function findLastIndex(array, predicate, fromIndex) { 15398 var length = array == null ? 0 : array.length; 15399 if (!length) { 15400 return -1; 15401 } 15402 var index = length - 1; 15403 if (fromIndex !== undefined) { 15404 index = toInteger(fromIndex); 15405 index = fromIndex < 0 15406 ? nativeMax(length + index, 0) 15407 : nativeMin(index, length - 1); 15408 } 15409 return baseFindIndex(array, baseIteratee(predicate, 3), index, true); 15410} 15411 15412module.exports = findLastIndex; 15413 15414
15415/***/ }), 15416/* 281 */ 15417/***/ (function(module, exports, __webpack_require__) { 15418 15419"use strict"; 15420 15421 15422var _interopRequireDefault = __webpack_require__(0); 15423 15424var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 15425 15426Object.defineProperty(exports, "__esModule", { 15427 value: true 15428}); 15429exports["default"] = void 0; // from https://github.com/acdlite/recompose/blob/master/src/packages/recompose/shallowEqual.js 15430 15431/** 15432 * Copyright (c) 2013-present, Facebook, Inc. 15433 * 15434 * This source code is licensed under the MIT license found in the 15435 * LICENSE file in the root directory of this source tree. 15436 * 15437 * @providesModule shallowEqual 15438 * @typechecks 15439 */ 15440 15441/* eslint-disable no-self-compare */ 15442 15443var hasOwnProperty = Object.prototype.hasOwnProperty; 15444/** 15445 * inlined Object.is polyfill to avoid requiring consumers ship their own 15446 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 15447 */ 15448 15449function is(x, y) { 15450 // SameValue algorithm 15451 if (x === y) { 15452 // Steps 1-5, 7-10 15453 // Steps 6.b-6.e: +0 != -0 15454 // Added the nonzero y check to make Flow happy, but it is redundant 15455 return x !== 0 || y !== 0 || 1 / x === 1 / y; 15456 } // Step 6.a: NaN == NaN 15457 15458 15459 return x !== x && y !== y; 15460} 15461/** 15462 * Performs equality by iterating through keys on an object and returning false 15463 * when any key has values which are not strictly equal between the arguments. 15464 * Returns true when the values of all keys are strictly equal. 15465 */ 15466 15467 15468function shallowEqual(objA, objB) { 15469 if (is(objA, objB)) { 15470 return true; 15471 } 15472 15473 if ((0, _typeof2["default"])(objA) !== 'object' || objA === null || (0, _typeof2["default"])(objB) !== 'object' || objB === null) { 15474 return false; 15475 } 15476 15477 var keysA = Object.keys(objA); 15478 var keysB = Object.keys(objB); 15479 15480 if (keysA.length !== keysB.length) { 15481 return false; 15482 } // Test for A's keys different from B. 15483 15484 15485 for (var i = 0; i < keysA.length; i++) { 15486 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 15487 return false; 15488 } 15489 } 15490 15491 return true; 15492} 15493 15494var _default = shallowEqual; 15495exports["default"] = _default; 15496 15497/***/ }), 15498/* 282 */ 15499/***/ (function(module, exports, __webpack_require__) { 15500 15501"use strict"; 15502 15503 15504Object.defineProperty(exports, "__esModule", { 15505 value: true 15506}); 15507exports.ixInstances = void 0; 15508 15509var _constants = __webpack_require__(4); 15510 15511var _shared = __webpack_require__(15); 15512 15513var _timm = __webpack_require__(22); 15514/* eslint-env browser */ 15515 15516 15517var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 15518 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 15519 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 15520 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 15521 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 15522 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 15523 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; 15524var _shared$IX2EasingUtil = _shared.IX2EasingUtils, 15525 optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, 15526 applyEasing = _shared$IX2EasingUtil.applyEasing, 15527 createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; 15528var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; 15529var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 15530 getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, 15531 getRenderType = _shared$IX2VanillaUti.getRenderType, 15532 getStyleProp = _shared$IX2VanillaUti.getStyleProp; 15533
15534var continuousInstance = function continuousInstance(state, action) { 15535 var lastPosition = state.position, 15536 parameterId = state.parameterId, 15537 actionGroups = state.actionGroups, 15538 destinationKeys = state.destinationKeys, 15539 smoothing = state.smoothing, 15540 restingValue = state.restingValue, 15541 actionTypeId = state.actionTypeId, 15542 customEasingFn = state.customEasingFn, 15543 skipMotion = state.skipMotion, 15544 skipToValue = state.skipToValue; 15545 var parameters = action.payload.parameters; 15546 var velocity = Math.max(1 - smoothing, 0.01); 15547 var paramValue = parameters[parameterId]; 15548 15549 if (paramValue == null) { 15550 velocity = 1; 15551 paramValue = restingValue; 15552 } 15553 15554 var nextPosition = Math.max(paramValue, 0) || 0; 15555 var positionDiff = optimizeFloat(nextPosition - lastPosition); 15556 var position = skipMotion ? skipToValue : optimizeFloat(lastPosition + positionDiff * velocity); 15557 var keyframePosition = position * 100; 15558 15559 if (position === lastPosition && state.current) { 15560 return state; 15561 } 15562 15563 var fromActionItem; 15564 var toActionItem; 15565 var positionOffset; 15566 var positionRange; 15567 15568 for (var i = 0, length = actionGroups.length; i < length; i++) { 15569 var _actionGroups$i = actionGroups[i], 15570 keyframe = _actionGroups$i.keyframe, 15571 actionItems = _actionGroups$i.actionItems; 15572 15573 if (i === 0) { 15574 fromActionItem = actionItems[0]; 15575 } 15576 15577 if (keyframePosition >= keyframe) { 15578 fromActionItem = actionItems[0]; 15579 var nextGroup = actionGroups[i + 1]; 15580 var hasNextItem = nextGroup && keyframePosition !== keyframe; 15581 toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; 15582 15583 if (hasNextItem) { 15584 positionOffset = keyframe / 100; 15585 positionRange = (nextGroup.keyframe - keyframe) / 100; 15586 } 15587 } 15588 } 15589 15590 var current = {}; 15591 15592 if (fromActionItem && !toActionItem) { 15593 for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { 15594 var key = destinationKeys[_i]; 15595 current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); 15596 } 15597 } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { 15598 var localPosition = (position - positionOffset) / positionRange; 15599 var easing = fromActionItem.config.easing; 15600 var eased = applyEasing(easing, localPosition, customEasingFn); 15601 15602 for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { 15603 var _key = destinationKeys[_i2]; 15604 var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); 15605 var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe â toVal and fromVal could potentially be null, need to update type higher to determine number 15606 15607 var diff = toVal - fromVal; // $FlowFixMe 15608 15609 var value = diff * eased + fromVal; 15610 current[_key] = value; 15611 } 15612 } 15613 15614 return (0, _timm.merge)(state, { 15615 position: position, 15616 current: current 15617 }); 15618}; 15619 15620var timedInstance = function timedInstance(state, action) { 15621 var _state = state, 15622 active = _state.active, 15623 origin = _state.origin, 15624 start = _state.start, 15625 immediate = _state.immediate, 15626 renderType = _state.renderType, 15627 verbose = _state.verbose, 15628 actionItem = _state.actionItem, 15629 destination = _state.destination, 15630 destinationKeys = _state.destinationKeys, 15631 pluginDuration = _state.pluginDuration, 15632 instanceDelay = _state.instanceDelay, 15633 customEasingFn = _state.customEasingFn, 15634 skipMotion = _state.skipMotion; 15635 var easing = actionItem.config.easing; 15636 var _actionItem$config = actionItem.config, 15637 duration = _actionItem$config.duration, 15638 delay = _actionItem$config.delay; 15639 15640 if (pluginDuration != null) { 15641 duration = pluginDuration; 15642 } 15643 15644 delay = instanceDelay != null ? instanceDelay : delay; 15645 15646 if (renderType === RENDER_GENERAL) { 15647 duration = 0; 15648 } else if (immediate || skipMotion) { 15649 duration = delay = 0; 15650 } 15651 15652 var now = action.payload.now; 15653 15654 if (active && origin) { 15655 var delta = now - (start + delay); 15656 15657 if (verbose) { 15658 var verboseDelta = now - start; 15659 var verboseDuration = duration + delay; 15660 var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); 15661 state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); 15662 } 15663 15664 if (delta < 0) { 15665 return state; 15666 } 15667 15668 var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); 15669 var eased = applyEasing(easing, position, customEasingFn); 15670 var newProps = {}; 15671 var current = null; 15672 15673 if (destinationKeys.length) { 15674 current = destinationKeys.reduce(function (result, key) { 15675 var destValue = destination[key]; 15676 var originVal = parseFloat(origin[key]) || 0; 15677 var diff = parseFloat(destValue) - originVal; 15678 var value = diff * eased + originVal; 15679 result[key] = value; 15680 return result; 15681 }, {}); 15682 } 15683 15684 newProps.current = current; 15685 newProps.position = position; 15686 15687 if (position === 1) { 15688 newProps.active = false;
15689 newProps.complete = true; 15690 } 15691 15692 return (0, _timm.merge)(state, newProps); 15693 } 15694 15695 return state; 15696}; 15697 15698var ixInstances = function ixInstances() { 15699 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 15700 var action = arguments.length > 1 ? arguments[1] : undefined; 15701 15702 switch (action.type) { 15703 case IX2_RAW_DATA_IMPORTED: 15704 { 15705 return action.payload.ixInstances || Object.freeze({}); 15706 } 15707 15708 case IX2_SESSION_STOPPED: 15709 { 15710 return Object.freeze({}); 15711 } 15712 15713 case IX2_INSTANCE_ADDED: 15714 { 15715 var _action$payload = action.payload, 15716 instanceId = _action$payload.instanceId, 15717 elementId = _action$payload.elementId, 15718 actionItem = _action$payload.actionItem, 15719 eventId = _action$payload.eventId, 15720 eventTarget = _action$payload.eventTarget, 15721 eventStateKey = _action$payload.eventStateKey, 15722 actionListId = _action$payload.actionListId, 15723 groupIndex = _action$payload.groupIndex, 15724 isCarrier = _action$payload.isCarrier, 15725 origin = _action$payload.origin, 15726 destination = _action$payload.destination, 15727 immediate = _action$payload.immediate, 15728 verbose = _action$payload.verbose, 15729 continuous = _action$payload.continuous, 15730 parameterId = _action$payload.parameterId, 15731 actionGroups = _action$payload.actionGroups, 15732 smoothing = _action$payload.smoothing, 15733 restingValue = _action$payload.restingValue, 15734 pluginInstance = _action$payload.pluginInstance, 15735 pluginDuration = _action$payload.pluginDuration, 15736 instanceDelay = _action$payload.instanceDelay, 15737 skipMotion = _action$payload.skipMotion, 15738 skipToValue = _action$payload.skipToValue; 15739 var actionTypeId = actionItem.actionTypeId; 15740 var renderType = getRenderType(actionTypeId); 15741 var styleProp = getStyleProp(renderType, actionTypeId); 15742 var destinationKeys = Object.keys(destination).filter(function (key) { 15743 return destination[key] != null; 15744 }); 15745 var easing = actionItem.config.easing; 15746 return (0, _timm.set)(state, instanceId, { 15747 id: instanceId, 15748 elementId: elementId, 15749 active: false, 15750 position: 0, 15751 start: 0, 15752 origin: origin, 15753 destination: destination, 15754 destinationKeys: destinationKeys, 15755 immediate: immediate, 15756 verbose: verbose, 15757 current: null, 15758 actionItem: actionItem, 15759 actionTypeId: actionTypeId, 15760 eventId: eventId, 15761 eventTarget: eventTarget, 15762 eventStateKey: eventStateKey, 15763 actionListId: actionListId, 15764 groupIndex: groupIndex, 15765 renderType: renderType, 15766 isCarrier: isCarrier, 15767 styleProp: styleProp, 15768 continuous: continuous, 15769 parameterId: parameterId, 15770 actionGroups: actionGroups, 15771 smoothing: smoothing, 15772 restingValue: restingValue, 15773 pluginInstance: pluginInstance, 15774 pluginDuration: pluginDuration, 15775 instanceDelay: instanceDelay, 15776 skipMotion: skipMotion, 15777 skipToValue: skipToValue, 15778 customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined 15779 }); 15780 } 15781 15782 case IX2_INSTANCE_STARTED: 15783 { 15784 var _action$payload2 = action.payload, 15785 _instanceId = _action$payload2.instanceId, 15786 time = _action$payload2.time; 15787 return (0, _timm.mergeIn)(state, [_instanceId], { 15788 active: true, 15789 complete: false, 15790 start: time 15791 }); 15792 } 15793 15794 case IX2_INSTANCE_REMOVED: 15795 { 15796 var _instanceId2 = action.payload.instanceId; 15797 15798 if (!state[_instanceId2]) { 15799 return state; 15800 } 15801 15802 var newState = {}; 15803 var keys = Object.keys(state); 15804 var length = keys.length; 15805 15806 for (var i = 0; i < length; i++) { 15807 var key = keys[i]; 15808 15809 if (key !== _instanceId2) { 15810 newState[key] = state[key]; 15811 } 15812 } 15813 15814 return newState; 15815 } 15816 15817 case IX2_ANIMATION_FRAME_CHANGED: 15818 { 15819 var _newState = state; 15820 15821 var _keys = Object.keys(state); 15822 15823 var _length3 = _keys.length; 15824 15825 for (var _i3 = 0; _i3 < _length3; _i3++) { 15826 var _key2 = _keys[_i3]; 15827 var instance = state[_key2]; 15828 var reducer = instance.continuous ? continuousInstance : timedInstance; 15829 _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); 15830 } 15831 15832 return _newState; 15833 } 15834 15835 default: 15836 { 15837 return state; 15838 } 15839 } 15840}; 15841 15842exports.ixInstances = ixInstances; 15843 15844/***/ }), 15845/* 283 */ 15846/***/ (function(module, exports, __webpack_require__) { 15847 15848"use strict"; 15849 15850 15851Object.defineProperty(exports, "__esModule", { 15852 value: true 15853}); 15854exports.ixParameters = void 0; 15855 15856var _constants = __webpack_require__(4); 15857 15858var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
15859 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 15860 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 15861 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore 15862 15863var ixParameters = function ixParameters() { 15864 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { 15865 /*mutable flat state*/ 15866 }; 15867 var action = arguments.length > 1 ? arguments[1] : undefined; 15868 15869 switch (action.type) { 15870 case IX2_RAW_DATA_IMPORTED: 15871 { 15872 return action.payload.ixParameters || { 15873 /*mutable flat state*/ 15874 }; 15875 } 15876 15877 case IX2_SESSION_STOPPED: 15878 { 15879 return { 15880 /*mutable flat state*/ 15881 }; 15882 } 15883 15884 case IX2_PARAMETER_CHANGED: 15885 { 15886 var _action$payload = action.payload, 15887 key = _action$payload.key, 15888 value = _action$payload.value; 15889 state[key] = value; 15890 return state; 15891 } 15892 15893 default: 15894 { 15895 return state; 15896 } 15897 } 15898}; 15899 15900exports.ixParameters = ixParameters; 15901 15902/***/ }), 15903/* 284 */ 15904/***/ (function(module, exports) { 15905 15906function _objectWithoutPropertiesLoose(source, excluded) { 15907 if (source == null) return {}; 15908 var target = {}; 15909 var sourceKeys = Object.keys(source); 15910 var key, i; 15911 15912 for (i = 0; i < sourceKeys.length; i++) { 15913 key = sourceKeys[i]; 15914 if (excluded.indexOf(key) >= 0) continue; 15915 target[key] = source[key]; 15916 } 15917 15918 return target; 15919} 15920 15921module.exports = _objectWithoutPropertiesLoose; 15922 15923/***/ }), 15924/* 285 */ 15925/***/ (function(module, exports, __webpack_require__) { 15926 15927var baseKeys = __webpack_require__(57), 15928 getTag = __webpack_require__(59), 15929 isArrayLike = __webpack_require__(17), 15930 isString = __webpack_require__(286), 15931 stringSize = __webpack_require__(287); 15932 15933/** `Object#toString` result references. */ 15934var mapTag = '[object Map]', 15935 setTag = '[object Set]'; 15936 15937/** 15938 * Gets the size of `collection` by returning its length for array-like 15939 * values or the number of own enumerable string keyed properties for objects. 15940 * 15941 * @static 15942 * @memberOf _ 15943 * @since 0.1.0 15944 * @category Collection 15945 * @param {Array|Object|string} collection The collection to inspect. 15946 * @returns {number} Returns the collection size. 15947 * @example 15948 * 15949 * _.size([1, 2, 3]); 15950 * // => 3 15951 * 15952 * _.size({ 'a': 1, 'b': 2 }); 15953 * // => 2 15954 * 15955 * _.size('pebbles'); 15956 * // => 7 15957 */ 15958function size(collection) { 15959 if (collection == null) { 15960 return 0; 15961 } 15962 if (isArrayLike(collection)) { 15963 return isString(collection) ? stringSize(collection) : collection.length; 15964 } 15965 var tag = getTag(collection); 15966 if (tag == mapTag || tag == setTag) { 15967 return collection.size; 15968 } 15969 return baseKeys(collection).length; 15970} 15971 15972module.exports = size; 15973 15974 15975/***/ }), 15976/* 286 */ 15977/***/ (function(module, exports, __webpack_require__) { 15978 15979var baseGetTag = __webpack_require__(16), 15980 isArray = __webpack_require__(2), 15981 isObjectLike = __webpack_require__(12); 15982 15983/** `Object#toString` result references. */ 15984var stringTag = '[object String]'; 15985 15986/** 15987 * Checks if `value` is classified as a `String` primitive or object. 15988 * 15989 * @static 15990 * @since 0.1.0 15991 * @memberOf _ 15992 * @category Lang 15993 * @param {*} value The value to check. 15994 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 15995 * @example 15996 * 15997 * _.isString('abc'); 15998 * // => true 15999 * 16000 * _.isString(1); 16001 * // => false 16002 */ 16003function isString(value) { 16004 return typeof value == 'string' || 16005 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 16006} 16007 16008module.exports = isString; 16009 16010 16011/***/ }), 16012/* 287 */ 16013/***/ (function(module, exports, __webpack_require__) { 16014 16015var asciiSize = __webpack_require__(288), 16016 hasUnicode = __webpack_require__(289), 16017 unicodeSize = __webpack_require__(290); 16018 16019/** 16020 * Gets the number of symbols in `string`. 16021 * 16022 * @private 16023 * @param {string} string The string to inspect. 16024 * @returns {number} Returns the string size. 16025 */ 16026function stringSize(string) { 16027 return hasUnicode(string) 16028 ? unicodeSize(string) 16029 : asciiSize(string); 16030} 16031 16032module.exports = stringSize; 16033 16034 16035/***/ }), 16036/* 288 */ 16037/***/ (function(module, exports, __webpack_require__) { 16038 16039var baseProperty = __webpack_require__(113); 16040 16041/** 16042 * Gets the size of an ASCII `string`. 16043 * 16044 * @private 16045 * @param {string} string The string inspect. 16046 * @returns {number} Returns the string size. 16047 */ 16048var asciiSize = baseProperty('length'); 16049 16050module.exports = asciiSize; 16051 16052 16053/***/ }), 16054/* 289 */
vendor: 2,921 bytes, lines 16055-16144
16055/***/ (function(module, exports) { 16056 16057/** Used to compose unicode character classes. */ 16058var rsAstralRange = '\\ud800-\\udfff', 16059 rsComboMarksRange = '\\u0300-\\u036f', 16060 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 16061 rsComboSymbolsRange = '\\u20d0-\\u20ff', 16062 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 16063 rsVarRange = '\\ufe0e\\ufe0f'; 16064 16065/** Used to compose unicode capture groups. */ 16066var rsZWJ = '\\u200d'; 16067 16068/** 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/). */ 16069var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 16070 16071/** 16072 * Checks if `string` contains Unicode symbols. 16073 * 16074 * @private 16075 * @param {string} string The string to inspect. 16076 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 16077 */ 16078function hasUnicode(string) { 16079 return reHasUnicode.test(string); 16080} 16081 16082module.exports = hasUnicode; 16083 16084 16085/***/ }), 16086/* 290 */ 16087/***/ (function(module, exports) { 16088 16089/** Used to compose unicode character classes. */ 16090var rsAstralRange = '\\ud800-\\udfff', 16091 rsComboMarksRange = '\\u0300-\\u036f', 16092 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 16093 rsComboSymbolsRange = '\\u20d0-\\u20ff', 16094 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 16095 rsVarRange = '\\ufe0e\\ufe0f'; 16096 16097/** Used to compose unicode capture groups. */ 16098var rsAstral = '[' + rsAstralRange + ']', 16099 rsCombo = '[' + rsComboRange + ']', 16100 rsFitz = '\\ud83c[\\udffb-\\udfff]', 16101 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 16102 rsNonAstral = '[^' + rsAstralRange + ']', 16103 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 16104 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 16105 rsZWJ = '\\u200d'; 16106 16107/** Used to compose unicode regexes. */ 16108var reOptMod = rsModifier + '?', 16109 rsOptVar = '[' + rsVarRange + ']?', 16110 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 16111 rsSeq = rsOptVar + reOptMod + rsOptJoin, 16112 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 16113 16114/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 16115var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 16116 16117/** 16118 * Gets the size of a Unicode `string`. 16119 * 16120 * @private 16121 * @param {string} string The string inspect. 16122 * @returns {number} Returns the string size. 16123 */ 16124function unicodeSize(string) { 16125 var result = reUnicode.lastIndex = 0; 16126 while (reUnicode.test(string)) { 16127 ++result; 16128 } 16129 return result; 16130} 16131 16132module.exports = unicodeSize; 16133 16134 16135/***/ }), 16136/* 291 */ 16137/***/ (function(module, exports, __webpack_require__) { 16138 16139var baseIteratee = __webpack_require__(10), 16140 negate = __webpack_require__(292), 16141 pickBy = __webpack_require__(293); 16142 16143/** 16144 * The opposite of `_.pickBy`;
16144 this method creates an object composed of 16145 * the own and inherited enumerable string keyed properties of `object` that 16146 * `predicate` doesn't return truthy for. The predicate is invoked with two 16147 * arguments: (value, key). 16148 * 16149 * @static 16150 * @memberOf _ 16151 * @since 4.0.0 16152 * @category Object 16153 * @param {Object} object The source object. 16154 * @param {Function} [predicate=_.identity] The function invoked per property. 16155 * @returns {Object} Returns the new object. 16156 * @example 16157 * 16158 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 16159 * 16160 * _.omitBy(object, _.isNumber); 16161 * // => { 'b': '2' } 16162 */ 16163function omitBy(object, predicate) { 16164 return pickBy(object, negate(baseIteratee(predicate))); 16165} 16166 16167module.exports = omitBy; 16168 16169 16170/***/ }), 16171/* 292 */ 16172/***/ (function(module, exports) { 16173 16174/** Error message constants. */ 16175var FUNC_ERROR_TEXT = 'Expected a function'; 16176 16177/** 16178 * Creates a function that negates the result of the predicate `func`. The 16179 * `func` predicate is invoked with the `this` binding and arguments of the 16180 * created function. 16181 * 16182 * @static 16183 * @memberOf _ 16184 * @since 3.0.0 16185 * @category Function 16186 * @param {Function} predicate The predicate to negate. 16187 * @returns {Function} Returns the new negated function. 16188 * @example 16189 * 16190 * function isEven(n) { 16191 * return n % 2 == 0; 16192 * } 16193 * 16194 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 16195 * // => [1, 3, 5] 16196 */ 16197function negate(predicate) { 16198 if (typeof predicate != 'function') { 16199 throw new TypeError(FUNC_ERROR_TEXT); 16200 } 16201 return function() { 16202 var args = arguments; 16203 switch (args.length) { 16204 case 0: return !predicate.call(this); 16205 case 1: return !predicate.call(this, args[0]); 16206 case 2: return !predicate.call(this, args[0], args[1]); 16207 case 3: return !predicate.call(this, args[0], args[1], args[2]); 16208 } 16209 return !predicate.apply(this, args); 16210 }; 16211} 16212 16213module.exports = negate; 16214 16215 16216/***/ }), 16217/* 293 */ 16218/***/ (function(module, exports, __webpack_require__) { 16219 16220var arrayMap = __webpack_require__(112), 16221 baseIteratee = __webpack_require__(10), 16222 basePickBy = __webpack_require__(294), 16223 getAllKeysIn = __webpack_require__(297); 16224 16225/**
16226 * Creates an object composed of the `object` properties `predicate` returns 16227 * truthy for. The predicate is invoked with two arguments: (value, key). 16228 * 16229 * @static 16230 * @memberOf _ 16231 * @since 4.0.0 16232 * @category Object 16233 * @param {Object} object The source object. 16234 * @param {Function} [predicate=_.identity] The function invoked per property. 16235 * @returns {Object} Returns the new object. 16236 * @example 16237 * 16238 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 16239 * 16240 * _.pickBy(object, _.isNumber); 16241 * // => { 'a': 1, 'c': 3 } 16242 */ 16243function pickBy(object, predicate) { 16244 if (object == null) { 16245 return {}; 16246 } 16247 var props = arrayMap(getAllKeysIn(object), function(prop) { 16248 return [prop]; 16249 }); 16250 predicate = baseIteratee(predicate); 16251 return basePickBy(object, props, function(value, path) { 16252 return predicate(value, path[0]); 16253 }); 16254} 16255 16256module.exports = pickBy; 16257 16258 16259/***/ }), 16260/* 294 */ 16261/***/ (function(module, exports, __webpack_require__) { 16262 16263var baseGet = __webpack_require__(61), 16264 baseSet = __webpack_require__(295), 16265 castPath = __webpack_require__(37); 16266 16267/** 16268 * The base implementation of `_.pickBy` without support for iteratee shorthands. 16269 * 16270 * @private 16271 * @param {Object} object The source object. 16272 * @param {string[]} paths The property paths to pick. 16273 * @param {Function} predicate The function invoked per property. 16274 * @returns {Object} Returns the new object. 16275 */ 16276function basePickBy(object, paths, predicate) { 16277 var index = -1, 16278 length = paths.length, 16279 result = {}; 16280 16281 while (++index < length) { 16282 var path = paths[index], 16283 value = baseGet(object, path); 16284 16285 if (predicate(value, path)) { 16286 baseSet(result, castPath(path, object), value); 16287 } 16288 } 16289 return result; 16290} 16291 16292module.exports = basePickBy; 16293 16294 16295/***/ }), 16296/* 295 */ 16297/***/ (function(module, exports, __webpack_require__) { 16298 16299var assignValue = __webpack_require__(296), 16300 castPath = __webpack_require__(37), 16301 isIndex = __webpack_require__(54), 16302 isObject = __webpack_require__(8), 16303 toKey = __webpack_require__(24); 16304 16305/** 16306 * The base implementation of `_.set`. 16307 * 16308 * @private 16309 * @param {Object} object The object to modify. 16310 * @param {Array|string} path The path of the property to set. 16311 * @param {*} value The value to set. 16312 * @param {Function} [customizer] The function to customize path creation. 16313 * @returns {Object} Returns `object`. 16314 */ 16315function baseSet(object, path, value, customizer) { 16316 if (!isObject(object)) { 16317 return object; 16318 } 16319 path = castPath(path, object); 16320 16321 var index = -1, 16322 length = path.length, 16323 lastIndex = length - 1, 16324 nested = object; 16325 16326 while (nested != null && ++index < length) { 16327 var key = toKey(path[index]), 16328 newValue = value; 16329 16330 if (key === '__proto__' || key === 'constructor' || key === 'prototype') { 16331 return object; 16332 } 16333 16334 if (index != lastIndex) { 16335 var objValue = nested[key]; 16336 newValue = customizer ? customizer(objValue, key, nested) : undefined; 16337 if (newValue === undefined) { 16338 newValue = isObject(objValue) 16339 ? objValue 16340 : (isIndex(path[index + 1]) ? [] : {}); 16341 } 16342 } 16343 assignValue(nested, key, newValue); 16344 nested = nested[key]; 16345 } 16346 return object; 16347} 16348 16349module.exports = baseSet; 16350 16351 16352/***/ }), 16353/* 296 */ 16354/***/ (function(module, exports, __webpack_require__) { 16355 16356var baseAssignValue = __webpack_require__(124), 16357 eq = __webpack_require__(49); 16358 16359/** Used for built-in method references. */ 16360var objectProto = Object.prototype; 16361 16362/** Used to check objects for own properties. */ 16363var hasOwnProperty = objectProto.hasOwnProperty; 16364 16365/** 16366 * Assigns `value` to `key` of `object` if the existing value is not equivalent 16367 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 16368 * for equality comparisons. 16369 * 16370 * @private 16371 * @param {Object} object The object to modify. 16372 * @param {string} key The key of the property to assign. 16373 * @param {*} value The value to assign. 16374 */ 16375function assignValue(object, key, value) { 16376 var objValue = object[key]; 16377 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 16378 (value === undefined && !(key in object))) { 16379 baseAssignValue(object, key, value); 16380 } 16381} 16382 16383module.exports = assignValue; 16384 16385 16386/***/ }), 16387/* 297 */ 16388/***/ (function(module, exports, __webpack_require__) { 16389 16390var baseGetAllKeys = __webpack_require__(103), 16391 getSymbolsIn = __webpack_require__(298), 16392 keysIn = __webpack_require__(300); 16393 16394/** 16395 * Creates an array of own and inherited enumerable property names and 16396 * symbols of `object`. 16397 * 16398 * @private 16399 * @param {Object} object The object to query. 16400 * @returns {Array} Returns the array of property names and symbols. 16401 */ 16402function getAllKeysIn(object) { 16403 return baseGetAllKeys(object, keysIn, getSymbolsIn); 16404} 16405 16406module.exports = getAllKeysIn; 16407 16408 16409/***/ }), 16410/* 298 */ 16411/***/ (function(module, exports, __webpack_require__) { 16412 16413var arrayPush = __webpack_require__(52), 16414 getPrototype = __webpack_require__(299), 16415 getSymbols = __webpack_require__(104), 16416 stubArray = __webpack_require__(105); 16417 16418/* Built-in method references for those with the same name as other `lodash` methods. */ 16419var nativeGetSymbols = Object.getOwnPropertySymbols; 16420 16421/** 16422 * Creates an array of the own and inherited enumerable symbols of `object`. 16423 * 16424 * @private 16425 * @param {Object} object The object to query. 16426 * @returns {Array} Returns the array of symbols. 16427 */ 16428var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 16429 var result = []; 16430 while (object) {
vendor: 8,847 bytes, lines 16431-16789
16431 arrayPush(result, getSymbols(object)); 16432 object = getPrototype(object); 16433 } 16434 return result; 16435}; 16436 16437module.exports = getSymbolsIn; 16438 16439 16440/***/ }), 16441/* 299 */ 16442/***/ (function(module, exports, __webpack_require__) { 16443 16444var overArg = __webpack_require__(108); 16445 16446/** Built-in value references. */ 16447var getPrototype = overArg(Object.getPrototypeOf, Object); 16448 16449module.exports = getPrototype; 16450 16451 16452/***/ }), 16453/* 300 */ 16454/***/ (function(module, exports, __webpack_require__) { 16455 16456var arrayLikeKeys = __webpack_require__(106), 16457 baseKeysIn = __webpack_require__(301), 16458 isArrayLike = __webpack_require__(17); 16459 16460/** 16461 * Creates an array of the own and inherited enumerable property names of `object`. 16462 * 16463 * **Note:** Non-object values are coerced to objects. 16464 * 16465 * @static 16466 * @memberOf _ 16467 * @since 3.0.0 16468 * @category Object 16469 * @param {Object} object The object to query. 16470 * @returns {Array} Returns the array of property names. 16471 * @example 16472 * 16473 * function Foo() { 16474 * this.a = 1; 16475 * this.b = 2; 16476 * } 16477 * 16478 * Foo.prototype.c = 3; 16479 * 16480 * _.keysIn(new Foo); 16481 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 16482 */ 16483function keysIn(object) { 16484 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 16485} 16486 16487module.exports = keysIn; 16488 16489 16490/***/ }), 16491/* 301 */ 16492/***/ (function(module, exports, __webpack_require__) { 16493 16494var isObject = __webpack_require__(8), 16495 isPrototype = __webpack_require__(58), 16496 nativeKeysIn = __webpack_require__(302); 16497 16498/** Used for built-in method references. */ 16499var objectProto = Object.prototype; 16500 16501/** Used to check objects for own properties. */ 16502var hasOwnProperty = objectProto.hasOwnProperty; 16503 16504/** 16505 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 16506 * 16507 * @private 16508 * @param {Object} object The object to query. 16509 * @returns {Array} Returns the array of property names. 16510 */ 16511function baseKeysIn(object) { 16512 if (!isObject(object)) { 16513 return nativeKeysIn(object); 16514 } 16515 var isProto = isPrototype(object), 16516 result = []; 16517 16518 for (var key in object) { 16519 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 16520 result.push(key); 16521 } 16522 } 16523 return result; 16524} 16525 16526module.exports = baseKeysIn; 16527 16528 16529/***/ }), 16530/* 302 */ 16531/***/ (function(module, exports) { 16532 16533/** 16534 * This function is like 16535 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 16536 * except that it includes inherited enumerable properties. 16537 * 16538 * @private 16539 * @param {Object} object The object to query. 16540 * @returns {Array} Returns the array of property names. 16541 */ 16542function nativeKeysIn(object) { 16543 var result = []; 16544 if (object != null) { 16545 for (var key in Object(object)) { 16546 result.push(key); 16547 } 16548 } 16549 return result; 16550} 16551 16552module.exports = nativeKeysIn; 16553 16554 16555/***/ }), 16556/* 303 */ 16557/***/ (function(module, exports, __webpack_require__) { 16558 16559var baseKeys = __webpack_require__(57), 16560 getTag = __webpack_require__(59), 16561 isArguments = __webpack_require__(36), 16562 isArray = __webpack_require__(2), 16563 isArrayLike = __webpack_require__(17), 16564 isBuffer = __webpack_require__(53), 16565 isPrototype = __webpack_require__(58), 16566 isTypedArray = __webpack_require__(55); 16567 16568/** `Object#toString` result references. */ 16569var mapTag = '[object Map]', 16570 setTag = '[object Set]'; 16571 16572/** Used for built-in method references. */ 16573var objectProto = Object.prototype; 16574 16575/** Used to check objects for own properties. */ 16576var hasOwnProperty = objectProto.hasOwnProperty; 16577 16578/** 16579 * Checks if `value` is an empty object, collection, map, or set. 16580 * 16581 * Objects are considered empty if they have no own enumerable string keyed 16582 * properties. 16583 * 16584 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 16585 * jQuery-like collections are considered empty if they have a `length` of `0`. 16586 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 16587 * 16588 * @static 16589 * @memberOf _ 16590 * @since 0.1.0 16591 * @category Lang 16592 * @param {*} value The value to check. 16593 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 16594 * @example 16595 * 16596 * _.isEmpty(null); 16597 * // => true 16598 * 16599 * _.isEmpty(true); 16600 * // => true 16601 * 16602 * _.isEmpty(1); 16603 * // => true 16604 * 16605 * _.isEmpty([1, 2, 3]); 16606 * // => false 16607 * 16608 * _.isEmpty({ 'a': 1 }); 16609 * // => false 16610 */ 16611function isEmpty(value) { 16612 if (value == null) { 16613 return true; 16614 } 16615 if (isArrayLike(value) && 16616 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 16617 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 16618 return !value.length; 16619 } 16620 var tag = getTag(value); 16621 if (tag == mapTag || tag == setTag) { 16622 return !value.size; 16623 } 16624 if (isPrototype(value)) { 16625 return !baseKeys(value).length; 16626 } 16627 for (var key in value) { 16628 if (hasOwnProperty.call(value, key)) { 16629 return false; 16630 } 16631 } 16632 return true; 16633} 16634 16635module.exports = isEmpty; 16636 16637 16638/***/ }), 16639/* 304 */ 16640/***/ (function(module, exports, __webpack_require__) { 16641 16642var baseAssignValue = __webpack_require__(124), 16643 baseForOwn = __webpack_require__(122), 16644 baseIteratee = __webpack_require__(10); 16645 16646/** 16647 * Creates an object with the same keys as `object` and values generated 16648 * by running each own enumerable string keyed property of `object` thru 16649 * `iteratee`. The iteratee is invoked with three arguments: 16650 * (value, key, object). 16651 * 16652 * @static 16653 * @memberOf _ 16654 * @since 2.4.0 16655 * @category Object 16656 * @param {Object} object The object to iterate over. 16657 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 16658 * @returns {Object} Returns the new mapped object. 16659 * @see _.mapKeys 16660 * @example 16661 * 16662 * var users = { 16663 * 'fred': { 'user': 'fred', 'age': 40 }, 16664 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 16665 * }; 16666 * 16667 * _.mapValues(users, function(o) { return o.age; }); 16668 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 16669 * 16670 * // The `_.property` iteratee shorthand. 16671 * _.mapValues(users, 'age'); 16672 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 16673 */ 16674function mapValues(object, iteratee) { 16675 var result = {}; 16676 iteratee = baseIteratee(iteratee, 3); 16677 16678 baseForOwn(object, function(value, key, object) { 16679 baseAssignValue(result, key, iteratee(value, key, object)); 16680 }); 16681 return result; 16682} 16683 16684module.exports = mapValues; 16685 16686 16687/***/ }), 16688/* 305 */ 16689/***/ (function(module, exports, __webpack_require__) { 16690 16691var arrayEach = __webpack_require__(306), 16692 baseEach = __webpack_require__(121), 16693 castFunction = __webpack_require__(307), 16694 isArray = __webpack_require__(2); 16695 16696/** 16697 * Iterates over elements of `collection` and invokes `iteratee` for each element. 16698 * The iteratee is invoked with three arguments: (value, index|key, collection). 16699 * Iteratee functions may exit iteration early by explicitly returning `false`. 16700 * 16701 * **Note:** As with other "Collections" methods, objects with a "length" 16702 * property are iterated like arrays. To avoid this behavior use `_.forIn` 16703 * or `_.forOwn` for object iteration. 16704 * 16705 * @static 16706 * @memberOf _ 16707 * @since 0.1.0 16708 * @alias each 16709 * @category Collection 16710 * @param {Array|Object} collection The collection to iterate over. 16711 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 16712 * @returns {Array|Object} Returns `collection`. 16713 * @see _.forEachRight 16714 * @example 16715 * 16716 * _.forEach([1, 2], function(value) { 16717 * console.log(value); 16718 * }); 16719 * // => Logs `1` then `2`. 16720 * 16721 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 16722 * console.log(key); 16723 * }); 16724 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 16725 */ 16726function forEach(collection, iteratee) { 16727 var func = isArray(collection) ? arrayEach : baseEach; 16728 return func(collection, castFunction(iteratee)); 16729} 16730 16731module.exports = forEach; 16732 16733 16734/***/ }), 16735/* 306 */ 16736/***/ (function(module, exports) { 16737 16738/** 16739 * A specialized version of `_.forEach` for arrays without support for 16740 * iteratee shorthands. 16741 * 16742 * @private 16743 * @param {Array} [array] The array to iterate over. 16744 * @param {Function} iteratee The function invoked per iteration. 16745 * @returns {Array} Returns `array`. 16746 */ 16747function arrayEach(array, iteratee) { 16748 var index = -1, 16749 length = array == null ? 0 : array.length; 16750 16751 while (++index < length) { 16752 if (iteratee(array[index], index, array) === false) { 16753 break; 16754 } 16755 } 16756 return array; 16757} 16758 16759module.exports = arrayEach; 16760 16761 16762/***/ }), 16763/* 307 */ 16764/***/ (function(module, exports, __webpack_require__) { 16765 16766var identity = __webpack_require__(63); 16767 16768/** 16769 * Casts `value` to `identity` if it's not a function. 16770 * 16771 * @private 16772 * @param {*} value The value to inspect. 16773 * @returns {Function} Returns cast function. 16774 */ 16775function castFunction(value) { 16776 return typeof value == 'function' ? value : identity; 16777} 16778 16779module.exports = castFunction; 16780 16781 16782/***/ }), 16783/* 308 */ 16784/***/ (function(module, exports, __webpack_require__) { 16785 16786var debounce = __webpack_require__(309), 16787 isObject = __webpack_require__(8); 16788 16789/** Error message constants. */
vendor: 9,976 bytes, lines 16790-17104
16790var FUNC_ERROR_TEXT = 'Expected a function'; 16791 16792/** 16793 * Creates a throttled function that only invokes `func` at most once per 16794 * every `wait` milliseconds. The throttled function comes with a `cancel` 16795 * method to cancel delayed `func` invocations and a `flush` method to 16796 * immediately invoke them. Provide `options` to indicate whether `func` 16797 * should be invoked on the leading and/or trailing edge of the `wait` 16798 * timeout. The `func` is invoked with the last arguments provided to the 16799 * throttled function. Subsequent calls to the throttled function return the 16800 * result of the last `func` invocation. 16801 * 16802 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16803 * invoked on the trailing edge of the timeout only if the throttled function 16804 * is invoked more than once during the `wait` timeout. 16805 * 16806 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16807 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16808 * 16809 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16810 * for details over the differences between `_.throttle` and `_.debounce`. 16811 * 16812 * @static 16813 * @memberOf _ 16814 * @since 0.1.0 16815 * @category Function 16816 * @param {Function} func The function to throttle. 16817 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 16818 * @param {Object} [options={}] The options object. 16819 * @param {boolean} [options.leading=true] 16820 * Specify invoking on the leading edge of the timeout. 16821 * @param {boolean} [options.trailing=true] 16822 * Specify invoking on the trailing edge of the timeout. 16823 * @returns {Function} Returns the new throttled function. 16824 * @example 16825 * 16826 * // Avoid excessively updating the position while scrolling. 16827 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 16828 * 16829 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 16830 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 16831 * jQuery(element).on('click', throttled); 16832 * 16833 * // Cancel the trailing throttled invocation. 16834 * jQuery(window).on('popstate', throttled.cancel); 16835 */ 16836function throttle(func, wait, options) { 16837 var leading = true, 16838 trailing = true; 16839 16840 if (typeof func != 'function') { 16841 throw new TypeError(FUNC_ERROR_TEXT); 16842 } 16843 if (isObject(options)) { 16844 leading = 'leading' in options ? !!options.leading : leading; 16845 trailing = 'trailing' in options ? !!options.trailing : trailing; 16846 } 16847 return debounce(func, wait, { 16848 'leading': leading, 16849 'maxWait': wait, 16850 'trailing': trailing 16851 }); 16852} 16853 16854module.exports = throttle; 16855 16856 16857/***/ }), 16858/* 309 */ 16859/***/ (function(module, exports, __webpack_require__) { 16860 16861var isObject = __webpack_require__(8), 16862 now = __webpack_require__(310), 16863 toNumber = __webpack_require__(64); 16864 16865/** Error message constants. */ 16866var FUNC_ERROR_TEXT = 'Expected a function'; 16867 16868/* Built-in method references for those with the same name as other `lodash` methods. */ 16869var nativeMax = Math.max, 16870 nativeMin = Math.min; 16871 16872/** 16873 * Creates a debounced function that delays invoking `func` until after `wait` 16874 * milliseconds have elapsed since the last time the debounced function was 16875 * invoked. The debounced function comes with a `cancel` method to cancel 16876 * delayed `func` invocations and a `flush` method to immediately invoke them. 16877 * Provide `options` to indicate whether `func` should be invoked on the 16878 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 16879 * with the last arguments provided to the debounced function. Subsequent 16880 * calls to the debounced function return the result of the last `func` 16881 * invocation. 16882 * 16883 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16884 * invoked on the trailing edge of the timeout only if the debounced function 16885 * is invoked more than once during the `wait` timeout. 16886 * 16887 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16888 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16889 * 16890 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16891 * for details over the differences between `_.debounce` and `_.throttle`. 16892 * 16893 * @static 16894 * @memberOf _ 16895 * @since 0.1.0 16896 * @category Function 16897 * @param {Function} func The function to debounce. 16898 * @param {number} [wait=0] The number of milliseconds to delay. 16899 * @param {Object} [options={}] The options object. 16900 * @param {boolean} [options.leading=false] 16901 * Specify invoking on the leading edge of the timeout. 16902 * @param {number} [options.maxWait] 16903 * The maximum time `func` is allowed to be delayed before it's invoked. 16904 * @param {boolean} [options.trailing=true] 16905 * Specify invoking on the trailing edge of the timeout. 16906 * @returns {Function} Returns the new debounced function. 16907 * @example 16908 * 16909 * // Avoid costly calculations while the window size is in flux. 16910 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 16911 * 16912 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 16913 * jQuery(element).on('click', _.debounce(sendMail, 300, { 16914 * 'leading': true, 16915 * 'trailing': false 16916 * })); 16917 * 16918 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 16919 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 16920 * var source = new EventSource('/stream'); 16921 * jQuery(source).on('message', debounced); 16922 * 16923 * // Cancel the trailing debounced invocation. 16924 * jQuery(window).on('popstate', debounced.cancel); 16925 */ 16926function debounce(func, wait, options) { 16927 var lastArgs, 16928 lastThis, 16929 maxWait, 16930 result, 16931 timerId, 16932 lastCallTime, 16933 lastInvokeTime = 0, 16934 leading = false, 16935 maxing = false, 16936 trailing = true; 16937 16938 if (typeof func != 'function') { 16939 throw new TypeError(FUNC_ERROR_TEXT); 16940 } 16941 wait = toNumber(wait) || 0; 16942 if (isObject(options)) { 16943 leading = !!options.leading; 16944 maxing = 'maxWait' in options; 16945 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 16946 trailing = 'trailing' in options ? !!options.trailing : trailing; 16947 } 16948 16949 function invokeFunc(time) { 16950 var args = lastArgs, 16951 thisArg = lastThis; 16952 16953 lastArgs = lastThis = undefined; 16954 lastInvokeTime = time; 16955 result = func.apply(thisArg, args); 16956 return result; 16957 } 16958 16959 function leadingEdge(time) { 16960 // Reset any `maxWait` timer. 16961 lastInvokeTime = time; 16962 // Start the timer for the trailing edge. 16963 timerId = setTimeout(timerExpired, wait); 16964 // Invoke the leading edge. 16965 return leading ? invokeFunc(time) : result; 16966 } 16967 16968 function remainingWait(time) { 16969 var timeSinceLastCall = time - lastCallTime, 16970 timeSinceLastInvoke = time - lastInvokeTime, 16971 timeWaiting = wait - timeSinceLastCall; 16972 16973 return maxing 16974 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 16975 : timeWaiting; 16976 } 16977 16978 function shouldInvoke(time) { 16979 var timeSinceLastCall = time - lastCallTime, 16980 timeSinceLastInvoke = time - lastInvokeTime; 16981 16982 // Either this is the first call, activity has stopped and we're at the 16983 // trailing edge, the system time has gone backwards and we're treating 16984 // it as the trailing edge, or we've hit the `maxWait` limit. 16985 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 16986 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 16987 } 16988 16989 function timerExpired() { 16990 var time = now(); 16991 if (shouldInvoke(time)) { 16992 return trailingEdge(time); 16993 } 16994 // Restart the timer. 16995 timerId = setTimeout(timerExpired, remainingWait(time)); 16996 } 16997 16998 function trailingEdge(time) { 16999 timerId = undefined; 17000 17001 // Only invoke if we have `lastArgs` which means `func` has been 17002 // debounced at least once. 17003 if (trailing && lastArgs) { 17004 return invokeFunc(time); 17005 } 17006 lastArgs = lastThis = undefined; 17007 return result; 17008 } 17009 17010 function cancel() { 17011 if (timerId !== undefined) { 17012 clearTimeout(timerId); 17013 } 17014 lastInvokeTime = 0; 17015 lastArgs = lastCallTime = lastThis = timerId = undefined; 17016 } 17017 17018 function flush() { 17019 return timerId === undefined ? result : trailingEdge(now()); 17020 } 17021 17022 function debounced() { 17023 var time = now(), 17024 isInvoking = shouldInvoke(time); 17025 17026 lastArgs = arguments; 17027 lastThis = this; 17028 lastCallTime = time; 17029 17030 if (isInvoking) { 17031 if (timerId === undefined) { 17032 return leadingEdge(lastCallTime); 17033 } 17034 if (maxing) { 17035 // Handle invocations in a tight loop. 17036 clearTimeout(timerId); 17037 timerId = setTimeout(timerExpired, wait); 17038 return invokeFunc(lastCallTime); 17039 } 17040 } 17041 if (timerId === undefined) { 17042 timerId = setTimeout(timerExpired, wait); 17043 } 17044 return result; 17045 } 17046 debounced.cancel = cancel; 17047 debounced.flush = flush; 17048 return debounced; 17049} 17050 17051module.exports = debounce; 17052 17053 17054/***/ }), 17055/* 310 */ 17056/***/ (function(module, exports, __webpack_require__) { 17057 17058var root = __webpack_require__(6); 17059 17060/** 17061 * Gets the timestamp of the number of milliseconds that have elapsed since 17062 * the Unix epoch (1 January 1970 00:00:00 UTC). 17063 * 17064 * @static 17065 * @memberOf _ 17066 * @since 2.4.0 17067 * @category Date 17068 * @returns {number} Returns the timestamp. 17069 * @example 17070 * 17071 * _.defer(function(stamp) { 17072 * console.log(_.now() - stamp); 17073 * }, _.now()); 17074 * // => Logs the number of milliseconds it took for the deferred invocation. 17075 */ 17076var now = function() { 17077 return root.Date.now(); 17078}; 17079 17080module.exports = now; 17081 17082 17083/***/ }), 17084/* 311 */ 17085/***/ (function(module, exports, __webpack_require__) { 17086 17087"use strict"; 17088 17089 17090var _interopRequireDefault = __webpack_require__(0); 17091 17092var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 17093 17094Object.defineProperty(exports, "__esModule", { 17095 value: true 17096}); 17097exports.setStyle = setStyle; 17098exports.getStyle = getStyle; 17099exports.getProperty = getProperty; 17100exports.matchSelector = matchSelector; 17101exports.getQuerySelector = getQuerySelector; 17102exports.getValidDocument = getValidDocument; 17103exports.queryDocument = queryDocument; 17104exports.elementContains = elementContains;
17105exports.isSiblingNode = isSiblingNode; 17106exports.getChildElements = getChildElements; 17107exports.getSiblingElements = getSiblingElements; 17108exports.getRefType = getRefType; 17109exports.getClosestElement = void 0; 17110 17111var _shared = __webpack_require__(15); 17112 17113var _constants = __webpack_require__(4); 17114/* eslint-env browser */ 17115 17116 17117var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; 17118var _constants$IX2EngineC = _constants.IX2EngineConstants, 17119 IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, 17120 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 17121 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 17122 WF_PAGE = _constants$IX2EngineC.WF_PAGE; 17123 17124function setStyle(element, prop, value) { 17125 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17126 element.style[prop] = value; 17127} 17128 17129function getStyle(element, prop) { 17130 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17131 return element.style[prop]; 17132} 17133 17134function getProperty(element, prop) { 17135 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17136 return element[prop]; 17137} 17138 17139function matchSelector(selector) { 17140 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 17141 return function (element) { 17142 return element[ELEMENT_MATCHES](selector); 17143 }; 17144} 17145 17146function getQuerySelector(_ref) { 17147 var id = _ref.id, 17148 selector = _ref.selector; 17149 17150 if (id) { 17151 var nodeId = id; 17152 17153 if (id.indexOf(IX2_ID_DELIMITER) !== -1) { 17154 var pair = id.split(IX2_ID_DELIMITER); 17155 var pageId = pair[0]; 17156 nodeId = pair[1]; // Short circuit query if we're on the wrong page 17157 // $FlowIgnore â if documentElement is null crash 17158 17159 if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { 17160 return null; 17161 } 17162 } 17163 17164 return "[data-w-id=\"".concat(nodeId, "\"], [data-w-id^=\"").concat(nodeId, "_instance\"]"); 17165 } 17166 17167 return selector; 17168} 17169 17170function getValidDocument(pageId) { 17171 if (pageId == null || // $FlowIgnore â if documentElement is null crash 17172 pageId === document.documentElement.getAttribute(WF_PAGE)) { 17173 return document; 17174 } 17175 17176 return null; 17177} 17178 17179function queryDocument(baseSelector, descendantSelector) { 17180 return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); 17181} 17182 17183function elementContains(parent, child) { 17184 return parent.contains(child); 17185} 17186 17187function isSiblingNode(a, b) { 17188 return a !== b && a.parentNode === b.parentNode; 17189} 17190 17191function getChildElements(sourceElements) { 17192 var childElements = []; 17193 17194 for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { 17195 var children = sourceElements[i].children; 17196 var childCount = children.length; 17197 17198 if (!childCount) { 17199 continue; 17200 } 17201 17202 for (var j = 0; j < childCount; j++) { 17203 childElements.push(children[j]); 17204 } 17205 } 17206 17207 return childElements; 17208} // $FlowFixMe 17209 17210 17211function getSiblingElements() { 17212 var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 17213 var elements = []; 17214 var parentCache = []; 17215 17216 for (var i = 0, length = sourceElements.length; i < length; i++) { 17217 var parentNode = sourceElements[i].parentNode; 17218 17219 if (!parentNode || !parentNode.children || !parentNode.children.length) { 17220 continue; 17221 } 17222 17223 if (parentCache.indexOf(parentNode) !== -1) { 17224 continue; 17225 } 17226 17227 parentCache.push(parentNode); 17228 var el = parentNode.firstElementChild; 17229 17230 while (el != null) { 17231 if (sourceElements.indexOf(el) === -1) { 17232 elements.push(el); 17233 } 17234 17235 el = el.nextElementSibling; 17236 } 17237 } 17238 17239 return elements; 17240} 17241 17242var getClosestElement = Element.prototype.closest ? function (element, selector) { 17243 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 17244 if (!document.documentElement.contains(element)) { 17245 return null; 17246 } 17247 17248 return element.closest(selector); 17249} : function (element, selector) { 17250 // $FlowIgnore â if documentElement is null crash 17251 if (!document.documentElement.contains(element)) { 17252 return null; 17253 } 17254 17255 var el = element; 17256 17257 do { 17258 // $FlowIgnore â if documentElement is null crash 17259 if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { 17260 return el; 17261 } 17262 17263 el = el.parentNode; 17264 } while (el != null); 17265 17266 return null; 17267}; 17268exports.getClosestElement = getClosestElement; 17269 17270function getRefType(ref) { 17271 if (ref != null && (0, _typeof2["default"])(ref) == 'object') { 17272 return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; 17273 } 17274 17275 return null; 17276} 17277 17278/***/ }), 17279/* 312 */ 17280/***/ (function(module, exports, __webpack_require__) { 17281 17282"use strict"; 17283 17284 17285var _interopRequireDefault2 = __webpack_require__(0); 17286 17287var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 17288 17289var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 17290 17291var _default2; 17292 17293var _interopRequireDefault = __webpack_require__(0); 17294 17295Object.defineProperty(exports, "__esModule", { 17296 value: true 17297}); 17298exports["default"] = void 0; 17299 17300var _extends2 = _interopRequireDefault(__webpack_require__(30)); 17301 17302var _flow = _interopRequireDefault(__webpack_require__(313)); 17303 17304var _get = _interopRequireDefault(__webpack_require__(60)); 17305 17306var _clamp = _interopRequireDefault(__webpack_require__(332)); 17307 17308var _constants = __webpack_require__(4); 17309 17310var _IX2VanillaEngine = __webpack_require__(123); 17311 17312var _IX2EngineActions = __webpack_require__(65); 17313 17314var _shared = __webpack_require__(15); 17315/* eslint-env browser */ 17316 17317 17318var _constants$EventTypeC = _constants.EventTypeConsts, 17319 MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, 17320 MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, 17321 MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, 17322 MOUSE_UP = _constants$EventTypeC.MOUSE_UP, 17323 MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, 17324 MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, 17325 DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, 17326 DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, 17327 SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, 17328 SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, 17329 TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, 17330 TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, 17331 NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, 17332 NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, 17333 MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, 17334 PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, 17335 SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW,
17336 SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, 17337 PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, 17338 SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, 17339 PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, 17340 ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, 17341 ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, 17342 PAGE_START = _constants$EventTypeC.PAGE_START, 17343 PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; 17344var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; 17345var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; 17346var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; 17347var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; 17348 17349var composableFilter = function composableFilter(predicate) { 17350 return function (options) { 17351 if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { 17352 return true; 17353 } 17354 17355 return options; 17356 }; 17357}; 17358 17359var isElement = composableFilter(function (_ref) { 17360 var element = _ref.element, 17361 nativeEvent = _ref.nativeEvent; 17362 return element === nativeEvent.target; 17363}); 17364var containsElement = composableFilter(function (_ref2) { 17365 var element = _ref2.element, 17366 nativeEvent = _ref2.nativeEvent; 17367 return element.contains(nativeEvent.target); 17368}); 17369var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); 17370 17371var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { 17372 if (autoStopEventId) { 17373 var _store$getState = store.getState(), 17374 ixData = _store$getState.ixData; 17375 17376 var events = ixData.events; 17377 var eventToStop = events[autoStopEventId]; 17378 17379 if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { 17380 return eventToStop; 17381 } 17382 } 17383 17384 return null; 17385}; 17386 17387var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { 17388 var store = _ref3.store, 17389 event = _ref3.event; 17390 var eventAction = event.action; 17391 var autoStopEventId = eventAction.config.autoStopEventId; 17392 return Boolean(getAutoStopEvent(store, autoStopEventId)); 17393}; 17394 17395var actionGroupCreator = function actionGroupCreator(_ref4, state) { 17396 var store = _ref4.store, 17397 event = _ref4.event, 17398 element = _ref4.element, 17399 eventStateKey = _ref4.eventStateKey; 17400 var eventAction = event.action, 17401 eventId = event.id; 17402 var _eventAction$config = eventAction.config, 17403 actionListId = _eventAction$config.actionListId, 17404 autoStopEventId = _eventAction$config.autoStopEventId; 17405 var eventToStop = getAutoStopEvent(store, autoStopEventId); 17406 17407 if (eventToStop) { 17408 (0, _IX2VanillaEngine.stopActionGroup)({ 17409 store: store, 17410 eventId: autoStopEventId, 17411 eventTarget: element, 17412 eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], 17413 actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') 17414 }); 17415 } 17416 17417 (0, _IX2VanillaEngine.stopActionGroup)({ 17418 store: store, 17419 eventId: eventId, 17420 eventTarget: element, 17421 eventStateKey: eventStateKey, 17422 actionListId: actionListId 17423 }); 17424 (0, _IX2VanillaEngine.startActionGroup)({ 17425 store: store, 17426 eventId: eventId, 17427 eventTarget: element, 17428 eventStateKey: eventStateKey, 17429 actionListId: actionListId 17430 }); 17431 return state; 17432}; // $FlowFixMe 17433 17434 17435var withFilter = function withFilter(filter, handler) { 17436 return function (options, state) { 17437 return (// $FlowFixMe 17438 filter(options, state) === true ? handler(options, state) : state 17439 ); 17440 }; 17441}; 17442 17443var baseActionGroupOptions = { 17444 handler: withFilter(isOrContainsElement, actionGroupCreator) 17445}; 17446var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { 17447 types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') 17448}); 17449var SCROLL_EVENT_TYPES = [{ 17450 target: window, 17451 types: 'resize orientationchange', 17452 throttle: true 17453}, { 17454 target: document, 17455 types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', 17456 throttle: true 17457}]; 17458var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; 17459var baseScrollActionGroupOptions = { 17460 types: SCROLL_EVENT_TYPES 17461}; 17462var AUTO_STOP_DISABLED_EVENTS = { 17463 PAGE_START: PAGE_START, 17464 PAGE_FINISH: PAGE_FINISH 17465}; 17466 17467var getDocumentState = function () { 17468 var supportOffset = window.pageXOffset !== undefined; 17469 var isCSS1Compat = document.compatMode === 'CSS1Compat'; 17470 var rootElement = isCSS1Compat ? document.documentElement : document.body; 17471 return function () { 17472 return { 17473 // $FlowFixMe 17474 scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, 17475 // $FlowFixMe 17476 scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, 17477 // required to remove elasticity in Safari scrolling. 17478 stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe 17479 supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe 17480 rootElement.scrollHeight - window.innerHeight), 17481 // $FlowFixMe 17482 scrollWidth: rootElement.scrollWidth, 17483 // $FlowFixMe 17484 scrollHeight: rootElement.scrollHeight, 17485 // $FlowFixMe 17486 clientWidth: rootElement.clientWidth, 17487 // $FlowFixMe 17488 clientHeight: rootElement.clientHeight, 17489 innerWidth: window.innerWidth, 17490 innerHeight: window.innerHeight 17491 }; 17492 }; 17493}(); 17494 17495var areBoxesIntersecting = function areBoxesIntersecting(a, b) { 17496 return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); 17497}; 17498 17499var isElementHovered = function isElementHovered(_ref5) { 17500 var element = _ref5.element, 17501 nativeEvent = _ref5.nativeEvent; 17502 var type = nativeEvent.type, 17503 target = nativeEvent.target, 17504 relatedTarget = nativeEvent.relatedTarget; 17505 var containsTarget = element.contains(target); 17506 17507 if (type === 'mouseover' && containsTarget) { 17508 return true; 17509 } 17510 17511 var containsRelated = element.contains(relatedTarget); 17512 17513 if (type === 'mouseout' && containsTarget && containsRelated) { 17514 return true; 17515 } 17516 17517 return false;
17518}; 17519 17520var isElementVisible = function isElementVisible(options) { 17521 var element = options.element, 17522 config = options.event.config; 17523 17524 var _getDocumentState = getDocumentState(), 17525 clientWidth = _getDocumentState.clientWidth, 17526 clientHeight = _getDocumentState.clientHeight; 17527 17528 var scrollOffsetValue = config.scrollOffsetValue; 17529 var scrollOffsetUnit = config.scrollOffsetUnit; 17530 var isPX = scrollOffsetUnit === 'PX'; 17531 var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; 17532 return areBoxesIntersecting(element.getBoundingClientRect(), { 17533 left: 0, 17534 top: offsetPadding, 17535 right: clientWidth, 17536 bottom: clientHeight - offsetPadding 17537 }); 17538}; 17539 17540var whenComponentActiveChange = function whenComponentActiveChange(handler) { 17541 return function (options, oldState) { 17542 var type = options.nativeEvent.type; // prettier-ignore 17543 17544 var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; 17545 var newState = (0, _extends2["default"])({}, oldState, { 17546 isActive: isActive 17547 }); 17548 17549 if (!oldState || newState.isActive !== oldState.isActive) { 17550 return handler(options, newState) || newState; 17551 } 17552 17553 return newState; 17554 }; 17555}; 17556 17557var whenElementHoverChange = function whenElementHoverChange(handler) { 17558 return function (options, oldState) { 17559 var newState = { 17560 elementHovered: isElementHovered(options) 17561 }; 17562 17563 if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { 17564 return handler(options, newState) || newState; 17565 } 17566 17567 return newState; 17568 }; 17569}; // $FlowFixMe 17570 17571 17572var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { 17573 return function (options, oldState) { 17574 var newState = (0, _extends2["default"])({}, oldState, { 17575 elementVisible: isElementVisible(options) 17576 }); 17577 17578 if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { 17579 return handler(options, newState) || newState; 17580 } 17581 17582 return newState; 17583 }; 17584}; // $FlowFixMe 17585 17586 17587var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { 17588 return function (options) { 17589 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 17590 17591 var _getDocumentState2 = getDocumentState(), 17592 scrollTop = _getDocumentState2.stiffScrollTop, 17593 scrollHeight = _getDocumentState2.scrollHeight, 17594 innerHeight = _getDocumentState2.innerHeight; 17595 17596 var _options$event = options.event, 17597 config = _options$event.config, 17598 eventTypeId = _options$event.eventTypeId; 17599 var scrollOffsetValue = config.scrollOffsetValue, 17600 scrollOffsetUnit = config.scrollOffsetUnit; 17601 var isPX = scrollOffsetUnit === 'PX'; 17602 var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. 17603 17604 var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change 17605 17606 if (oldState && oldState.percentTop === percentTop) { 17607 return oldState; 17608 } 17609 17610 var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; 17611 var scrollingDown; 17612 var scrollDirectionChanged; 17613 var anchorTop = 0; 17614 17615 if (oldState) { 17616 scrollingDown = percentTop > oldState.percentTop; 17617 scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; 17618 anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; 17619 } 17620 17621 var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; 17622 var newState = (0, _extends2["default"])({}, oldState, { 17623 percentTop: percentTop, 17624 inBounds: inBounds, 17625 anchorTop: anchorTop, 17626 scrollingDown: scrollingDown 17627 }); 17628 17629 if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { 17630 return handler(options, newState) || newState; 17631 } 17632 17633 return newState; 17634 }; 17635}; 17636 17637var pointIntersects = function pointIntersects(point, rect) { 17638 return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; 17639}; 17640 17641var whenPageLoadFinish = function whenPageLoadFinish(handler) { 17642 return function (options, oldState) { 17643 var newState = { 17644 finished: document.readyState === 'complete' 17645 }; 17646 17647 if (newState.finished && !(oldState && oldState.finshed)) { 17648 handler(options); 17649 } 17650 17651 return newState; 17652 }; 17653}; 17654 17655var whenPageLoadStart = function whenPageLoadStart(handler) { 17656 return function (options, oldState) { 17657 var newState = { 17658 started: true 17659 }; 17660 17661 if (!oldState) { 17662 handler(options); 17663 } 17664 17665 return newState; 17666 }; 17667}; 17668 17669var whenClickCountChange = function whenClickCountChange(handler) { 17670 return function (options) { 17671 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17672 clickCount: 0 17673 }; 17674 var newState = { 17675 clickCount: oldState.clickCount % 2 + 1 17676 }; 17677 17678 if (newState.clickCount !== oldState.clickCount) { 17679 return handler(options, newState) || newState; 17680 } 17681 17682 return newState; 17683 }; 17684}; 17685 17686var getComponentActiveOptions = function getComponentActiveOptions() { 17687 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 17688 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 17689 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 17690 return state.isActive ? baseActionGroupOptions.handler(options, state) : state; 17691 })) 17692 }); 17693}; 17694 17695var getComponentInactiveOptions = function getComponentInactiveOptions() { 17696 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 17697 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 17698 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 17699 return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; 17700 })) 17701 }); 17702}; 17703 17704var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17705 handler: whenElementVisibiltyChange(function (options, state) { 17706 var elementVisible = state.elementVisible; 17707 var event = options.event, 17708 store = options.store; 17709 17710 var _store$getState2 = store.getState(), 17711 ixData = _store$getState2.ixData; 17712 17713 var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types 17714 // are registered. 17715 17716 if (!events[event.action.config.autoStopEventId] && state.triggered) { 17717 return state; 17718 } 17719 17720 if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { 17721 actionGroupCreator(options); 17722 return (0, _extends2["default"])({}, state, { 17723 triggered: true 17724 }); 17725 } else { 17726 return state; 17727 } 17728 }) 17729}); 17730var MOUSE_OUT_ROUND_THRESHOLD = 0.05; 17731 17732var _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, { 17733 types: 'ecommerce-cart-open', 17734 handler: withFilter(isOrContainsElement, actionGroupCreator) 17735}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { 17736 types: 'ecommerce-cart-close', 17737 handler: withFilter(isOrContainsElement, actionGroupCreator) 17738}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { 17739 types: 'click', 17740 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { 17741 var clickCount = _ref6.clickCount; 17742 17743 if (hasAutoStopEvent(options)) { 17744 clickCount === 1 && actionGroupCreator(options); 17745 } else { 17746 actionGroupCreator(options); 17747 } 17748 })) 17749}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { 17750 types: 'click', 17751 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { 17752 var clickCount = _ref7.clickCount; 17753 17754 if (clickCount === 2) { 17755 actionGroupCreator(options); 17756 } 17757 })) 17758}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { 17759 types: 'mousedown' 17760})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { 17761 types: 'mouseup' 17762})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { 17763 types: MOUSE_OVER_OUT_TYPES, 17764 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 17765 if (state.elementHovered) { 17766 actionGroupCreator(options); 17767 } 17768 })) 17769}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { 17770 types: MOUSE_OVER_OUT_TYPES, 17771 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 17772 if (!state.elementHovered) { 17773 actionGroupCreator(options); 17774 } 17775 })) 17776}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { 17777 types: 'mousemove mouseout scroll', 17778 handler: function handler( // $FlowFixMe 17779 _ref8) { 17780 var store = _ref8.store, 17781 element = _ref8.element, 17782 eventConfig = _ref8.eventConfig, 17783 nativeEvent = _ref8.nativeEvent, 17784 eventStateKey = _ref8.eventStateKey; 17785 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17786 clientX: 0, 17787 clientY: 0, 17788 pageX: 0, 17789 pageY: 0 17790 }; 17791 var basedOn = eventConfig.basedOn, 17792 selectedAxis = eventConfig.selectedAxis, 17793 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17794 reverse = eventConfig.reverse, 17795 _eventConfig$restingS = eventConfig.restingState, 17796 restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; 17797 var _nativeEvent$clientX = nativeEvent.clientX, 17798 clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, 17799 _nativeEvent$clientY = nativeEvent.clientY, 17800 clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY,
17801 _nativeEvent$pageX = nativeEvent.pageX, 17802 pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, 17803 _nativeEvent$pageY = nativeEvent.pageY, 17804 pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; 17805 var isXAxis = selectedAxis === 'X_AXIS'; 17806 var isMouseOut = nativeEvent.type === 'mouseout'; 17807 var value = restingState / 100; 17808 var namespacedParameterId = continuousParameterGroupId; 17809 var elementHovered = false; 17810 17811 switch (basedOn) { 17812 case _constants.EventBasedOn.VIEWPORT: 17813 { 17814 value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; 17815 break; 17816 } 17817 17818 case _constants.EventBasedOn.PAGE: 17819 { 17820 var _getDocumentState3 = getDocumentState(), 17821 scrollLeft = _getDocumentState3.scrollLeft, 17822 scrollTop = _getDocumentState3.scrollTop, 17823 scrollWidth = _getDocumentState3.scrollWidth, 17824 scrollHeight = _getDocumentState3.scrollHeight; 17825 17826 value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; 17827 break; 17828 } 17829 17830 case _constants.EventBasedOn.ELEMENT: 17831 default: 17832 { 17833 namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 17834 var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target 17835 17836 if (isMouseEvent && isOrContainsElement({ 17837 element: element, 17838 nativeEvent: nativeEvent 17839 }) !== true) { 17840 break; 17841 } 17842 17843 var rect = element.getBoundingClientRect(); 17844 var left = rect.left, 17845 top = rect.top, 17846 width = rect.width, 17847 height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state 17848 // against the target element's rect 17849 17850 if (!isMouseEvent && !pointIntersects({ 17851 left: clientX, 17852 top: clientY 17853 }, rect)) { 17854 break; 17855 } 17856 17857 elementHovered = true; 17858 value = isXAxis ? (clientX - left) / width : (clientY - top) / height; 17859 break; 17860 } 17861 } // cover case where the event is a mouse out, but the value is not quite at 100% 17862 17863 17864 if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { 17865 value = Math.round(value); 17866 } // Only update based on element if the mouse is moving over or has just left the element 17867 17868 17869 if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe 17870 elementHovered !== state.elementHovered) { 17871 value = reverse ? 1 - value : value; 17872 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); 17873 } 17874 17875 return { 17876 elementHovered: elementHovered, 17877 clientX: clientX, 17878 clientY: clientY, 17879 pageX: pageX, 17880 pageY: pageY 17881 }; 17882 } 17883}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { 17884 types: SCROLL_EVENT_TYPES, 17885 // $FlowFixMe 17886 handler: function handler(_ref9) { 17887 var store = _ref9.store, 17888 eventConfig = _ref9.eventConfig; 17889 var continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17890 reverse = eventConfig.reverse; 17891 17892 var _getDocumentState4 = getDocumentState(), 17893 scrollTop = _getDocumentState4.scrollTop, 17894 scrollHeight = _getDocumentState4.scrollHeight, 17895 clientHeight = _getDocumentState4.clientHeight; 17896 17897 var value = scrollTop / (scrollHeight - clientHeight); 17898 value = reverse ? 1 - value : value; 17899 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 17900 } 17901}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { 17902 types: SCROLL_EVENT_TYPES, 17903 handler: function handler( // $FlowFixMe 17904 _ref10) { 17905 var element = _ref10.element, 17906 store = _ref10.store, 17907 eventConfig = _ref10.eventConfig, 17908 eventStateKey = _ref10.eventStateKey; 17909 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17910 scrollPercent: 0 17911 }; 17912 17913 var _getDocumentState5 = getDocumentState(), 17914 scrollLeft = _getDocumentState5.scrollLeft, 17915 scrollTop = _getDocumentState5.scrollTop, 17916 scrollWidth = _getDocumentState5.scrollWidth, 17917 scrollHeight = _getDocumentState5.scrollHeight, 17918 visibleHeight = _getDocumentState5.clientHeight; 17919 17920 var basedOn = eventConfig.basedOn, 17921 selectedAxis = eventConfig.selectedAxis, 17922 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17923 startsEntering = eventConfig.startsEntering, 17924 startsExiting = eventConfig.startsExiting, 17925 addEndOffset = eventConfig.addEndOffset, 17926 addStartOffset = eventConfig.addStartOffset, 17927 _eventConfig$addOffse = eventConfig.addOffsetValue, 17928 addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, 17929 _eventConfig$endOffse = eventConfig.endOffsetValue, 17930 endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; 17931 var isXAxis = selectedAxis === 'X_AXIS'; 17932 17933 if (basedOn === _constants.EventBasedOn.VIEWPORT) { 17934 var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; 17935 17936 if (value !== state.scrollPercent) { 17937 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 17938 } 17939 17940 return { 17941 scrollPercent: value 17942 }; 17943 } else { 17944 var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 17945 var elementRect = element.getBoundingClientRect(); 17946 var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; 17947 var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type 17948 17949 offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; 17950 offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; 17951 var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); 17952 var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; 17953 var offsetHeight = offsetElementBottom - offsetElementTop; 17954 var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); 17955 var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); 17956 var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; 17957 17958 if (fixedScrollPerc !== state.scrollPercent) { 17959 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); 17960 } 17961 17962 return { 17963 scrollPercent: fixedScrollPerc 17964 }; 17965 } 17966 } 17967}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_V
17967IEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17968 handler: whenScrollDirectionChange(function (options, state) { 17969 if (state.scrollingDown) { 17970 actionGroupCreator(options); 17971 } 17972 }) 17973})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17974 handler: whenScrollDirectionChange(function (options, state) { 17975 if (!state.scrollingDown) { 17976 actionGroupCreator(options); 17977 } 17978 }) 17979})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { 17980 types: 'readystatechange IX2_PAGE_UPDATE', 17981 handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) 17982}), (0, _defineProperty2["default"])(_default2, PAGE_START, { 17983 types: 'readystatechange IX2_PAGE_UPDATE', 17984 handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) 17985}), _default2); 17986 17987exports["default"] = _default; 17988 17989/***/ }), 17990/* 313 */ 17991/***/ (function(module, exports, __webpack_require__) { 17992
vendor: 4,744 bytes, lines 17993-18172
17993var createFlow = __webpack_require__(314); 17994 17995/** 17996 * Creates a function that returns the result of invoking the given functions 17997 * with the `this` binding of the created function, where each successive 17998 * invocation is supplied the return value of the previous. 17999 * 18000 * @static 18001 * @memberOf _ 18002 * @since 3.0.0 18003 * @category Util 18004 * @param {...(Function|Function[])} [funcs] The functions to invoke. 18005 * @returns {Function} Returns the new composite function. 18006 * @see _.flowRight 18007 * @example 18008 * 18009 * function square(n) { 18010 * return n * n; 18011 * } 18012 * 18013 * var addSquare = _.flow([_.add, square]); 18014 * addSquare(1, 2); 18015 * // => 9 18016 */ 18017var flow = createFlow(); 18018 18019module.exports = flow; 18020 18021 18022/***/ }), 18023/* 314 */ 18024/***/ (function(module, exports, __webpack_require__) { 18025 18026var LodashWrapper = __webpack_require__(66), 18027 flatRest = __webpack_require__(315), 18028 getData = __webpack_require__(127), 18029 getFuncName = __webpack_require__(128), 18030 isArray = __webpack_require__(2), 18031 isLaziable = __webpack_require__(328); 18032 18033/** Error message constants. */ 18034var FUNC_ERROR_TEXT = 'Expected a function'; 18035 18036/** Used to compose bitmasks for function metadata. */ 18037var WRAP_CURRY_FLAG = 8, 18038 WRAP_PARTIAL_FLAG = 32, 18039 WRAP_ARY_FLAG = 128, 18040 WRAP_REARG_FLAG = 256; 18041 18042/** 18043 * Creates a `_.flow` or `_.flowRight` function. 18044 * 18045 * @private 18046 * @param {boolean} [fromRight] Specify iterating from right to left. 18047 * @returns {Function} Returns the new flow function. 18048 */ 18049function createFlow(fromRight) { 18050 return flatRest(function(funcs) { 18051 var length = funcs.length, 18052 index = length, 18053 prereq = LodashWrapper.prototype.thru; 18054 18055 if (fromRight) { 18056 funcs.reverse(); 18057 } 18058 while (index--) { 18059 var func = funcs[index]; 18060 if (typeof func != 'function') { 18061 throw new TypeError(FUNC_ERROR_TEXT); 18062 } 18063 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 18064 var wrapper = new LodashWrapper([], true); 18065 } 18066 } 18067 index = wrapper ? index : length; 18068 while (++index < length) { 18069 func = funcs[index]; 18070 18071 var funcName = getFuncName(func), 18072 data = funcName == 'wrapper' ? getData(func) : undefined; 18073 18074 if (data && isLaziable(data[0]) && 18075 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 18076 !data[4].length && data[9] == 1 18077 ) { 18078 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 18079 } else { 18080 wrapper = (func.length == 1 && isLaziable(func)) 18081 ? wrapper[funcName]() 18082 : wrapper.thru(func); 18083 } 18084 } 18085 return function() { 18086 var args = arguments, 18087 value = args[0]; 18088 18089 if (wrapper && args.length == 1 && isArray(value)) { 18090 return wrapper.plant(value).value(); 18091 } 18092 var index = 0, 18093 result = length ? funcs[index].apply(this, args) : value; 18094 18095 while (++index < length) { 18096 result = funcs[index].call(this, result); 18097 } 18098 return result; 18099 }; 18100 }); 18101} 18102 18103module.exports = createFlow; 18104 18105 18106/***/ }), 18107/* 315 */ 18108/***/ (function(module, exports, __webpack_require__) { 18109 18110var flatten = __webpack_require__(316), 18111 overRest = __webpack_require__(319), 18112 setToString = __webpack_require__(321); 18113 18114/** 18115 * A specialized version of `baseRest` which flattens the rest array. 18116 * 18117 * @private 18118 * @param {Function} func The function to apply a rest parameter to. 18119 * @returns {Function} Returns the new function. 18120 */ 18121function flatRest(func) { 18122 return setToString(overRest(func, undefined, flatten), func + ''); 18123} 18124 18125module.exports = flatRest; 18126 18127 18128/***/ }), 18129/* 316 */ 18130/***/ (function(module, exports, __webpack_require__) { 18131 18132var baseFlatten = __webpack_require__(317); 18133 18134/** 18135 * Flattens `array` a single level deep. 18136 * 18137 * @static 18138 * @memberOf _ 18139 * @since 0.1.0 18140 * @category Array 18141 * @param {Array} array The array to flatten. 18142 * @returns {Array} Returns the new flattened array. 18143 * @example 18144 * 18145 * _.flatten([1, [2, [3, [4]], 5]]); 18146 * // => [1, 2, [3, [4]], 5] 18147 */ 18148function flatten(array) { 18149 var length = array == null ? 0 : array.length; 18150 return length ? baseFlatten(array, 1) : []; 18151} 18152 18153module.exports = flatten; 18154 18155 18156/***/ }), 18157/* 317 */ 18158/***/ (function(module, exports, __webpack_require__) { 18159 18160var arrayPush = __webpack_require__(52), 18161 isFlattenable = __webpack_require__(318); 18162 18163/** 18164 * The base implementation of `_.flatten` with support for restricting flattening. 18165 * 18166 * @private 18167 * @param {Array} array The array to flatten. 18168 * @param {number} depth The maximum recursion depth. 18169 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 18170 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 18171 * @param {Array} [result=[]] The initial result value. 18172 * @returns {Array} Returns the new flattened array.
vendor: 4,491 bytes, lines 18173-18344
18173 */ 18174function baseFlatten(array, depth, predicate, isStrict, result) { 18175 var index = -1, 18176 length = array.length; 18177 18178 predicate || (predicate = isFlattenable); 18179 result || (result = []); 18180 18181 while (++index < length) { 18182 var value = array[index]; 18183 if (depth > 0 && predicate(value)) { 18184 if (depth > 1) { 18185 // Recursively flatten arrays (susceptible to call stack limits). 18186 baseFlatten(value, depth - 1, predicate, isStrict, result); 18187 } else { 18188 arrayPush(result, value); 18189 } 18190 } else if (!isStrict) { 18191 result[result.length] = value; 18192 } 18193 } 18194 return result; 18195} 18196 18197module.exports = baseFlatten; 18198 18199 18200/***/ }), 18201/* 318 */ 18202/***/ (function(module, exports, __webpack_require__) { 18203 18204var Symbol = __webpack_require__(23), 18205 isArguments = __webpack_require__(36), 18206 isArray = __webpack_require__(2); 18207 18208/** Built-in value references. */ 18209var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; 18210 18211/** 18212 * Checks if `value` is a flattenable `arguments` object or array. 18213 * 18214 * @private 18215 * @param {*} value The value to check. 18216 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 18217 */ 18218function isFlattenable(value) { 18219 return isArray(value) || isArguments(value) || 18220 !!(spreadableSymbol && value && value[spreadableSymbol]); 18221} 18222 18223module.exports = isFlattenable; 18224 18225 18226/***/ }), 18227/* 319 */ 18228/***/ (function(module, exports, __webpack_require__) { 18229 18230var apply = __webpack_require__(320); 18231 18232/* Built-in method references for those with the same name as other `lodash` methods. */ 18233var nativeMax = Math.max; 18234 18235/** 18236 * A specialized version of `baseRest` which transforms the rest array. 18237 * 18238 * @private 18239 * @param {Function} func The function to apply a rest parameter to. 18240 * @param {number} [start=func.length-1] The start position of the rest parameter. 18241 * @param {Function} transform The rest array transform. 18242 * @returns {Function} Returns the new function. 18243 */ 18244function overRest(func, start, transform) { 18245 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 18246 return function() { 18247 var args = arguments, 18248 index = -1, 18249 length = nativeMax(args.length - start, 0), 18250 array = Array(length); 18251 18252 while (++index < length) { 18253 array[index] = args[start + index]; 18254 } 18255 index = -1; 18256 var otherArgs = Array(start + 1); 18257 while (++index < start) { 18258 otherArgs[index] = args[index]; 18259 } 18260 otherArgs[start] = transform(array); 18261 return apply(func, this, otherArgs); 18262 }; 18263} 18264 18265module.exports = overRest; 18266 18267 18268/***/ }), 18269/* 320 */ 18270/***/ (function(module, exports) { 18271 18272/** 18273 * A faster alternative to `Function#apply`, this function invokes `func` 18274 * with the `this` binding of `thisArg` and the arguments of `args`. 18275 * 18276 * @private 18277 * @param {Function} func The function to invoke. 18278 * @param {*} thisArg The `this` binding of `func`. 18279 * @param {Array} args The arguments to invoke `func` with. 18280 * @returns {*} Returns the result of `func`. 18281 */ 18282function apply(func, thisArg, args) { 18283 switch (args.length) { 18284 case 0: return func.call(thisArg); 18285 case 1: return func.call(thisArg, args[0]); 18286 case 2: return func.call(thisArg, args[0], args[1]); 18287 case 3: return func.call(thisArg, args[0], args[1], args[2]); 18288 } 18289 return func.apply(thisArg, args); 18290} 18291 18292module.exports = apply; 18293 18294 18295/***/ }), 18296/* 321 */ 18297/***/ (function(module, exports, __webpack_require__) { 18298 18299var baseSetToString = __webpack_require__(322), 18300 shortOut = __webpack_require__(324); 18301 18302/** 18303 * Sets the `toString` method of `func` to return `string`. 18304 * 18305 * @private 18306 * @param {Function} func The function to modify. 18307 * @param {Function} string The `toString` result. 18308 * @returns {Function} Returns `func`. 18309 */ 18310var setToString = shortOut(baseSetToString); 18311 18312module.exports = setToString; 18313 18314 18315/***/ }), 18316/* 322 */ 18317/***/ (function(module, exports, __webpack_require__) { 18318 18319var constant = __webpack_require__(323), 18320 defineProperty = __webpack_require__(125), 18321 identity = __webpack_require__(63); 18322 18323/** 18324 * The base implementation of `setToString` without support for hot loop shorting. 18325 * 18326 * @private 18327 * @param {Function} func The function to modify. 18328 * @param {Function} string The `toString` result. 18329 * @returns {Function} Returns `func`. 18330 */ 18331var baseSetToString = !defineProperty ? identity : function(func, string) { 18332 return defineProperty(func, 'toString', { 18333 'configurable': true, 18334 'enumerable': false, 18335 'value': constant(string), 18336 'writable': true 18337 }); 18338}; 18339 18340module.exports = baseSetToString; 18341 18342 18343/***/ }), 18344/* 323 */
vendor: 7,235 bytes, lines 18345-18578
18345/***/ (function(module, exports) { 18346 18347/** 18348 * Creates a function that returns `value`. 18349 * 18350 * @static 18351 * @memberOf _ 18352 * @since 2.4.0 18353 * @category Util 18354 * @param {*} value The value to return from the new function. 18355 * @returns {Function} Returns the new constant function. 18356 * @example 18357 * 18358 * var objects = _.times(2, _.constant({ 'a': 1 })); 18359 * 18360 * console.log(objects); 18361 * // => [{ 'a': 1 }, { 'a': 1 }] 18362 * 18363 * console.log(objects[0] === objects[1]); 18364 * // => true 18365 */ 18366function constant(value) { 18367 return function() { 18368 return value; 18369 }; 18370} 18371 18372module.exports = constant; 18373 18374 18375/***/ }), 18376/* 324 */ 18377/***/ (function(module, exports) { 18378 18379/** Used to detect hot functions by number of calls within a span of milliseconds. */ 18380var HOT_COUNT = 800, 18381 HOT_SPAN = 16; 18382 18383/* Built-in method references for those with the same name as other `lodash` methods. */ 18384var nativeNow = Date.now; 18385 18386/** 18387 * Creates a function that'll short out and invoke `identity` instead 18388 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 18389 * milliseconds. 18390 * 18391 * @private 18392 * @param {Function} func The function to restrict. 18393 * @returns {Function} Returns the new shortable function. 18394 */ 18395function shortOut(func) { 18396 var count = 0, 18397 lastCalled = 0; 18398 18399 return function() { 18400 var stamp = nativeNow(), 18401 remaining = HOT_SPAN - (stamp - lastCalled); 18402 18403 lastCalled = stamp; 18404 if (remaining > 0) { 18405 if (++count >= HOT_COUNT) { 18406 return arguments[0]; 18407 } 18408 } else { 18409 count = 0; 18410 } 18411 return func.apply(undefined, arguments); 18412 }; 18413} 18414 18415module.exports = shortOut; 18416 18417 18418/***/ }), 18419/* 325 */ 18420/***/ (function(module, exports, __webpack_require__) { 18421 18422var WeakMap = __webpack_require__(109); 18423 18424/** Used to store function metadata. */ 18425var metaMap = WeakMap && new WeakMap; 18426 18427module.exports = metaMap; 18428 18429 18430/***/ }), 18431/* 326 */ 18432/***/ (function(module, exports) { 18433 18434/** 18435 * This method returns `undefined`. 18436 * 18437 * @static 18438 * @memberOf _ 18439 * @since 2.3.0 18440 * @category Util 18441 * @example 18442 * 18443 * _.times(2, _.noop); 18444 * // => [undefined, undefined] 18445 */ 18446function noop() { 18447 // No operation performed. 18448} 18449 18450module.exports = noop; 18451 18452 18453/***/ }), 18454/* 327 */ 18455/***/ (function(module, exports) { 18456 18457/** Used to lookup unminified function names. */ 18458var realNames = {}; 18459 18460module.exports = realNames; 18461 18462 18463/***/ }), 18464/* 328 */ 18465/***/ (function(module, exports, __webpack_require__) { 18466 18467var LazyWrapper = __webpack_require__(68), 18468 getData = __webpack_require__(127), 18469 getFuncName = __webpack_require__(128), 18470 lodash = __webpack_require__(329); 18471 18472/** 18473 * Checks if `func` has a lazy counterpart. 18474 * 18475 * @private 18476 * @param {Function} func The function to check. 18477 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 18478 * else `false`. 18479 */ 18480function isLaziable(func) { 18481 var funcName = getFuncName(func), 18482 other = lodash[funcName]; 18483 18484 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 18485 return false; 18486 } 18487 if (func === other) { 18488 return true; 18489 } 18490 var data = getData(other); 18491 return !!data && func === data[0]; 18492} 18493 18494module.exports = isLaziable; 18495 18496 18497/***/ }), 18498/* 329 */ 18499/***/ (function(module, exports, __webpack_require__) { 18500 18501var LazyWrapper = __webpack_require__(68), 18502 LodashWrapper = __webpack_require__(66), 18503 baseLodash = __webpack_require__(67), 18504 isArray = __webpack_require__(2), 18505 isObjectLike = __webpack_require__(12), 18506 wrapperClone = __webpack_require__(330); 18507 18508/** Used for built-in method references. */ 18509var objectProto = Object.prototype; 18510 18511/** Used to check objects for own properties. */ 18512var hasOwnProperty = objectProto.hasOwnProperty; 18513 18514/** 18515 * Creates a `lodash` object which wraps `value` to enable implicit method 18516 * chain sequences. Methods that operate on and return arrays, collections, 18517 * and functions can be chained together. Methods that retrieve a single value 18518 * or may return a primitive value will automatically end the chain sequence 18519 * and return the unwrapped value. Otherwise, the value must be unwrapped 18520 * with `_#value`. 18521 * 18522 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 18523 * enabled using `_.chain`. 18524 * 18525 * The execution of chained methods is lazy, that is, it's deferred until 18526 * `_#value` is implicitly or explicitly called. 18527 * 18528 * Lazy evaluation allows several methods to support shortcut fusion. 18529 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 18530 * the creation of intermediate arrays and can greatly reduce the number of 18531 * iteratee executions. Sections of a chain sequence qualify for shortcut 18532 * fusion if the section is applied to an array and iteratees accept only 18533 * one argument. The heuristic for whether a section qualifies for shortcut 18534 * fusion is subject to change. 18535 * 18536 * Chaining is supported in custom builds as long as the `_#value` method is 18537 * directly or indirectly included in the build. 18538 * 18539 * In addition to lodash methods, wrappers have `Array` and `String` methods. 18540 * 18541 * The wrapper `Array` methods are: 18542 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 18543 * 18544 * The wrapper `String` methods are: 18545 * `replace` and `split` 18546 * 18547 * The wrapper methods that support shortcut fusion are: 18548 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 18549 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 18550 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 18551 * 18552 * The chainable wrapper methods are: 18553 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 18554 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 18555 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 18556 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 18557 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 18558 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 18559 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 18560 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 18561 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 18562 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 18563 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 18564 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 18565 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 18566 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 18567 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 18568 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 18569 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 18570 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 18571 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 18572 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 18573 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 18574 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 18575 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 18576 * `zipObject`, `zipObjectDeep`, and `zipWith` 18577 * 18578 * The wrapper methods that are **not** chainable by default are:
18579 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 18580 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 18581 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 18582 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 18583 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 18584 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 18585 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 18586 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 18587 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 18588 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 18589 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 18590 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 18591 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 18592 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 18593 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 18594 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 18595 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 18596 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 18597 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 18598 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 18599 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 18600 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 18601 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 18602 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 18603 * `upperFirst`, `value`, and `words` 18604 * 18605 * @name _ 18606 * @constructor 18607 * @category Seq 18608 * @param {*} value The value to wrap in a `lodash` instance. 18609 * @returns {Object} Returns the new `lodash` wrapper instance. 18610 * @example 18611 * 18612 * function square(n) { 18613 * return n * n; 18614 * } 18615 * 18616 * var wrapped = _([1, 2, 3]); 18617 * 18618 * // Returns an unwrapped value. 18619 * wrapped.reduce(_.add); 18620 * // => 6 18621 * 18622 * // Returns a wrapped value. 18623 * var squares = wrapped.map(square); 18624 * 18625 * _.isArray(squares); 18626 * // => false 18627 * 18628 * _.isArray(squares.value()); 18629 * // => true 18630 */ 18631function lodash(value) { 18632 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 18633 if (value instanceof LodashWrapper) { 18634 return value; 18635 } 18636 if (hasOwnProperty.call(value, '__wrapped__')) { 18637 return wrapperClone(value); 18638 } 18639 } 18640 return new LodashWrapper(value); 18641} 18642 18643// Ensure wrappers are instances of `baseLodash`. 18644lodash.prototype = baseLodash.prototype; 18645lodash.prototype.constructor = lodash; 18646 18647module.exports = lodash; 18648 18649 18650/***/ }), 18651/* 330 */ 18652/***/ (function(module, exports, __webpack_require__) { 18653 18654var LazyWrapper = __webpack_require__(68), 18655 LodashWrapper = __webpack_require__(66), 18656 copyArray = __webpack_require__(331); 18657 18658/** 18659 * Creates a clone of `wrapper`. 18660 * 18661 * @private 18662 * @param {Object} wrapper The wrapper to clone. 18663 * @returns {Object} Returns the cloned wrapper. 18664 */ 18665function wrapperClone(wrapper) { 18666 if (wrapper instanceof LazyWrapper) { 18667 return wrapper.clone(); 18668 } 18669 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 18670 result.__actions__ = copyArray(wrapper.__actions__); 18671 result.__index__ = wrapper.__index__; 18672 result.__values__ = wrapper.__values__; 18673 return result; 18674} 18675 18676module.exports = wrapperClone; 18677 18678 18679/***/ }), 18680/* 331 */ 18681/***/ (function(module, exports) { 18682 18683/** 18684 * Copies the values of `source` to `array`. 18685 * 18686 * @private 18687 * @param {Array} source The array to copy values from. 18688 * @param {Array} [array=[]] The array to copy values to. 18689 * @returns {Array} Returns `array`. 18690 */ 18691function copyArray(source, array) { 18692 var index = -1, 18693 length = source.length; 18694 18695 array || (array = Array(length)); 18696 while (++index < length) { 18697 array[index] = source[index]; 18698 } 18699 return array; 18700} 18701 18702module.exports = copyArray; 18703 18704 18705/***/ }), 18706/* 332 */ 18707/***/ (function(module, exports, __webpack_require__) { 18708 18709var baseClamp = __webpack_require__(333),
18710 toNumber = __webpack_require__(64); 18711 18712/** 18713 * Clamps `number` within the inclusive `lower` and `upper` bounds. 18714 * 18715 * @static 18716 * @memberOf _ 18717 * @since 4.0.0 18718 * @category Number 18719 * @param {number} number The number to clamp. 18720 * @param {number} [lower] The lower bound. 18721 * @param {number} upper The upper bound. 18722 * @returns {number} Returns the clamped number. 18723 * @example 18724 * 18725 * _.clamp(-10, -5, 5); 18726 * // => -5 18727 * 18728 * _.clamp(10, -5, 5); 18729 * // => 5 18730 */ 18731function clamp(number, lower, upper) { 18732 if (upper === undefined) { 18733 upper = lower; 18734 lower = undefined; 18735 } 18736 if (upper !== undefined) { 18737 upper = toNumber(upper); 18738 upper = upper === upper ? upper : 0; 18739 } 18740 if (lower !== undefined) { 18741 lower = toNumber(lower); 18742 lower = lower === lower ? lower : 0; 18743 } 18744 return baseClamp(toNumber(number), lower, upper); 18745} 18746 18747module.exports = clamp; 18748 18749 18750/***/ }), 18751/* 333 */ 18752/***/ (function(module, exports) { 18753 18754/** 18755 * The base implementation of `_.clamp` which doesn't coerce arguments. 18756 * 18757 * @private 18758 * @param {number} number The number to clamp. 18759 * @param {number} [lower] The lower bound. 18760 * @param {number} upper The upper bound. 18761 * @returns {number} Returns the clamped number. 18762 */ 18763function baseClamp(number, lower, upper) { 18764 if (number === number) { 18765 if (upper !== undefined) { 18766 number = number <= upper ? number : upper; 18767 } 18768 if (lower !== undefined) { 18769 number = number >= lower ? number : lower; 18770 } 18771 } 18772 return number; 18773} 18774 18775module.exports = baseClamp; 18776 18777 18778/***/ }), 18779/* 334 */ 18780/***/ (function(module, exports, __webpack_require__) { 18781 18782"use strict"; 18783 // @wf-will-never-add-flow-to-this-file 18784 18785/* globals window, document */ 18786 18787/* eslint-disable no-var */ 18788 18789/** 18790 * Webflow: Auto-select links to current page or section 18791 */ 18792 18793var Webflow = __webpack_require__(3); 18794 18795Webflow.define('links', module.exports = function ($, _) { 18796 var api = {}; 18797 var $win = $(window); 18798 var designer; 18799 var inApp = Webflow.env(); 18800 var location = window.location; 18801 var tempLink = document.createElement('a'); 18802 var linkCurrent = 'w--current'; 18803 var indexPage = /index\.(html|php)$/; 18804 var dirList = /\/$/; 18805 var anchors; 18806 var slug; // ----------------------------------- 18807 // Module methods 18808 18809 api.ready = api.design = api.preview = init; // ----------------------------------- 18810 // Private methods 18811 18812 function init() { 18813 designer = inApp && Webflow.env('design'); 18814 slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors 18815 18816 Webflow.scroll.off(scroll); 18817 anchors = []; // Test all links for a selectable href 18818 18819 var links = document.links; 18820 18821 for (var i = 0; i < links.length; ++i) { 18822 select(links[i]); 18823 } // Listen for scroll if any anchors exist 18824 18825 18826 if (anchors.length) { 18827 Webflow.scroll.on(scroll); 18828 scroll(); 18829 } 18830 } 18831 18832 function select(link) { 18833 var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); 18834 tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes 18835 18836 if (href.indexOf(':') >= 0) { 18837 return; 18838 } 18839 18840 var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page 18841 18842 if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { 18843 // Ignore any hrefs with Google Translate type hash 18844 // Example: jQuery can't parse $('#googtrans(en|es)') 18845 // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 18846 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { 18847 return; 18848 } 18849 18850 var $section = $(tempLink.hash); 18851 $section.length && anchors.push({ 18852 link: $link, 18853 sec: $section, 18854 active: false 18855 }); 18856 return; 18857 } // Ignore empty # links 18858 18859 18860 if (href === '#' || href === '') { 18861 return; 18862 } // Determine whether the link should be selected 18863 18864 18865 var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); 18866 setClass($link, linkCurrent, match); 18867 } 18868 18869 function scroll() { 18870 var viewTop = $win.scrollTop(); 18871 var viewHeight = $win.height(); // Check each anchor for a section in view 18872 18873 _.each(anchors, function (anchor) { 18874 var $link = anchor.link; 18875 var $section = anchor.sec; 18876 var top = $section.offset().top; 18877 var height = $section.outerHeight(); 18878 var offset = viewHeight * 0.5; 18879 var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; 18880 18881 if (anchor.active === active) { 18882 return; 18883 } 18884 18885 anchor.active = active; 18886 setClass($link, linkCurrent, active); 18887 }); 18888 } 18889 18890 function setClass($elem, className, add) { 18891 var exists = $elem.hasClass(className); 18892 18893 if (add && exists) { 18894 return; 18895 } 18896 18897 if (!add && !exists) { 18898 return; 18899 } 18900 18901 add ? $elem.addClass(className) : $elem.removeClass(className); 18902 } // Export module 18903 18904 18905 return api; 18906}); 18907 18908/***/ }), 18909/* 335 */ 18910/***/ (function(module, exports, __webpack_require__) { 18911 18912"use strict"; 18913 // @wf-will-never-add-flow-to-this-file 18914 18915/* globals window, document */ 18916 18917/* eslint-disable no-var */ 18918 18919/** 18920 * Webflow: Smooth scroll 18921 */ 18922 18923var Webflow = __webpack_require__(3); 18924 18925Webflow.define('scroll', module.exports = function ($) { 18926 /** 18927 * A collection of namespaced events found in this module.
18928 * Namespaced events encapsulate our code, and make it safer and easier 18929 * for designers to apply custom code overrides. 18930 * @see https://api.jquery.com/on/#event-names 18931 * @typedef {Object.<string>} NamespacedEventsCollection 18932 */ 18933 var NS_EVENTS = { 18934 WF_CLICK_EMPTY: 'click.wf-empty-link', 18935 WF_CLICK_SCROLL: 'click.wf-scroll' 18936 }; 18937 var loc = window.location; 18938 var history = inIframe() ? null : window.history; 18939 var $win = $(window); 18940 var $doc = $(document); 18941 var $body = $(document.body); 18942 18943 var animate = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { 18944 window.setTimeout(fn, 15); 18945 }; 18946 18947 var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; 18948 var headerSelector = 'header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'; 18949 var emptyHrefSelector = 'a[href="#"]'; 18950 /** 18951 * Select only links whose href: 18952 * - contains a # 18953 * - is not one of our namespaced TabLink elements 18954 * - is not _only_ a # 18955 */ 18956 18957 var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; 18958 var scrollTargetOutlineCSS = '.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}'; 18959 var focusStylesEl = document.createElement('style'); 18960 focusStylesEl.appendChild(document.createTextNode(scrollTargetOutlineCSS)); 18961 18962 function inIframe() { 18963 try { 18964 return Boolean(window.frameElement); 18965 } catch (e) { 18966 return true; 18967 } 18968 } 18969 18970 var validHash = /^#[a-zA-Z0-9][\w:.-]*$/; 18971 /** 18972 * Determine if link navigates to current page 18973 * @param {HTMLAnchorElement} link 18974 */ 18975 18976 function linksToCurrentPage(link) { 18977 return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; 18978 } 18979 /** 18980 * Check if the designer has indicated that this page should 18981 * have no scroll animation, or if the end user has set 18982 * prefers-reduced-motion in their OS 18983 */ 18984 18985 18986 var reducedMotionMediaQuery = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)'); 18987 18988 function reducedMotionEnabled() { 18989 return document.body.getAttribute('data-wf-scroll-motion') === 'none' || reducedMotionMediaQuery.matches; 18990 } 18991 18992 function setFocusable($el, action) { 18993 var initialTabindex; 18994 18995 switch (action) { 18996 case 'add': 18997 initialTabindex = $el.attr('tabindex'); 18998 18999 if (initialTabindex) { 19000 $el.attr('data-wf-tabindex-swap', initialTabindex); 19001 } else { 19002 $el.attr('tabindex', '-1'); 19003 } 19004 19005 break; 19006 19007 case 'remove': 19008 initialTabindex = $el.attr('data-wf-tabindex-swap'); 19009 19010 if (initialTabindex) { 19011 $el.attr('tabindex', initialTabindex); 19012 $el.removeAttr('data-wf-tabindex-swap'); 19013 } else { 19014 $el.removeAttr('tabindex'); 19015 } 19016 19017 break; 19018 } 19019 19020 $el.toggleClass('wf-force-outline-none', action === 'add'); 19021 } 19022 /** 19023 * Determine if we should execute custom scroll 19024 */ 19025 19026 19027 function validateScroll(evt) { 19028 var target = evt.currentTarget; 19029 19030 if ( // Bail if in Designer 19031 Webflow.env('design') || // Ignore links being used by jQuery mobile 19032 window.$.mobile && /(?:^|\s)ui-link(?:$|\s)/.test(target.className)) { 19033 return; 19034 } 19035 19036 var hash = linksToCurrentPage(target) ? target.hash : ''; 19037 if (hash === '') return; 19038 var $el = $(hash); 19039 19040 if (!$el.length) { 19041 return; 19042 } 19043 19044 if (evt) { 19045 evt.preventDefault(); 19046 evt.stopPropagation(); 19047 } 19048 19049 updateHistory(hash, evt); 19050 window.setTimeout(function () { 19051 scroll($el, function setFocus() { 19052 setFocusable($el, 'add'); 19053 $el.get(0).focus({ 19054 preventScroll: true 19055 }); 19056 setFocusable($el, 'remove'); 19057 }); 19058 }, evt ? 0 : 300); 19059 } 19060 19061 function updateHistory(hash) { 19062 // Push new history state 19063 if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. 19064 !(Webflow.env.chrome && loc.protocol === 'file:')) { 19065 var oldHash = history.state && history.state.hash; 19066 19067 if (oldHash !== hash) { 19068 history.pushState({ 19069 hash: hash 19070 }, '', hash); 19071 } 19072 } 19073 } 19074 19075 function scroll($targetEl, cb) { 19076 var start = $win.scrollTop(); 19077 var end = calculateScrollEndPosition($targetEl); 19078 if (start === end) return; 19079 var duration = calculateScrollDuration($targetEl, start, end); 19080 var clock = Date.now(); 19081 19082 var step = function step() {
19083 var elapsed = Date.now() - clock; 19084 window.scroll(0, getY(start, end, elapsed, duration)); 19085 19086 if (elapsed <= duration) { 19087 animate(step); 19088 } else if (typeof cb === 'function') { 19089 cb(); 19090 } 19091 }; 19092 19093 animate(step); 19094 } 19095 19096 function calculateScrollEndPosition($targetEl) { 19097 // If a fixed header exists, offset for the height 19098 var $header = $(headerSelector); 19099 var offsetY = $header.css('position') === 'fixed' ? $header.outerHeight() : 0; 19100 var end = $targetEl.offset().top - offsetY; // If specified, scroll so that the element ends up in the middle of the viewport 19101 19102 if ($targetEl.data('scroll') === 'mid') { 19103 var available = $win.height() - offsetY; 19104 var elHeight = $targetEl.outerHeight(); 19105 19106 if (elHeight < available) { 19107 end -= Math.round((available - elHeight) / 2); 19108 } 19109 } 19110 19111 return end; 19112 } 19113 19114 function calculateScrollDuration($targetEl, start, end) { 19115 if (reducedMotionEnabled()) return 0; 19116 var mult = 1; // Check for custom time multiplier on the body and the scroll target 19117 19118 $body.add($targetEl).each(function (_, el) { 19119 var time = parseFloat(el.getAttribute('data-scroll-time')); 19120 19121 if (!isNaN(time) && time >= 0) { 19122 mult = time; 19123 } 19124 }); 19125 return (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; 19126 } 19127 19128 function getY(start, end, elapsed, duration) { 19129 if (elapsed > duration) { 19130 return end; 19131 } 19132 19133 return start + (end - start) * ease(elapsed / duration); 19134 } 19135 19136 function ease(t) { 19137 return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 19138 } 19139 19140 function ready() { 19141 var WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, 19142 WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; 19143 $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); 19144 /** 19145 * Prevent empty hash links from triggering scroll. 19146 * Legacy feature to preserve: use the default "#" link 19147 * to trigger an interaction, and do not want the page 19148 * to scroll to the top. 19149 */ 19150 19151 $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { 19152 e.preventDefault(); 19153 }); 19154 document.head.insertBefore(focusStylesEl, document.head.firstChild); 19155 } // Export module 19156 19157 19158 return { 19159 ready: ready 19160 }; 19161}); 19162 19163/***/ }), 19164/* 336 */ 19165/***/ (function(module, exports, __webpack_require__) { 19166 19167"use strict"; 19168 // @wf-will-never-add-flow-to-this-file 19169 19170/* globals document, window */ 19171 19172/* eslint-disable no-var */ 19173 19174/** 19175 * Webflow: Touch events 19176 * Supports legacy 'tap' event 19177 * Adds a 'swipe' event to desktop and mobile 19178 */ 19179 19180var Webflow = __webpack_require__(3); 19181 19182Webflow.define('touch', module.exports = function ($) { 19183 var api = {}; 19184 var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' 19185 19186 $.event.special.tap = { 19187 bindType: 'click', 19188 delegateType: 'click' 19189 }; 19190 19191 api.init = function (el) { 19192 el = typeof el === 'string' ? $(el).get(0) : el; 19193 return el ? new Touch(el) : null; 19194 }; 19195 19196 function Touch(el) { 19197 var active = false; 19198 var useTouch = false; 19199 var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); 19200 var startX; 19201 var lastX; 19202 el.addEventListener('touchstart', start, false); 19203 el.addEventListener('touchmove', move, false); 19204 el.addEventListener('touchend', end, false); 19205 el.addEventListener('touchcancel', cancel, false); 19206 el.addEventListener('mousedown', start, false); 19207 el.addEventListener('mousemove', move, false); 19208 el.addEventListener('mouseup', end, false); 19209 el.addEventListener('mouseout', cancel, false); 19210 19211 function start(evt) { 19212 // We donât handle multi-touch events yet. 19213 var touches = evt.touches; 19214 19215 if (touches && touches.length > 1) { 19216 return; 19217 } 19218 19219 active = true; 19220 19221 if (touches) { 19222 useTouch = true; 19223 startX = touches[0].clientX; 19224 } else { 19225 startX = evt.clientX; 19226 } 19227 19228 lastX = startX; 19229 } 19230 19231 function move(evt) { 19232 if (!active) { 19233 return; 19234 } 19235 19236 if (useTouch && evt.type === 'mousemove') { 19237 evt.preventDefault(); 19238 evt.stopPropagation(); 19239 return; 19240 } 19241 19242 var touches = evt.touches; 19243 var x = touches ? touches[0].clientX : evt.clientX; 19244 var velocityX = x - lastX; 19245 lastX = x; // Allow swipes while pointer is down, but prevent them during text selection 19246 19247 if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { 19248 triggerEvent('swipe', evt, { 19249 direction: velocityX > 0 ? 'right' : 'left' 19250 }); 19251 cancel(); 19252 } 19253 } 19254 19255 function end(evt) { 19256 if (!active) { 19257 return; 19258 } 19259 19260 active = false;
19261 19262 if (useTouch && evt.type === 'mouseup') { 19263 evt.preventDefault(); 19264 evt.stopPropagation(); 19265 useTouch = false; 19266 return; 19267 } 19268 } 19269 19270 function cancel() { 19271 active = false; 19272 } 19273 19274 function destroy() { 19275 el.removeEventListener('touchstart', start, false); 19276 el.removeEventListener('touchmove', move, false); 19277 el.removeEventListener('touchend', end, false); 19278 el.removeEventListener('touchcancel', cancel, false); 19279 el.removeEventListener('mousedown', start, false); 19280 el.removeEventListener('mousemove', move, false); 19281 el.removeEventListener('mouseup', end, false); 19282 el.removeEventListener('mouseout', cancel, false); 19283 el = null; 19284 } // Public instance methods 19285 19286 19287 this.destroy = destroy; 19288 } // Wrap native event to supoprt preventdefault + stopPropagation 19289 19290 19291 function triggerEvent(type, evt, data) { 19292 var newEvent = $.Event(type, { 19293 originalEvent: evt 19294 }); 19295 $(evt.target).trigger(newEvent, data); 19296 } // Listen for touch events on all nodes by default. 19297 19298 19299 api.instance = api.init(document); // Export module 19300 19301 return api; 19302}); 19303 19304/***/ }), 19305/* 337 */ 19306/***/ (function(module, exports, __webpack_require__) { 19307 19308"use strict"; 19309 // @wf-will-never-add-flow-to-this-file 19310 19311/* globals 19312 window, 19313 document, 19314 FormData, 19315 WEBFLOW_FORM_API_HOST, 19316 WEBFLOW_FORM_OLDIE_HOST 19317*/ 19318 19319/* eslint-disable no-var */ 19320 19321/** 19322 * Webflow: Forms 19323 */ 19324 19325var _interopRequireDefault = __webpack_require__(0); 19326 19327var _slicedToArray2 = _interopRequireDefault(__webpack_require__(338)); 19328 19329var Webflow = __webpack_require__(3); 19330 19331Webflow.define('forms', module.exports = function ($, _) { 19332 var api = {}; 19333 var $doc = $(document); 19334 var $forms; 19335 var loc = window.location; 19336 var retro = window.XDomainRequest && !window.atob; 19337 var namespace = '.w-form'; 19338 var siteId; 19339 var emailField = /e(-)?mail/i; 19340 var emailValue = /^\S+@\S+$/; 19341 var alert = window.alert; 19342 var inApp = Webflow.env(); 19343 var listening; 19344 var formUrl; 19345 var signFileUrl; // MailChimp domains: list-manage.com + mirrors 19346 19347 var chimpRegex = /list-manage[1-9]?.com/i; 19348 19349 var disconnected = _.debounce(function () { 19350 alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); 19351 }, 100); 19352 19353 api.ready = api.design = api.preview = function () { 19354 // Init forms 19355 init(); // Wire document events on published site only once 19356 19357 if (!inApp && !listening) { 19358 addListeners(); 19359 } 19360 }; 19361 19362 function init() { 19363 siteId = $('html').attr('data-wf-site'); 19364 formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit 19365 19366 if (retro && formUrl.indexOf("https://webflow.com") >= 0) { 19367 formUrl = formUrl.replace("https://webflow.com", "https://formdata.webflow.com"); 19368 } 19369 19370 signFileUrl = "".concat(formUrl, "/signFile"); 19371 $forms = $(namespace + ' form'); 19372 19373 if (!$forms.length) { 19374 return; 19375 } 19376 19377 $forms.each(build); 19378 } 19379 19380 function build(i, el) { 19381 // Store form state using namespace 19382 var $el = $(el); 19383 var data = $.data(el, namespace); 19384 19385 if (!data) { 19386 data = $.data(el, namespace, { 19387 form: $el 19388 }); 19389 } // data.form 19390 19391 19392 reset(data); 19393 var wrap = $el.closest('div.w-form'); 19394 data.done = wrap.find('> .w-form-done'); 19395 data.fail = wrap.find('> .w-form-fail'); 19396 data.fileUploads = wrap.find('.w-file-upload'); 19397 data.fileUploads.each(function (j) { 19398 initFileUpload(j, data); 19399 }); // Accessiblity fixes 19400 19401 var formName = data.form.attr('aria-label') || data.form.attr('data-name') || 'Form'; 19402 19403 if (!data.done.attr('aria-label')) { 19404 data.form.attr('aria-label', formName); 19405 } 19406 19407 data.done.attr('tabindex', '-1'); 19408 data.done.attr('role', 'region'); 19409 19410 if (!data.done.attr('aria-label')) { 19411 data.done.attr('aria-label', formName + ' success'); 19412 } 19413 19414 data.fail.attr('tabindex', '-1'); 19415 data.fail.attr('role', 'region'); 19416 19417 if (!data.fail.attr('aria-label')) { 19418 data.fail.attr('aria-label', formName + ' failure'); 19419 } 19420 19421 var action = data.action = $el.attr('action'); 19422 data.handler = null; 19423 data.redirect = $el.attr('data-redirect'); // MailChimp form 19424 19425 if (chimpRegex.test(action)) { 19426 data.handler = submitMailChimp; 19427 return; 19428 } // Custom form action 19429 19430 19431 if (action) { 19432 return; 19433 } // Webflow forms for hosting accounts 19434 19435 19436 if (siteId) { 19437 data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; 19438 return; 19439 } // Alert for disconnected Webflow forms 19440 19441 19442 disconnected(); 19443 } 19444 19445 function addListeners() { 19446 listening = true; // Handle form submission for Webflow forms 19447 19448 $doc.on('submit', namespace + ' form', function (evt) { 19449 var data = $.data(this, namespace); 19450 19451 if (data.handler) { 19452 data.evt = evt; 19453 data.handler(data); 19454 } 19455 }); // handle checked ui for custom checkbox and radio button 19456 19457 var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; 19458 var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; 19459 var CHECKED_CLASS = 'w--redirected-checked'; 19460 var FOCUSED_CLASS = 'w--redirected-focus'; 19461 var FOCUSED_VISIBLE_CLASS = 'w--redirected-focus-visible'; 19462 var focusVisibleSelectors = ':focus-visible, [data-wf-focus-visible]'; 19463 var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; 19464 $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { 19465 $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); 19466 }); 19467 $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { 19468 $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { 19469 return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); 19470 }); 19471 var $target = $(evt.target); 19472 19473 if (!$target.hasClass('w-radio-input')) { 19474 $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); 19475 } 19476 }); 19477 CUSTOM_CONTROLS.forEach(function (_ref) { 19478 var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), 19479 controlType = _ref2[0], 19480 customControlClassName = _ref2[1]; 19481 19482 $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 19483 $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); 19484 $(evt.target).filter(focusVisibleSelectors).siblings(customControlClassName).addClass(FOCUSED_VISIBLE_CLASS); 19485 }); 19486 $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 19487 $(evt.target).siblings(customControlClassName).removeClass("".concat(FOCUSED_CLASS, " ").concat(FOCUSED_VISIBLE_CLASS)); 19488 }); 19489 }); 19490 } // Reset data common to all submit handlers 19491 19492 19493 function reset(data) { 19494 var btn = data.btn = data.form.find(':input[type="submit"]'); 19495 data.wait = data.btn.attr('data-wait') || null; 19496 data.success = false;
19497 btn.prop('disabled', false); 19498 data.label && btn.val(data.label); 19499 } // Disable submit button 19500 19501 19502 function disableBtn(data) { 19503 var btn = data.btn; 19504 var wait = data.wait; 19505 btn.prop('disabled', true); // Show wait text and store previous label 19506 19507 if (wait) { 19508 data.label = btn.val(); 19509 btn.val(wait); 19510 } 19511 } // Find form fields, validate, and set value pairs 19512 19513 19514 function findFields(form, result) { 19515 var status = null; 19516 result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas 19517 19518 form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { 19519 var field = $(el); 19520 var type = field.attr('type'); 19521 var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); 19522 var value = field.val(); 19523 19524 if (type === 'checkbox') { 19525 value = field.is(':checked'); 19526 } else if (type === 'radio') { 19527 // Radio group value already processed 19528 if (result[name] === null || typeof result[name] === 'string') { 19529 return; 19530 } 19531 19532 value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; 19533 } 19534 19535 if (typeof value === 'string') { 19536 value = $.trim(value); 19537 } 19538 19539 result[name] = value; 19540 status = status || getStatus(field, type, name, value); 19541 }); 19542 return status; 19543 } 19544 19545 function findFileUploads(form) { 19546 var result = {}; 19547 form.find(':input[type="file"]').each(function (i, el) { 19548 var field = $(el); 19549 var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); 19550 var value = field.attr('data-value'); 19551 19552 if (typeof value === 'string') { 19553 value = $.trim(value); 19554 } 19555 19556 result[name] = value; 19557 }); 19558 return result; 19559 } 19560 19561 var trackingCookieNameMap = { 19562 _mkto_trk: 'marketo' // __hstc: 'hubspot', 19563 19564 }; 19565 19566 function collectEnterpriseTrackingCookies() { 19567 var cookies = document.cookie.split('; ').reduce(function (acc, cookie) { 19568 var splitCookie = cookie.split('='); 19569 var name = splitCookie[0]; 19570 19571 if (name in trackingCookieNameMap) { 19572 var mappedName = trackingCookieNameMap[name]; 19573 var value = splitCookie.slice(1).join('='); 19574 acc[mappedName] = value; 19575 } 19576 19577 return acc; 19578 }, {}); 19579 return cookies; 19580 } 19581 19582 function getStatus(field, type, name, value) { 19583 var status = null; 19584 19585 if (type === 'password') { 19586 status = 'Passwords cannot be submitted.'; 19587 } else if (field.attr('required')) { 19588 if (!value) { 19589 status = 'Please fill out the required field: ' + name; 19590 } else if (emailField.test(field.attr('type'))) { 19591 if (!emailValue.test(value)) { 19592 status = 'Please enter a valid email address for: ' + name; 19593 } 19594 } 19595 } else if (name === 'g-recaptcha-response' && !value) { 19596 status = 'Please confirm youâre not a robot.'; 19597 } 19598 19599 return status; 19600 } 19601 19602 function exportedSubmitWebflow(data) { 19603 preventDefault(data); 19604 afterSubmit(data); 19605 } 19606 /* WEBFLOW_HOSTED_BLOCK:START */ 19607 // Submit form to Webflow 19608 19609 19610 function hostedSubmitWebflow(data) { 19611 reset(data); 19612 var form = data.form; 19613 var payload = { 19614 name: form.attr('data-name') || form.attr('name') || 'Untitled Form', 19615 source: loc.href, 19616 test: Webflow.env(), 19617 fields: {}, 19618 fileUploads: {}, 19619 dolphin: /pass[\s-_]?(word|code)|secret|login|credentials/i.test(form.html()), 19620 trackingCookies: collectEnterpriseTrackingCookies() 19621 }; 19622 var wfFlow = form.attr('data-wf-flow'); 19623 19624 if (wfFlow) { 19625 payload.wfFlow = wfFlow; 19626 } 19627 19628 preventDefault(data); // Find & populate all fields 19629 19630 var status = findFields(form, payload.fields); 19631 19632 if (status) { 19633 return alert(status); 19634 } 19635 19636 payload.fileUploads = findFileUploads(form); // Disable submit button 19637 19638 disableBtn(data); // Read site ID 19639 // NOTE: If this site is exported, the HTML tag must retain the data-wf-site attribute for forms to work 19640 19641 if (!siteId) { 19642 afterSubmit(data); 19643 return; 19644 } 19645 19646 $.ajax({ 19647 url: formUrl, 19648 type: 'POST', 19649 data: payload, 19650 dataType: 'json', 19651 crossDomain: true 19652 }).done(function (response) { 19653 if (response && response.code === 200) { 19654 data.success = true; 19655 } 19656 19657 afterSubmit(data); 19658 }).fail(function () { 19659 afterSubmit(data); 19660 }); 19661 } 19662 /* WEBFLOW_HOSTED_BLOCK:END */ 19663 // Submit form to MailChimp 19664 19665 19666 function submitMailChimp(data) { 19667 reset(data); 19668 var form = data.form; 19669 var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead 19670 19671 if (/^https/.test(loc.href) && !/^https/.test(data.action)) { 19672 form.attr('method', 'post'); 19673 return; 19674 } 19675 19676 preventDefault(data); // Find & populate all fields 19677 19678 var status = findFields(form, payload); 19679 19680 if (status) { 19681 return alert(status); 19682 } // Disable submit button 19683 19684 19685 disableBtn(data); // Use special format for MailChimp params 19686 19687 var fullName; 19688 19689 _.each(payload, function (value, key) { 19690 if (emailField.test(key)) { 19691 payload.EMAIL = value; 19692 } 19693 19694 if (/^((full[ _-]?)?name)$/i.test(key)) { 19695 fullName = value; 19696 } 19697 19698 if (/^(first[ _-]?name)$/i.test(key)) { 19699 payload.FNAME = value; 19700 } 19701 19702 if (/^(last[ _-]?name)$/i.test(key)) { 19703 payload.LNAME = value; 19704 } 19705 }); 19706 19707 if (fullName && !payload.FNAME) { 19708 fullName = fullName.split(' '); 19709 payload.FNAME = fullName[0]; 19710 payload.LNAME = payload.LNAME || fullName[1]; 19711 } // Use the (undocumented) MailChimp jsonp api 19712 19713 19714 var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups 19715 19716 var userId = url.indexOf('u=') + 2; 19717 userId = url.substring(userId, url.indexOf('&', userId)); 19718 var listId = url.indexOf('id=') + 3; 19719 listId = url.substring(listId, url.indexOf('&', listId)); 19720 payload['b_' + userId + '_' + listId] = ''; 19721 $.ajax({ 19722 url: url, 19723 data: payload, 19724 dataType: 'jsonp' 19725 }).done(function (resp) { 19726 data.success = resp.result === 'success' || /already/.test(resp.msg); 19727 19728 if (!data.success) { 19729 console.info('MailChimp error: ' + resp.msg); 19730 } 19731 19732 afterSubmit(data); 19733 }).fail(function () { 19734 afterSubmit(data); 19735 }); 19736 } // Common callback which runs after all Ajax submissions 19737 19738 19739 function afterSubmit(data) { 19740 var form = data.form; 19741 var redirect = data.redirect; 19742 var success = data.success; // Redirect to a success url if defined 19743 19744 if (success && redirect) { 19745 Webflow.location(redirect); 19746 return; 19747 } // Show or hide status divs 19748 19749 19750 data.done.toggle(success); 19751 data.fail.toggle(!success); 19752 19753 if (success) { 19754 data.done.focus(); 19755 } else { 19756 data.fail.focus(); 19757 } // Hide form on success 19758 19759 19760 form.toggle(!success); // Reset data and enable submit button 19761 19762 reset(data); 19763 } 19764 19765 function preventDefault(data) { 19766 data.evt && data.evt.preventDefault(); 19767 data.evt = null; 19768 } 19769 19770 function initFileUpload(i, form) { 19771 if (!form.fileUploads || !form.fileUploads[i]) { 19772 return; 19773 } 19774 19775 var file; 19776 var $el = $(form.fileUploads[i]); 19777 var $defaultWrap = $el.find('> .w-file-upload-default'); 19778 var $uploadingWrap = $el.find('> .w-file-upload-uploading'); 19779 var $successWrap = $el.find('> .w-file-upload-success'); 19780 var $errorWrap = $el.find('> .w-file-upload-error'); 19781 var $input = $defaultWrap.find('.w-file-upload-input'); 19782 var $label = $defaultWrap.find('.w-file-upload-label'); 19783 var $labelChildren = $label.children(); 19784 var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); 19785 var $fileEl = $successWrap.find('.w-file-upload-file'); 19786 var $removeEl = $successWrap.find('.w-file-remove-link'); 19787 var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); 19788 var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); 19789 var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); 19790 var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); // Accessiblity fixes 19791 // The file upload Input is not stylable by the designer, so we are 19792 // going to pretend the Label is the input. ¯\_(ã)_/¯ 19793 19794 if (!inApp) { 19795 $label.on('click keydown', function (e) { 19796 if (e.type === 'keydown' && e.which !== 13 && e.which !== 32) { 19797 return; 19798 } 19799 19800 e.preventDefault(); 19801 $input.click(); 19802 }); 19803 } // Both of these are added through CSS 19804 19805 19806 $label.find('.w-icon-file-upload-icon').attr('aria-hidden', 'true'); 19807 $removeEl.find('.w-icon-file-upload-remove').attr('aria-hidden', 'true'); 19808 19809 if (!inApp) { 19810 $removeEl.on('click keydown', function (e) { 19811 if (e.type === 'keydown') { 19812 if (e.which !== 13 && e.which !== 32) { 19813 return; 19814 } 19815 19816 e.preventDefault(); 19817 } 19818 19819 $input.removeAttr('data-value'); 19820 $input.val(''); 19821 $fileNameEl.html(''); 19822 $defaultWrap.toggle(true); 19823 $successWrap.toggle(false); 19824 $label.focus(); 19825 }); 19826 $input.on('change', function (e) { 19827 file = e.target && e.target.files && e.target.files[0]; 19828 19829 if (!file) { 19830 return; 19831 } // Show uploading 19832 19833 19834 $defaultWrap.toggle(false); 19835 $errorWrap.toggle(false); 19836 $uploadingWrap.toggle(true); 19837 $uploadingWrap.focus(); // Set filename 19838 19839 $fileNameEl.text(file.name); // Disable submit button 19840 19841 if (!isUploading()) { 19842 disableBtn(form); 19843 } 19844 19845 form.fileUploads[i].uploading = true; 19846 signFile(file, afterSign); 19847 }); // Setting input width 1px and height equal label 19848 // This is so the browser required error will show up 19849 19850 var height = $label.outerHeight(); 19851 $input.height(height); 19852 $input.width(1); 19853 } else { 19854 $input.on('click', function (e) { 19855 e.preventDefault(); 19856 }); 19857 $label.on('click', function (e) { 19858 e.preventDefault(); 19859 }); 19860 $labelChildren.on('click', function (e) { 19861 e.preventDefault(); 19862 }); 19863 } 19864 19865 function parseError(err) { 19866 var errorMsg = err.responseJSON && err.responseJSON.msg; 19867 var userError = genericErrMsg; 19868 19869 if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { 19870 userError = typeErrMsg; 19871 } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { 19872 userError = sizeErrMsg; 19873 } 19874 19875 $errorMsgEl.text(userError); 19876 $input.removeAttr('data-value'); 19877 $input.val(''); 19878 $uploadingWrap.toggle(false); 19879 $defaultWrap.toggle(true); 19880 $errorWrap.toggle(true); 19881 $errorWrap.focus(); 19882 form.fileUploads[i].uploading = false;
19883 19884 if (!isUploading()) { 19885 reset(form); 19886 } 19887 } 19888 19889 function afterSign(err, data) { 19890 if (err) { 19891 return parseError(err); 19892 } 19893 19894 var fileName = data.fileName; 19895 var postData = data.postData; 19896 var fileId = data.fileId; 19897 var s3Url = data.s3Url; 19898 $input.attr('data-value', fileId); 19899 uploadS3(s3Url, postData, file, fileName, afterUpload); 19900 } 19901 19902 function afterUpload(err) { 19903 if (err) { 19904 return parseError(err); 19905 } // Show success 19906 19907 19908 $uploadingWrap.toggle(false); 19909 $successWrap.css('display', 'inline-block'); 19910 $successWrap.focus(); 19911 form.fileUploads[i].uploading = false; 19912 19913 if (!isUploading()) { 19914 reset(form); 19915 } 19916 } 19917 19918 function isUploading() { 19919 var uploads = form.fileUploads && form.fileUploads.toArray() || []; 19920 return uploads.some(function (value) { 19921 return value.uploading; 19922 }); 19923 } 19924 } 19925 19926 function signFile(file, cb) { 19927 var payload = new URLSearchParams({ 19928 name: file.name, 19929 size: file.size 19930 }); 19931 $.ajax({ 19932 type: 'GET', 19933 url: "".concat(signFileUrl, "?").concat(payload), 19934 crossDomain: true 19935 }).done(function (data) { 19936 cb(null, data); 19937 }).fail(function (err) { 19938 cb(err); 19939 }); 19940 } 19941 19942 function uploadS3(url, data, file, fileName, cb) { 19943 var formData = new FormData(); 19944 19945 for (var k in data) { 19946 formData.append(k, data[k]); 19947 } 19948 19949 formData.append('file', file, fileName); 19950 $.ajax({ 19951 type: 'POST', 19952 url: url, 19953 data: formData, 19954 processData: false, 19955 contentType: false 19956 }).done(function () { 19957 cb(null); 19958 }).fail(function (err) { 19959 cb(err); 19960 }); 19961 } // Export module 19962 19963 19964 return api; 19965}); 19966 19967/***/ }), 19968/* 338 */ 19969/***/ (function(module, exports, __webpack_require__) { 19970 19971var arrayWithHoles = __webpack_require__(339); 19972 19973var iterableToArrayLimit = __webpack_require__(340); 19974 19975var nonIterableRest = __webpack_require__(341); 19976 19977function _slicedToArray(arr, i) { 19978 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); 19979} 19980 19981module.exports = _slicedToArray; 19982 19983/***/ }), 19984/* 339 */ 19985/***/ (function(module, exports) { 19986 19987function _arrayWithHoles(arr) { 19988 if (Array.isArray(arr)) return arr; 19989} 19990 19991module.exports = _arrayWithHoles; 19992 19993/***/ }), 19994/* 340 */ 19995/***/ (function(module, exports) { 19996 19997function _iterableToArrayLimit(arr, i) { 19998 var _arr = []; 19999 var _n = true; 20000 var _d = false; 20001 var _e = undefined; 20002 20003 try { 20004 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 20005 _arr.push(_s.value); 20006 20007 if (i && _arr.length === i) break; 20008 } 20009 } catch (err) { 20010 _d = true; 20011 _e = err; 20012 } finally { 20013 try { 20014 if (!_n && _i["return"] != null) _i["return"](); 20015 } finally { 20016 if (_d) throw _e; 20017 } 20018 } 20019 20020 return _arr; 20021} 20022 20023module.exports = _iterableToArrayLimit; 20024 20025/***/ }), 20026/* 341 */ 20027/***/ (function(module, exports) { 20028 20029function _nonIterableRest() { 20030 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 20031} 20032 20033module.exports = _nonIterableRest; 20034 20035/***/ }), 20036/* 342 */ 20037/***/ (function(module, exports, __webpack_require__) { 20038 20039"use strict"; 20040 // @wf-will-never-add-flow-to-this-file 20041 20042/* globals window, document */ 20043 20044/* eslint-disable no-var */ 20045 20046/** 20047 * Webflow: Navbar component 20048 */ 20049 20050var Webflow = __webpack_require__(3); 20051 20052var IXEvents = __webpack_require__(39); 20053 20054var KEY_CODES = { 20055 ARROW_LEFT: 37, 20056 ARROW_UP: 38, 20057 ARROW_RIGHT: 39, 20058 ARROW_DOWN: 40, 20059 ESCAPE: 27, 20060 SPACE: 32, 20061 ENTER: 13, 20062 HOME: 36, 20063 END: 35 20064}; 20065Webflow.define('navbar', module.exports = function ($, _) { 20066 var api = {}; 20067 var tram = $.tram; 20068 var $win = $(window); 20069 var $doc = $(document); 20070 var debounce = _.debounce; 20071 var $body; 20072 var $navbars; 20073 var designer; 20074 var inEditor; 20075 var inApp = Webflow.env(); 20076 var overlay = '<div class="w-nav-overlay" data-wf-ignore />'; 20077 var namespace = '.w-nav'; 20078 var navbarOpenedButton = 'w--open'; 20079 var navbarOpenedDropdown = 'w--nav-dropdown-open'; 20080 var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; 20081 var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; 20082 var navbarOpenedLink = 'w--nav-link-open'; 20083 var ix = IXEvents.triggers; 20084 var menuSibling = $(); // ----------------------------------- 20085 // Module methods 20086 20087 api.ready = api.design = api.preview = init; 20088 20089 api.destroy = function () { 20090 menuSibling = $(); 20091 removeListeners(); 20092 20093 if ($navbars && $navbars.length) { 20094 $navbars.each(teardown); 20095 } 20096 }; // ----------------------------------- 20097 // Private methods 20098 20099
20100 function init() { 20101 designer = inApp && Webflow.env('design'); 20102 inEditor = Webflow.env('editor'); 20103 $body = $(document.body); // Find all instances on the page 20104 20105 $navbars = $doc.find(namespace); 20106 20107 if (!$navbars.length) { 20108 return; 20109 } 20110 20111 $navbars.each(build); // Wire events 20112 20113 removeListeners(); 20114 addListeners(); 20115 } 20116 20117 function removeListeners() { 20118 Webflow.resize.off(resizeAll); 20119 } 20120 20121 function addListeners() { 20122 Webflow.resize.on(resizeAll); 20123 } 20124 20125 function resizeAll() { 20126 $navbars.each(resize); 20127 } 20128 20129 function build(i, el) { 20130 var $el = $(el); // Store state in data 20131 20132 var data = $.data(el, namespace); 20133 20134 if (!data) { 20135 data = $.data(el, namespace, { 20136 open: false, 20137 el: $el, 20138 config: {}, 20139 selectedIdx: -1 20140 }); 20141 } 20142 20143 data.menu = $el.find('.w-nav-menu'); 20144 data.links = data.menu.find('.w-nav-link'); 20145 data.dropdowns = data.menu.find('.w-dropdown'); 20146 data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); 20147 data.dropdownList = data.menu.find('.w-dropdown-list'); 20148 data.button = $el.find('.w-nav-button'); 20149 data.container = $el.find('.w-container'); 20150 data.overlayContainerId = 'w-nav-overlay-' + i; 20151 data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the 20152 // default setting, then add an aria-label 20153 20154 var navBrandLink = $el.find('.w-nav-brand'); 20155 20156 if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { 20157 navBrandLink.attr('aria-label', 'home'); 20158 } // VoiceOver bug, when items that disallow user selection are focused 20159 // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ã)_/¯ 20160 20161 20162 data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element 20163 20164 if (data.button.attr('aria-label') == null) { 20165 data.button.attr('aria-label', 'menu'); 20166 } 20167 20168 data.button.attr('role', 'button'); 20169 data.button.attr('tabindex', '0'); 20170 data.button.attr('aria-controls', data.overlayContainerId); 20171 data.button.attr('aria-haspopup', 'menu'); 20172 data.button.attr('aria-expanded', 'false'); // Remove old events 20173 20174 data.el.off(namespace); 20175 data.button.off(namespace); 20176 data.menu.off(namespace); // Set config from data attributes 20177 20178 configure(data); // Add events based on mode 20179 20180 if (designer) { 20181 removeOverlay(data); 20182 data.el.on('setting' + namespace, handler(data)); 20183 } else { 20184 addOverlay(data); 20185 data.button.on('click' + namespace, toggle(data)); 20186 data.menu.on('click' + namespace, 'a', navigate(data)); 20187 data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); 20188 data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); 20189 } // Trigger initial resize 20190 20191 20192 resize(i, el); 20193 } 20194 20195 function teardown(i, el) { 20196 var data = $.data(el, namespace); 20197 20198 if (data) { 20199 removeOverlay(data); 20200 $.removeData(el, namespace); 20201 } 20202 } 20203 20204 function removeOverlay(data) { 20205 if (!data.overlay) { 20206 return; 20207 } 20208 20209 close(data, true); 20210 data.overlay.remove(); 20211 data.overlay = null; 20212 } 20213 20214 function addOverlay(data) { 20215 if (data.overlay) { 20216 return; 20217 } 20218 20219 data.overlay = $(overlay).appendTo(data.el); 20220 data.overlay.attr('id', data.overlayContainerId); 20221 data.parent = data.menu.parent(); 20222 close(data, true); 20223 } 20224 20225 function configure(data) { 20226 var config = {}; 20227 var old = data.config || {}; // Set config options from data attributes 20228 20229 var animation = config.animation = data.el.attr('data-animation') || 'default'; 20230 config.animOver = /^over/.test(animation); 20231 config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed 20232 20233 if (old.animation !== animation) { 20234 data.open && _.defer(reopen, data); 20235 } 20236 20237 config.easing = data.el.attr('data-easing') || 'ease'; 20238 config.easing2 = data.el.attr('data-easing2') || 'ease'; 20239 var duration = data.el.attr('data-duration'); 20240 config.duration = duration != null ? Number(duration) : 400; 20241 config.docHeight = data.el.attr('data-doc-height'); // Store config in data 20242 20243 data.config = config; 20244 } 20245 20246 function handler(data) { 20247 return function (evt, options) { 20248 options = options || {}; 20249 var winWidth = $win.width(); 20250 configure(data); 20251 options.open === true && open(data, true); 20252 options.open === false && close(data, true); // Reopen if media query changed after setting 20253 20254 data.open && _.defer(function () { 20255 if (winWidth !== $win.width()) { 20256 reopen(data); 20257 } 20258 }); 20259 }; 20260 } 20261 20262 function makeToggleButtonKeyboardHandler(data) { 20263 return function (evt) { 20264 switch (evt.keyCode) { 20265 case KEY_CODES.SPACE: 20266 case KEY_CODES.ENTER: 20267 { 20268 // Toggle returns a function 20269 toggle(data)(); 20270 evt.preventDefault(); 20271 return evt.stopPropagation(); 20272 } 20273 20274 case KEY_CODES.ESCAPE: 20275 { 20276 close(data); 20277 evt.preventDefault(); 20278 return evt.stopPropagation(); 20279 } 20280 20281 case KEY_CODES.ARROW_RIGHT: 20282 case KEY_CODES.ARROW_DOWN: 20283 case KEY_CODES.HOME: 20284 case KEY_CODES.END: 20285 { 20286 if (!data.open) { 20287 evt.preventDefault(); 20288 return evt.stopPropagation(); 20289 } 20290 20291 if (evt.keyCode === KEY_CODES.END) { 20292 data.selectedIdx = data.links.length - 1; 20293 } else { 20294 data.selectedIdx = 0; 20295 } 20296 20297 focusSelectedLink(data); 20298 evt.preventDefault(); 20299 return evt.stopPropagation(); 20300 } 20301 } 20302 }; 20303 } 20304 20305 function makeLinksKeyboardHandler(data) { 20306 return function (evt) { 20307 if (!data.open) { 20308 return; 20309 } // Realign selectedIdx with the menu item that is currently in focus. 20310 // We need this because we do not track the `Tab` key activity! 20311 20312 20313 data.selectedIdx = data.links.index(document.activeElement); 20314 20315 switch (evt.keyCode) { 20316 case KEY_CODES.HOME: 20317 case KEY_CODES.END: 20318 { 20319 if (evt.keyCode === KEY_CODES.END) { 20320 data.selectedIdx = data.links.length - 1; 20321 } else { 20322 data.selectedIdx = 0; 20323 } 20324 20325 focusSelectedLink(data); 20326 evt.preventDefault(); 20327 return evt.stopPropagation(); 20328 } 20329 20330 case KEY_CODES.ESCAPE: 20331 { 20332 close(data); // Focus toggle button 20333 20334 data.button.focus(); 20335 evt.preventDefault(); 20336 return evt.stopPropagation(); 20337 } 20338 20339 case KEY_CODES.ARROW_LEFT: 20340 case KEY_CODES.ARROW_UP: 20341 {
20342 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 20343 focusSelectedLink(data); 20344 evt.preventDefault(); 20345 return evt.stopPropagation(); 20346 } 20347 20348 case KEY_CODES.ARROW_RIGHT: 20349 case KEY_CODES.ARROW_DOWN: 20350 { 20351 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 20352 focusSelectedLink(data); 20353 evt.preventDefault(); 20354 return evt.stopPropagation(); 20355 } 20356 } 20357 }; 20358 } 20359 20360 function focusSelectedLink(data) { 20361 if (data.links[data.selectedIdx]) { 20362 var selectedElement = data.links[data.selectedIdx]; 20363 selectedElement.focus(); 20364 navigate(selectedElement); 20365 } 20366 } 20367 20368 function reopen(data) { 20369 if (!data.open) { 20370 return; 20371 } 20372 20373 close(data, true); 20374 open(data, true); 20375 } 20376 20377 function toggle(data) { 20378 // Debounce toggle to wait for accurate open state 20379 return debounce(function () { 20380 data.open ? close(data) : open(data); 20381 }); 20382 } 20383 20384 function navigate(data) { 20385 return function (evt) { 20386 var link = $(this); 20387 var href = link.attr('href'); // Avoid late clicks on touch devices 20388 20389 if (!Webflow.validClick(evt.currentTarget)) { 20390 evt.preventDefault(); 20391 return; 20392 } // Close when navigating to an in-page anchor 20393 20394 20395 if (href && href.indexOf('#') === 0 && data.open) { 20396 close(data); 20397 } 20398 }; 20399 } 20400 20401 function outside(data) { 20402 // Unbind previous click handler if it exists 20403 if (data.outside) { 20404 $doc.off('click' + namespace, data.outside); 20405 } 20406 20407 return function (evt) { 20408 var $target = $(evt.target); // Ignore clicks on Editor overlay UI 20409 20410 if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { 20411 return; 20412 } // Close menu when clicked outside, debounced to wait for state 20413 20414 20415 outsideDebounced(data, $target); 20416 }; 20417 } 20418 20419 var outsideDebounced = debounce(function (data, $target) { 20420 if (!data.open) { 20421 return; 20422 } 20423 20424 var menu = $target.closest('.w-nav-menu'); 20425 20426 if (!data.menu.is(menu)) { 20427 close(data); 20428 } 20429 }); 20430 20431 function resize(i, el) { 20432 var data = $.data(el, namespace);
20432 // Check for collapsed state based on button display 20433 20434 var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) 20435 20436 if (data.open && !collapsed && !designer) { 20437 close(data, true); 20438 } // Set max-width of links + dropdowns to match container 20439 20440 20441 if (data.container.length) { 20442 var updateEachMax = updateMax(data); 20443 data.links.each(updateEachMax); 20444 data.dropdowns.each(updateEachMax); 20445 } // If currently open, update height to match body 20446 20447 20448 if (data.open) { 20449 setOverlayHeight(data); 20450 } 20451 } 20452 20453 var maxWidth = 'max-width'; 20454 20455 function updateMax(data) { 20456 // Set max-width of each element to match container 20457 var containMax = data.container.css(maxWidth); 20458 20459 if (containMax === 'none') { 20460 containMax = ''; 20461 } 20462 20463 return function (i, link) { 20464 link = $(link); 20465 link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists 20466 20467 if (link.css(maxWidth) === 'none') { 20468 link.css(maxWidth, containMax); 20469 } 20470 }; 20471 } 20472 20473 function addMenuOpen(i, el) { 20474 el.setAttribute('data-nav-menu-open', ''); 20475 } 20476 20477 function removeMenuOpen(i, el) { 20478 el.removeAttribute('data-nav-menu-open'); 20479 } 20480 20481 function open(data, immediate) { 20482 if (data.open) { 20483 return; 20484 } 20485 20486 data.open = true; 20487 data.menu.each(addMenuOpen); 20488 data.links.addClass(navbarOpenedLink); 20489 data.dropdowns.addClass(navbarOpenedDropdown); 20490 data.dropdownToggle.addClass(navbarOpenedDropdownToggle); 20491 data.dropdownList.addClass(navbarOpenedDropdownList); 20492 data.button.addClass(navbarOpenedButton); 20493 var config = data.config; 20494 var animation = config.animation; 20495 20496 if (animation === 'none' || !tram.support.transform || config.duration <= 0) { 20497 immediate = true; 20498 } 20499 20500 var bodyHeight = setOverlayHeight(data); 20501 var menuHeight = data.menu.outerHeight(true); 20502 var menuWidth = data.menu.outerWidth(true); 20503 var navHeight = data.el.height(); 20504 var navbarEl = data.el[0]; 20505 resize(0, navbarEl); 20506 ix.intro(0, navbarEl); 20507 Webflow.redraw.up(); // Listen for click outside events 20508 20509 if (!designer) { 20510 $doc.on('click' + namespace, data.outside); 20511 } // No transition for immediate 20512 20513 20514 if (immediate) { 20515 complete(); 20516 return; 20517 } 20518 20519 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay 20520 20521 if (data.overlay) { 20522 menuSibling = data.menu.prev(); 20523 data.overlay.show().append(data.menu); 20524 } // Over left/right 20525 20526 20527 if (config.animOver) { 20528 tram(data.menu).add(transConfig).set({ 20529 x: config.animDirect * menuWidth, 20530 height: bodyHeight 20531 }).start({ 20532 x: 0 20533 }).then(complete); 20534 data.overlay && data.overlay.width(menuWidth); 20535 return; 20536 } // Drop Down 20537 20538 20539 var offsetY = navHeight + menuHeight; 20540 tram(data.menu).add(transConfig).set({ 20541 y: -offsetY 20542 }).start({ 20543 y: 0 20544 }).then(complete); 20545 20546 function complete() { 20547 data.button.attr('aria-expanded', 'true'); 20548 } 20549 } 20550 20551 function setOverlayHeight(data) { 20552 var config = data.config; 20553 var bodyHeight = config.docHeight ? $doc.height() : $body.height(); 20554 20555 if (config.animOver) { 20556 data.menu.height(bodyHeight); 20557 } else if (data.el.css('position') !== 'fixed') { 20558 bodyHeight -= data.el.outerHeight(true); 20559 } 20560 20561 data.overlay && data.overlay.height(bodyHeight); 20562 return bodyHeight; 20563 } 20564 20565 function close(data, immediate) { 20566 if (!data.open) { 20567 return; 20568 } 20569 20570 data.open = false; 20571 data.button.removeClass(navbarOpenedButton); 20572 var config = data.config; 20573 20574 if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { 20575 immediate = true; 20576 } 20577 20578 ix.outro(0, data.el[0]); // Stop listening for click outside events 20579 20580 $doc.off('click' + namespace, data.outside); 20581 20582 if (immediate) { 20583 tram(data.menu).stop(); 20584 complete(); 20585 return; 20586 } 20587 20588 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; 20589 var menuHeight = data.menu.outerHeight(true); 20590 var menuWidth = data.menu.outerWidth(true); 20591 var navHeight = data.el.height(); // Over left/right 20592 20593 if (config.animOver) { 20594 tram(data.menu).add(transConfig).start({ 20595 x: menuWidth * config.animDirect 20596 }).then(complete); 20597 return; 20598 } // Drop Down 20599 20600 20601 var offsetY = navHeight + menuHeight; 20602 tram(data.menu).add(transConfig).start({ 20603 y: -offsetY 20604 }).then(complete); 20605 20606 function complete() { 20607 data.menu.height(''); 20608 tram(data.menu).set({ 20609 x: 0, 20610 y: 0 20611 }); 20612 data.menu.each(removeMenuOpen); 20613 data.links.removeClass(navbarOpenedLink); 20614 data.dropdowns.removeClass(navbarOpenedDropdown); 20615 data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); 20616 data.dropdownList.removeClass(navbarOpenedDropdownList); 20617 20618 if (data.overlay && data.overlay.children().length) { 20619 // Move menu back to parent at the original location 20620 menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); 20621 data.overlay.attr('style', '').hide(); 20622 } // Trigger event so other components can hook in (dropdown) 20623 20624 20625 data.el.triggerHandler('w-close'); 20626 data.button.attr('aria-expanded', 'false'); 20627 } 20628 } // Export module 20629 20630 20631 return api; 20632}); 20633 20634/***/ }), 20635/* 343 */ 20636/***/ (function(module, exports, __webpack_require__) { 20637 20638"use strict"; 20639 // @wf-will-never-add-flow-to-this-file 20640 20641/* global window, document */ 20642 20643/* eslint-disable no-var */ 20644 20645/** 20646 * Webflow: Slider component 20647 */ 20648 20649var Webflow = __webpack_require__(3); 20650 20651var IXEvents = __webpack_require__(39); 20652 20653var KEY_CODES = { 20654 ARROW_LEFT: 37, 20655 ARROW_UP: 38, 20656 ARROW_RIGHT: 39, 20657 ARROW_DOWN: 40, 20658 SPACE: 32, 20659 ENTER: 13, 20660 HOME: 36, 20661 END: 35 20662}; 20663var FOCUSABLE_SELECTOR = 'a[href], area[href], [role="button"], input, select, textarea, button, iframe, object, embed, *[tabindex], *[contenteditable]'; 20664Webflow.define('slider', module.exports = function ($, _) { 20665 var api = {}; 20666 var tram = $.tram; 20667 var $doc = $(document); 20668 var $sliders; 20669 var designer; 20670 var inApp = Webflow.env(); 20671 var namespace = '.w-slider'; 20672 var dot = '<div class="w-slider-dot" data-wf-ignore />'; 20673 var ariaLiveLabelHtml = '<div aria-live="off" aria-atomic="true" class="w-slider-aria-label" data-wf-ignore />'; 20674 var forceShow = 'w-slider-force-show'; 20675 var ix = IXEvents.triggers; 20676 var fallback; 20677 var inRedraw = false; // ----------------------------------- 20678 // Module methods 20679 20680 api.ready = function () { 20681 designer = Webflow.env('design'); 20682 init(); 20683 }; 20684 20685 api.design = function () { 20686 designer = true; // Helps slider init on Designer load. 20687 20688 setTimeout(init, 1000); 20689 }; 20690 20691 api.preview = function () { 20692 designer = false;
20693 init(); 20694 }; 20695 20696 api.redraw = function () { 20697 inRedraw = true; 20698 init(); 20699 inRedraw = false; 20700 }; 20701 20702 api.destroy = removeListeners; // ----------------------------------- 20703 // Private methods 20704 20705 function init() { 20706 // Find all sliders on the page 20707 $sliders = $doc.find(namespace); 20708 20709 if (!$sliders.length) { 20710 return; 20711 } 20712 20713 $sliders.each(build); 20714 20715 if (fallback) { 20716 return; 20717 } 20718 20719 removeListeners(); 20720 addListeners(); 20721 } 20722 20723 function removeListeners() { 20724 Webflow.resize.off(renderAll); 20725 Webflow.redraw.off(api.redraw); 20726 } 20727 20728 function addListeners() { 20729 Webflow.resize.on(renderAll); 20730 Webflow.redraw.on(api.redraw); 20731 } 20732 20733 function renderAll() { 20734 $sliders.filter(':visible').each(render); 20735 } 20736 20737 function build(i, el) { 20738 var $el = $(el); // Store slider state in data 20739 20740 var data = $.data(el, namespace); 20741 20742 if (!data) { 20743 data = $.data(el, namespace, { 20744 index: 0, 20745 depth: 1, 20746 hasFocus: { 20747 keyboard: false, 20748 mouse: false 20749 }, 20750 el: $el, 20751 config: {} 20752 }); 20753 } 20754 20755 data.mask = $el.children('.w-slider-mask'); 20756 data.left = $el.children('.w-slider-arrow-left'); 20757 data.right = $el.children('.w-slider-arrow-right'); 20758 data.nav = $el.children('.w-slider-nav'); 20759 data.slides = data.mask.children('.w-slide'); 20760 data.slides.each(ix.reset); 20761 20762 if (inRedraw) { 20763 data.maskWidth = 0; 20764 } 20765 20766 if ($el.attr('role') === undefined) { 20767 $el.attr('role', 'region'); 20768 } 20769 20770 if ($el.attr('aria-label') === undefined) { 20771 $el.attr('aria-label', 'carousel'); 20772 } // Store the ID of the slider slide view mask 20773 20774 20775 var slideViewId = data.mask.attr('id'); // If user did not provide an ID, set it 20776 20777 if (!slideViewId) { 20778 slideViewId = 'w-slider-mask-' + i; 20779 data.mask.attr('id', slideViewId); 20780 } // Create aria live label 20781 20782 20783 if (!designer && !data.ariaLiveLabel) { 20784 data.ariaLiveLabel = $(ariaLiveLabelHtml).appendTo(data.mask); 20785 } // Add attributes to left/right buttons 20786 20787 20788 data.left.attr('role', 'button'); 20789 data.left.attr('tabindex', '0'); 20790 data.left.attr('aria-controls', slideViewId); 20791 20792 if (data.left.attr('aria-label') === undefined) { 20793 data.left.attr('aria-label', 'previous slide'); 20794 } 20795 20796 data.right.attr('role', 'button'); 20797 data.right.attr('tabindex', '0'); 20798 data.right.attr('aria-controls', slideViewId); 20799 20800 if (data.right.attr('aria-label') === undefined) { 20801 data.right.attr('aria-label', 'next slide'); 20802 } // Disable in old browsers 20803 20804 20805 if (!tram.support.transform) { 20806 data.left.hide(); 20807 data.right.hide(); 20808 data.nav.hide(); 20809 fallback = true; 20810 return; 20811 } // Remove old events 20812 20813 20814 data.el.off(namespace); 20815 data.left.off(namespace); 20816 data.right.off(namespace); 20817 data.nav.off(namespace); // Set config from data attributes 20818 20819 configure(data); // Add events based on mode 20820 20821 if (designer) { 20822 data.el.on('setting' + namespace, handler(data)); 20823 stopTimer(data); 20824 data.hasTimer = false; 20825 } else { 20826 data.el.on('swipe' + namespace, handler(data)); 20827 data.left.on('click' + namespace, previousFunction(data)); 20828 data.right.on('click' + namespace, next(data)); 20829 data.left.on('keydown' + namespace, keyboardSlideButtonsFunction(data, previousFunction)); 20830 data.right.on('keydown' + namespace, keyboardSlideButtonsFunction(data, next)); // Listen to nav keyboard events 20831 20832 data.nav.on('keydown' + namespace, '> div', handler(data)); // Start timer if autoplay is true, only once 20833 20834 if (data.config.autoplay && !data.hasTimer) { 20835 data.hasTimer = true; 20836 data.timerCount = 1; 20837 startTimer(data); 20838 } 20839 20840 data.el.on('mouseenter' + namespace, hasFocus(data, true, 'mouse')); 20841 data.el.on('focusin' + namespace, hasFocus(data, true, 'keyboard')); 20842 data.el.on('mouseleave' + namespace, hasFocus(data, false, 'mouse')); 20843 data.el.on('focusout' + namespace, hasFocus(data, false, 'keyboard')); 20844 } // Listen to nav click events 20845 20846 20847 data.nav.on('click' + namespace, '> div', handler(data)); // Remove gaps from formatted html (for inline-blocks) 20848 20849 if (!inApp) { 20850 data.mask.contents().filter(function () { 20851 return this.nodeType === 3; 20852 }).remove(); 20853 } // If slider or any parent is hidden, temporarily show for measurements (https://github.com/webflow/webflow/issues/24921) 20854 20855 20856 var $elHidden = $el.filter(':hidden'); 20857 $elHidden.addClass(forceShow); 20858 var $elHiddenParents = $el.parents(':hidden'); 20859 $elHiddenParents.addClass(forceShow); // Run first render 20860 20861 if (!inRedraw) { 20862 render(i, el); 20863 } // If slider or any parent is hidden, reset after temporarily showing for measurements 20864 20865 20866 $elHidden.removeClass(forceShow); 20867 $elHiddenParents.removeClass(forceShow); 20868 } 20869 20870 function configure(data) { 20871 var config = {}; 20872 config.crossOver = 0; // Set config options from data attributes 20873 20874 config.animation = data.el.attr('data-animation') || 'slide'; 20875 20876 if (config.animation === 'outin') { 20877 config.animation = 'cross'; 20878 config.crossOver = 0.5; 20879 } 20880 20881 config.easing = data.el.attr('data-easing') || 'ease'; 20882 var duration = data.el.attr('data-duration'); 20883 config.duration = duration != null ? parseInt(duration, 10) : 500; 20884 20885 if (isAttrTrue(data.el.attr('data-infinite'))) { 20886 config.infinite = true; 20887 } 20888 20889 if (isAttrTrue(data.el.attr('data-disable-swipe'))) { 20890 config.disableSwipe = true; 20891 } 20892 20893 if (isAttrTrue(data.el.attr('data-hide-arrows'))) { 20894 config.hideArrows = true; 20895 } else if (data.config.hideArrows) { 20896 data.left.show(); 20897 data.right.show(); 20898 } 20899 20900 if (isAttrTrue(data.el.attr('data-autoplay'))) {
20901 config.autoplay = true; 20902 config.delay = parseInt(data.el.attr('data-delay'), 10) || 2000; 20903 config.timerMax = parseInt(data.el.attr('data-autoplay-limit'), 10); // Disable timer on first touch or mouse down 20904 20905 var touchEvents = 'mousedown' + namespace + ' touchstart' + namespace; 20906 20907 if (!designer) { 20908 data.el.off(touchEvents).one(touchEvents, function () { 20909 stopTimer(data); 20910 }); 20911 } 20912 } // Use edge buffer to help calculate page count 20913 20914 20915 var arrowWidth = data.right.width(); 20916 config.edge = arrowWidth ? arrowWidth + 40 : 100; // Store config in data 20917 20918 data.config = config; 20919 } 20920 20921 function isAttrTrue(value) { 20922 return value === '1' || value === 'true'; 20923 } 20924 20925 function hasFocus(data, focusIn, eventType) { 20926 return function (evt) { 20927 if (!focusIn) { 20928 // Prevent Focus Out if moving to another element in the slider 20929 if ($.contains(data.el.get(0), evt.relatedTarget)) { 20930 return; 20931 } 20932 20933 data.hasFocus[eventType] = focusIn; // Prevent Aria live change if focused by other input 20934 20935 if (data.hasFocus.mouse && eventType === 'keyboard' || data.hasFocus.keyboard && eventType === 'mouse') { 20936 return; 20937 } 20938 } else { 20939 data.hasFocus[eventType] = focusIn; 20940 } 20941 20942 if (focusIn) { 20943 data.ariaLiveLabel.attr('aria-live', 'polite'); 20944 20945 if (data.hasTimer) { 20946 stopTimer(data); 20947 } 20948 } else { 20949 data.ariaLiveLabel.attr('aria-live', 'off'); 20950 20951 if (data.hasTimer) { 20952 startTimer(data); 20953 } 20954 } 20955 20956 return; 20957 }; 20958 } 20959 20960 function keyboardSlideButtonsFunction(data, directionFunction) { 20961 return function (evt) { 20962 switch (evt.keyCode) { 20963 case KEY_CODES.SPACE: 20964 case KEY_CODES.ENTER: 20965 { 20966 // DirectionFunction returns a function 20967 directionFunction(data)(); 20968 evt.preventDefault(); 20969 return evt.stopPropagation(); 20970 } 20971 } 20972 }; 20973 } 20974 20975 function previousFunction(data) { 20976 return function () { 20977 change(data, { 20978 index: data.index - 1, 20979 vector: -1 20980 }); 20981 }; 20982 } 20983 20984 function next(data) { 20985 return function () { 20986 change(data, { 20987 index: data.index + 1, 20988 vector: 1 20989 }); 20990 }; 20991 } 20992 20993 function select(data, value) { 20994 // Select page based on slide element index 20995 var found = null; 20996 20997 if (value === data.slides.length) { 20998 init(); 20999 layout(data); // Rebuild and find new slides 21000 } 21001 21002 _.each(data.anchors, function (anchor, index) { 21003 $(anchor.els).each(function (i, el) { 21004 if ($(el).index() === value) { 21005 found = index; 21006 } 21007 }); 21008 }); 21009 21010 if (found != null) { 21011 change(data, { 21012 index: found, 21013 immediate: true 21014 }); 21015 } 21016 } 21017 21018 function startTimer(data) { 21019 stopTimer(data); 21020 var config = data.config; 21021 var timerMax = config.timerMax; 21022 21023 if (timerMax && data.timerCount++ > timerMax) { 21024 return; 21025 } 21026 21027 data.timerId = window.setTimeout(function () { 21028 if (data.timerId == null || designer) { 21029 return; 21030 } 21031 21032 next(data)(); 21033 startTimer(data); 21034 }, config.delay); 21035 } 21036 21037 function stopTimer(data) { 21038 window.clearTimeout(data.timerId); 21039 data.timerId = null; 21040 } 21041 21042 function handler(data) { 21043 return function (evt, options) { 21044 options = options || {}; 21045 var config = data.config; // Designer settings 21046 21047 if (designer && evt.type === 'setting') { 21048 if (options.select === 'prev') { 21049 return previousFunction(data)(); 21050 } 21051 21052 if (options.select === 'next') { 21053 return next(data)(); 21054 } 21055 21056 configure(data); 21057 layout(data); 21058 21059 if (options.select == null) { 21060 return; 21061 } 21062 21063 select(data, options.select); 21064 return; 21065 } // Swipe event 21066 21067 21068 if (evt.type === 'swipe') { 21069 if (config.disableSwipe) { 21070 return; 21071 } 21072 21073 if (Webflow.env('editor')) { 21074 return; 21075 } 21076 21077 if (options.direction === 'left') { 21078 return next(data)(); 21079 } 21080 21081 if (options.direction === 'right') { 21082 return previousFunction(data)(); 21083 } 21084 21085 return; 21086 } // Page buttons 21087 21088 21089 if (data.nav.has(evt.target).length) { 21090 var index = $(evt.target).index(); 21091 21092 if (evt.type === 'click') { 21093 change(data, { 21094 index: index 21095 }); 21096 } 21097 21098 if (evt.type === 'keydown') { 21099 switch (evt.keyCode) { 21100 case KEY_CODES.ENTER: 21101 case KEY_CODES.SPACE: 21102 { 21103 change(data, { 21104 index: index 21105 }); 21106 evt.preventDefault(); 21107 break; 21108 } 21109 21110 case KEY_CODES.ARROW_LEFT: 21111 case KEY_CODES.ARROW_UP: 21112 { 21113 focusDot(data.nav, Math.max(index - 1, 0)); 21114 evt.preventDefault(); 21115 break; 21116 } 21117 21118 case KEY_CODES.ARROW_RIGHT: 21119 case KEY_CODES.ARROW_DOWN: 21120 { 21121 focusDot(data.nav, Math.min(index + 1, data.pages)); 21122 evt.preventDefault(); 21123 break; 21124 } 21125 21126 case KEY_CODES.HOME: 21127 { 21128 focusDot(data.nav, 0); 21129 evt.preventDefault(); 21130 break; 21131 } 21132 21133 case KEY_CODES.END: 21134 { 21135 focusDot(data.nav, data.pages); 21136 evt.preventDefault(); 21137 break; 21138 } 21139 21140 default: 21141 { 21142 return; 21143 } 21144 } 21145 } 21146 } 21147 }; 21148 } 21149 21150 function focusDot($nav, index) { 21151 // Focus nav dot; don't change class to active 21152 var $active = $nav.children().eq(index).focus(); 21153 $nav.children().not($active); 21154 } 21155 21156 function change(data, options) { 21157 options = options || {}; 21158 var config = data.config; 21159 var anchors = data.anchors; // Set new index 21160 21161 data.previous = data.index; 21162 var index = options.index; 21163 var shift = {}; 21164 21165 if (index < 0) { 21166 index = anchors.length - 1; 21167 21168 if (config.infinite) { 21169 // Shift first slide to the end 21170 shift.x = -data.endX; 21171 shift.from = 0; 21172 shift.to = anchors[0].width; 21173 } 21174 } else if (index >= anchors.length) { 21175 index = 0; 21176 21177 if (config.infinite) { 21178 // Shift last slide to the start
21179 shift.x = anchors[anchors.length - 1].width; 21180 shift.from = -anchors[anchors.length - 1].x; 21181 shift.to = shift.from - shift.x; 21182 } 21183 } 21184 21185 data.index = index; // Select nav dot; set class active 21186 21187 var $active = data.nav.children().eq(index).addClass('w-active').attr('aria-pressed', 'true').attr('tabindex', '0'); 21188 data.nav.children().not($active).removeClass('w-active').attr('aria-pressed', 'false').attr('tabindex', '-1'); // Hide arrows 21189 21190 if (config.hideArrows) { 21191 data.index === anchors.length - 1 ? data.right.hide() : data.right.show(); 21192 data.index === 0 ? data.left.hide() : data.left.show(); 21193 } // Get page offset from anchors 21194 21195 21196 var lastOffsetX = data.offsetX || 0; 21197 var offsetX = data.offsetX = -anchors[data.index].x; 21198 var resetConfig = { 21199 x: offsetX, 21200 opacity: 1, 21201 visibility: '' 21202 }; // Transition slides 21203 21204 var targets = $(anchors[data.index].els); 21205 var prevTargs = $(anchors[data.previous] && anchors[data.previous].els); 21206 var others = data.slides.not(targets); 21207 var animation = config.animation; 21208 var easing = config.easing; 21209 var duration = Math.round(config.duration); 21210 var vector = options.vector || (data.index > data.previous ? 1 : -1); 21211 var fadeRule = 'opacity ' + duration + 'ms ' + easing; 21212 var slideRule = 'transform ' + duration + 'ms ' + easing; // Make active slides' content focusable 21213 21214 targets.find(FOCUSABLE_SELECTOR).removeAttr('tabindex'); 21215 targets.removeAttr('aria-hidden'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... 21216 21217 targets.find('*').removeAttr('aria-hidden'); // Prevent focus on inactive slides' content 21218 21219 others.find(FOCUSABLE_SELECTOR).attr('tabindex', '-1'); 21220 others.attr('aria-hidden', 'true'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... 21221 21222 others.find('*').attr('aria-hidden', 'true'); // Trigger IX events 21223 21224 if (!designer) { 21225 targets.each(ix.intro); 21226 others.each(ix.outro); 21227 } // Set immediately after layout changes (but not during redraw) 21228 21229 21230 if (options.immediate && !inRedraw) { 21231 tram(targets).set(resetConfig); 21232 resetOthers(); 21233 return; 21234 } // Exit early if index is unchanged 21235 21236 21237 if (data.index === data.previous) { 21238 return; 21239 } // Announce slide change to screen reader 21240 21241 21242 if (!designer) { 21243 data.ariaLiveLabel.text("Slide ".concat(index + 1, " of ").concat(anchors.length, ".")); 21244 } // Cross Fade / Out-In 21245 21246 21247 if (animation === 'cross') { 21248 var reduced = Math.round(duration - duration * config.crossOver); 21249 var wait = Math.round(duration - reduced); 21250 fadeRule = 'opacity ' + reduced + 'ms ' + easing; 21251 tram(prevTargs).set({ 21252 visibility: '' 21253 }).add(fadeRule).start({ 21254 opacity: 0 21255 }); 21256 tram(targets).set({ 21257 visibility: '', 21258 x: offsetX, 21259 opacity: 0, 21260 zIndex: data.depth++ 21261 }).add(fadeRule).wait(wait).then({ 21262 opacity: 1 21263 }).then(resetOthers); 21264 return; 21265 } // Fade Over 21266 21267 21268 if (animation === 'fade') { 21269 tram(prevTargs).set({ 21270 visibility: '' 21271 }).stop(); 21272 tram(targets).set({ 21273 visibility: '', 21274 x: offsetX, 21275 opacity: 0, 21276 zIndex: data.depth++ 21277 }).add(fadeRule).start({ 21278 opacity: 1 21279 }).then(resetOthers); 21280 return; 21281 } // Slide Over 21282 21283 21284 if (animation === 'over') { 21285 resetConfig = { 21286 x: data.endX 21287 }; 21288 tram(prevTargs).set({ 21289 visibility: '' 21290 }).stop(); 21291 tram(targets).set({ 21292 visibility: '', 21293 zIndex: data.depth++, 21294 x: offsetX + anchors[data.index].width * vector 21295 }).add(slideRule).start({ 21296 x: offsetX 21297 }).then(resetOthers); 21298 return; 21299 } // Slide - infinite scroll 21300 21301 21302 if (config.infinite && shift.x) { 21303 tram(data.slides.not(prevTargs)).set({ 21304 visibility: '', 21305 x: shift.x 21306 }).add(slideRule).start({ 21307 x: offsetX 21308 }); 21309 tram(prevTargs).set({ 21310 visibility: '', 21311 x: shift.from 21312 }).add(slideRule).start({ 21313 x: shift.to 21314 }); 21315 data.shifted = prevTargs; 21316 } else { 21317 if (config.infinite && data.shifted) { 21318 tram(data.shifted).set({ 21319 visibility: '', 21320 x: lastOffsetX 21321 }); 21322 data.shifted = null; 21323 } // Slide - basic scroll 21324 21325 21326 tram(data.slides).set({ 21327 visibility: '' 21328 }).add(slideRule).start({ 21329 x: offsetX 21330 }); 21331 } // Helper to move others out of view 21332 21333 21334 function resetOthers() { 21335 targets = $(anchors[data.index].els); 21336 others = data.slides.not(targets); 21337 21338 if (animation !== 'slide') { 21339 resetConfig.visibility = 'hidden'; 21340 } 21341 21342 tram(others).set(resetConfig); 21343 } 21344 } 21345 21346 function render(i, el) { 21347 var data = $.data(el, namespace); 21348 21349 if (!data) { 21350 return; 21351 } 21352 21353 if (maskChanged(data)) { 21354 return layout(data); 21355 } 21356 21357 if (designer && slidesChanged(data)) { 21358 layout(data); 21359 } 21360 } 21361 21362 function layout(data) { 21363 // Determine page count from width of slides 21364 var pages = 1; 21365 var offset = 0; 21366 var anchor = 0; 21367 var width = 0; 21368 var maskWidth = data.maskWidth; 21369 var threshold = maskWidth - data.config.edge; 21370 21371 if (threshold < 0) { 21372 threshold = 0; 21373 } 21374 21375 data.anchors = [{ 21376 els: [], 21377 x: 0, 21378 width: 0 21379 }]; 21380 data.slides.each(function (i, el) { 21381 if (anchor - offset > threshold) { 21382 pages++; 21383 offset += maskWidth; // Store page anchor for transition 21384 21385 data.anchors[pages - 1] = { 21386 els: [], 21387 x: anchor, 21388 width: 0 21389 }; 21390 } // Set next anchor using current width + margin 21391 21392 21393 width = $(el).outerWidth(true); 21394 anchor += width; 21395 data.anchors[pages - 1].width += width; 21396 data.anchors[pages - 1].els.push(el); 21397 var ariaLabel = i + 1 + ' of ' + data.slides.length; 21398 $(el).attr('aria-label', ariaLabel); 21399 $(el).attr('role', 'group'); 21400 }); 21401 data.endX = anchor; // Build dots if nav exists and needs updating 21402 21403 if (designer) { 21404 data.pages = null; 21405 } 21406 21407 if (data.nav.length && data.pages !== pages) { 21408 data.pages = pages; 21409 buildNav(data); 21410 } // Make sure index is still within range and call change handler 21411 21412 21413 var index = data.index; 21414 21415 if (index >= pages) { 21416 index = pages - 1; 21417 } 21418 21419 change(data, { 21420 immediate: true, 21421 index: index 21422 }); 21423 } 21424 21425 function buildNav(data) { 21426 var dots = []; 21427 var $dot; 21428 var spacing = data.el.attr('data-nav-spacing'); 21429 21430 if (spacing) { 21431 spacing = parseFloat(spacing) + 'px'; 21432 } 21433 21434 for (var i = 0, len = data.pages; i < len; i++) { 21435 $dot = $(dot); 21436 $dot.attr('aria-label', 'Show slide ' + (i + 1) + ' of ' + len).attr('aria-pressed', 'false').attr('role', 'button').attr('tabindex', '-1'); 21437 21438 if (data.nav.hasClass('w-num')) { 21439 $dot.text(i + 1); 21440 } 21441 21442 if (spacing != null) { 21443 $dot.css({ 21444 'margin-left': spacing, 21445 'margin-right': spacing 21446 }); 21447 } 21448 21449 dots.push($dot); 21450 } 21451 21452 data.nav.empty().append(dots); 21453 } 21454 21455 function maskChanged(data) { 21456 var maskWidth = data.mask.width(); 21457 21458 if (data.maskWidth !== maskWidth) { 21459 data.maskWidth = maskWidth; 21460 return true; 21461 } 21462 21463 return false;
21464 } 21465 21466 function slidesChanged(data) { 21467 var slidesWidth = 0; 21468 data.slides.each(function (i, el) { 21469 slidesWidth += $(el).outerWidth(true); 21470 }); 21471 21472 if (data.slidesWidth !== slidesWidth) { 21473 data.slidesWidth = slidesWidth; 21474 return true; 21475 } 21476 21477 return false; 21478 } // Export module 21479 21480 21481 return api; 21482}); 21483 21484/***/ }) 21485/******/ ]);/** 21486 * ---------------------------------------------------------------------- 21487 * Webflow: Interactions 2.0: Init 21488 */ 21489Webflow.require('ix2').init( 21490{"events":{"e-3":{"id":"e-3","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-4"}},"mediaQueries":["main"],"target":{"selector":".numbers-wrapper","originalId":"6320b80e48e94f429adce430|4dac42c9-452e-9c0e-0cd4-87aa60d0beba","appliesTo":"CLASS"},"targets":[{"selector":".numbers-wrapper","originalId":"6320b80e48e94f429adce430|4dac42c9-452e-9c0e-0cd4-87aa60d0beba","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1638797975930},"e-5":{"id":"e-5","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-6"}},"mediaQueries":["main"],"target":{"selector":".features-wrapper","originalId":"6320b80e48e94f429adce430|5c7786f0-ce9f-ea2c-e6d6-b1fc051b7a21","appliesTo":"CLASS"},"targets":[{"selector":".features-wrapper","originalId":"6320b80e48e94f429adce430|5c7786f0-ce9f-ea2c-e6d6-b1fc051b7a21","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1638799131608},"e-9":{"id":"e-9","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-10"}},"mediaQueries":["main"],"target":{"selector":".phone-shocase-image","originalId":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"CLASS"},"targets":[{"selector":".phone-shocase-image","originalId":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1638800578972},"e-10":{"id":"e-10","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-9"}},"mediaQueries":["main"],"target":{"selector":".phone-shocase-image","originalId":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"CLASS"},"targets":[{"selector":".phone-shocase-image","originalId":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1638800578972},"e-15":{"id":"e-15","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-16"}},"mediaQueries":["main"],"target":{"selector":".nav-link-wrapper","originalId":"ec054acf-6572-2802-c564-4617e8122711","appliesTo":"CLASS"},"targets":[{"selector":".nav-link-wrapper","originalId":"ec054acf-6572-2802-c564-4617e8122711","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1639132177222},"e-16":{"id":"e-16","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-15"}},"mediaQueries":["main"],"target":{"selector":".nav-link-wrapper","originalId":"ec054acf-6572-2802-c564-461
214907e8122711","appliesTo":"CLASS"},"targets":[{"selector":".nav-link-wrapper","originalId":"ec054acf-6572-2802-c564-4617e8122711","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1639132177224},"e-21":{"id":"e-21","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-22"}},"mediaQueries":["main"],"target":{"selector":".h4-heading-24px","originalId":"6320b80e48e94f429adce430|45922941-c58e-2e73-722d-838b2625f756","appliesTo":"CLASS"},"targets":[{"selector":".h4-heading-24px","originalId":"6320b80e48e94f429adce430|45922941-c58e-2e73-722d-838b2625f756","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1639134931946},"e-27":{"id":"e-27","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-28"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|0f95d220-4a21-7b53-85d9-138ad8503418","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|0f95d220-4a21-7b53-85d9-138ad8503418","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1639136136472},"e-35":{"id":"e-35","name":"","animationType":"custom","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-7","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-36"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".footer-grid-wrapper","originalId":"3927ec4b-44cf-33b5-ea95-93c75583b1b0","appliesTo":"CLASS"},"targets":[{"selector":".footer-grid-wrapper","originalId":"3927ec4b-44cf-33b5-ea95-93c75583b1b0","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1639151324106},"e-36":{"id":"e-36","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-8","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-35"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".footer-grid-wrapper","originalId":"3927ec4b-44cf-33b5-ea95-93c75583b1b0","appliesTo":"CLASS"},"targets":[{"selector":".footer-grid-wrapper","originalId":"3927ec4b-44cf-33b5-ea95-93c75583b1b0","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1639151324109},"e-37":{"id":"e-37","name":"","animationType":"custom","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-9","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-38"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430","appliesTo":"PAGE","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1639424029982},"e-39":{"id":"e-39","name":"","animationType":"custom","eventTypeId":"MOUSE_MOVE","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-10","affectedElements":{},"duration":0}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430","appliesTo":"PAGE","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430","appliesTo":"PAGE","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-10-p","selectedAxis":"X_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":95,"restingState":100},{"continuousParameterGroupId":"a-10-p-2","selectedAxis":"Y_AXIS","basedOn":"VIEWPORT","reverse":false,"smoothing":95,"restingState":100}],"createdOn":1639425658643},"e-40":{"id":"e-40","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-11","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-41"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|863125f7-5010-b2e7-a59f-ca69e73c8a5e","a
21490ppliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|863125f7-5010-b2e7-a59f-ca69e73c8a5e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1639427196699},"e-42":{"id":"e-42","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-12","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-43"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90916","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90916","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1639427799725},"e-44":{"id":"e-44","name":"","animationType":"custom","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-13","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-45"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|7bad603d-e669-7cb7-70c1-bb2705e2d8d9","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|7bad603d-e669-7cb7-70c1-bb2705e2d8d9","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":20,"scrollOffsetUnit":"%","delay":null,"direction":null,"effectIn":null},"createdOn":1639429020457},"e-46":{"id":"e-46","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-14","affectedElements":{},"duration":0}},"mediaQueries":["main","medium"],"target":{"id":"6320b80e48e94f429adce430|14f855b0-4be0-7297-e406-f5f7a2314807","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|14f855b0-4be0-7297-e406-f5f7a2314807","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-14-p","smoothing":90,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1639429370352},"e-47":{"id":"e-47","name":"","animationType":"custom","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90915","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90915","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":95,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1639429402393},"e-48":{"id":"e-48","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-49"}},"mediaQueries":["main"],"target":{"selector":".heading-wrapper","originalId":"6320b80e48e94f429adce430|50a5b83a-6bc0-fbdc-12af-6334b4c8b4ba","appliesTo":"CLASS"},"targets":[{"selector":".heading-wrapper","originalId":"6320b80e48e94f429adce430|50a5b83a-6bc0-fbdc-12af-6334b4c8b4ba","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1639429536210},"e-52":{"id":"e-52","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-53"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|e8a2dd70-6093-0c05-a5b5-78e5d6080950","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|e8a2dd70-6093-0c05-a5b5-78e5d6080950","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1639429582594}
21490,"e-54":{"id":"e-54","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-55"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1639429643251},"e-56":{"id":"e-56","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-57"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|4f5d1306-37ca-f739-5223-e97ac188bfed","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|4f5d1306-37ca-f739-5223-e97ac188bfed","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":100,"direction":"BOTTOM","effectIn":true},"createdOn":1639429656690},"e-58":{"id":"e-58","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-59"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|358ba3ed-4fdc-a0d5-71c7-b855ffa9f3c1","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|358ba3ed-4fdc-a0d5-71c7-b855ffa9f3c1","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":200,"direction":"BOTTOM","effectIn":true},"createdOn":1639429690961},"e-60":{"id":"e-60","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-61"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|e249fe10-aeaa-b226-3efd-c605ae04b76a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|e249fe10-aeaa-b226-3efd-c605ae04b76a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":100,"direction":"BOTTOM","effectIn":true},"createdOn":1639429704478},"e-62":{"id":"e-62","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-63"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|3e7da343-46c0-a239-b51a-8d27693c3ed7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|3e7da343-46c0-a239-b51a-8d27693c3ed7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":200,"direction":"BOTTOM","effectIn":true},"createdOn":1639429877310},"e-64":{"id":"e-64","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-65"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90922","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90922","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":20,"direction":"BOTTOM","effectIn":true},"createdOn":1639609702654},"e-66":{"id":"e-66","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-67"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|055f8d34-cb02-71f1-466f-d4a57e596309","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|055f8d34-cb02-71f1-466f-d4a57e596309","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":20,"direction":"BOTTOM","effectIn":true},"createdOn":1639609724460},"e-68":{"id":"e-68","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-69"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|9a974fa6-0788-6bf9-1f7f-7c68db6117fc","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|9a974fa6-0788-6bf9-1f7f-7c68db6117fc","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1639609765365},"e-70":{"id":"e-70","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-71"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|8f64a26b-34cc-580f-c2f5-b7038143c6af","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|8f64a26b-34cc-580f-c2f5-b7038143c6af","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1639609829188},"e-72":{"id":"e-72","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-73"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|03bae5bb-eae9-d7f9-0021-797da239eb4f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|03bae5bb-eae9-d7f9-0021-797da239eb4f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1639609892433}
21490,"e-74":{"id":"e-74","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-75"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|ffbdab46-09a7-e922-6ca9-5aef5051c338","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|ffbdab46-09a7-e922-6ca9-5aef5051c338","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1639609906494},"e-78":{"id":"e-78","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-79"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|f6be6e95-df48-9ba9-7338-7589b1f8f8a7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|f6be6e95-df48-9ba9-7338-7589b1f8f8a7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1639610232811},"e-140":{"id":"e-140","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-141"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|89eef08e-a287-72a5-ea0a-edeb7a062a3e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|89eef08e-a287-72a5-ea0a-edeb7a062a3e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1657542671305},"e-142":{"id":"e-142","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-143"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|d59d158e-a75e-1ef1-a542-23d40c6bbb5c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|d59d158e-a75e-1ef1-a542-23d40c6bbb5c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1658351917476},"e-146":{"id":"e-146","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-147"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|d62ce09f-5b7e-5990-9fb3-1d98222eacb5","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|d62ce09f-5b7e-5990-9fb3-1d98222eacb5","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":12,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1658352155198},"e-148":{"id":"e-148","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-149"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|e8f3e73e-6ca3-9293-65d8-4fadd4a575b5","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|e8f3e73e-6ca3-9293-65d8-4fadd4a575b5","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1658491179001},"e-150":{"id":"e-150","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-151"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|b0330a18-aa02-8e40-0312-da322f5eebb8","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|b0330a18-aa02-8e40-0312-da322f5eebb8","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1658491203849},"e-152":{"id":"e-152","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-153"}},"mediaQueries":["main"],"target":{"id":"6320b80e48e94f429adce430|4fefcef1-45a2-2194-6b4b-cd1f524d5e19","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"6320b80e48e94f429adce430|4fefcef1-45a2-2194-6b4b-cd1f524d5e19","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":10,"scrollOffsetUnit":"%","delay":50,"direction":"BOTTOM","effectIn":true},"createdOn":1658491221083},"e-183":{"id":"e-183","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-184"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|0220734d-4561-29a5-95bb-9953a383b352","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|0220734d-4561-29a5-95bb-9953a383b352","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663583671989},"e-187":{"id":"e-187","name":"","animationType":"preset","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"632835ddbe4d18637ed5c61b|37d7079e-5738-83e3-cfca-f6f0297cced7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|37d7079e-5738-83e3-cfca-f6f0297cced7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":95,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1663584361553},"e-188":{"id":"e-188","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-189"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|37d7079e-5738-83e3-cfca-f6f0297ccedd","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|37d7079e-5738-83e3-cfca-f6f0297ccedd","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663584361553},"e-190":{"id":"e-190","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-191"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|8dad4932-299c-db3b-08cb-54c36623c573","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|8dad4932-299c-db3b-08cb-54c36623c573","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663585234357},"e-192":{"id":"e-192","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-193"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|9b0e5b41-51c3-8e1a-4c65-6ba8ef3bb2f1","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|9b0e5b41-51c3-8e1a-4c65-6ba8ef3bb2f1","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663585303188},"e-194":{"id":"e-194","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-195"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|92a0458d-d662-0716-af41-16186cd0b575","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|92a0458d-d662-0716-af41-16186cd0b575","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663585319172},"e-196":{"id":"e-196","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-197"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|6266c5ac-430b-a8ea-b583-36a421b0d6fe","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|6266c5ac-430b-a8ea-b583-36a421b0d6fe","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663585320145},"e-198":{"id":"e-198","name":"","animationType":"preset","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"632835ddbe4d18637ed5c61b|6fe7827d-8b5a-5895-fb17-5e1eb337be97","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|6fe7827d-8b5a-5895-fb17-5e1eb337be97","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":95,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1663585504119},"e-199":{"id":"e-199","name":"","animationType":"preset","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-15","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"632835ddbe4d18637ed5c61b|7d9f4871-d2f9-5fd4-1a59-1ee9fe9ec0fb","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|7d9f4871-d2f9-5fd4-1a59-1ee9fe9ec0fb","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":[{"continuousParameterGroupId":"a-15-p","smoothing":95,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1663586736489},"e-202":{"id":"e-202","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-203"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|ce820acf-1d22-43bc-9a2d-de12e28ea8c4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|ce820acf-1d22-43bc-9a2d-de12e28ea8c4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663587948511},"e-204":{"id":"e-204","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-205"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|f1342cee-50f8-a30f-b2cb-d70f61215d81","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|f1342cee-50f8-a30f-b2cb-d70f61215d81","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663588007243}
21490,"e-206":{"id":"e-206","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-207"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|5b1d77a7-0e1f-e5dc-b5ea-79a46753d25c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|5b1d77a7-0e1f-e5dc-b5ea-79a46753d25c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663588009896},"e-208":{"id":"e-208","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-209"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|3eb1453b-464e-627e-d924-8cb0936d2f0e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|3eb1453b-464e-627e-d924-8cb0936d2f0e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663588012299},"e-210":{"id":"e-210","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-211"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|1f85d77d-717e-ea7c-22ec-aae96fb4bb6c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|1f85d77d-717e-ea7c-22ec-aae96fb4bb6c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663605907303},"e-237":{"id":"e-237","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-238"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|7def0b09-516b-3c4d-a820-5450b83cc665","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|7def0b09-516b-3c4d-a820-5450b83cc665","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663615780887},"e-239":{"id":"e-239","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-240"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|ad49f1bc-d780-ab13-bdb1-a1f8c2ff5fab","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|ad49f1bc-d780-ab13-bdb1-a1f8c2ff5fab","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663695282689},"e-241":{"id":"e-241","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-242"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|25b5d729-e107-43a7-eb4d-e02467ff64ac","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|25b5d729-e107-43a7-eb4d-e02467ff64ac","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663695672952},"e-243":{"id":"e-243","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-244"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|087f64e0-10ed-aeee-432d-7e18ea8e32af","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|087f64e0-10ed-aeee-432d-7e18ea8e32af","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663695674261},"e-245":{"id":"e-245","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-246"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|7697
214905f44-2969-2dd5-b5f8-33e5afd9847a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|76975f44-2969-2dd5-b5f8-33e5afd9847a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663695675064},"e-247":{"id":"e-247","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-248"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|8283371e-af6a-87f1-b9f2-f9eaa7c90b5b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|8283371e-af6a-87f1-b9f2-f9eaa7c90b5b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663696008958},"e-249":{"id":"e-249","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-250"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|b16f66d8-0fe9-09e0-c217-565b80eb2a38","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|b16f66d8-0fe9-09e0-c217-565b80eb2a38","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663697248534},"e-257":{"id":"e-257","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-258"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|cd307170-dbd1-052b-d764-2e021390a71e","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|cd307170-dbd1-052b-d764-2e021390a71e","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663697315865},"e-259":{"id":"e-259","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-260"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|72566177-1e61-09b1-d2d6-f1f9f4941a8c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|72566177-1e61-09b1-d2d6-f1f9f4941a8c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663697328947},"e-261":{"id":"e-261","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-262"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|34acea05-bb49-a7b2-aa88-fe462d72999f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|34acea05-bb49-a7b2-aa88-fe462d72999f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663697341768},"e-263":{"id":"e-263","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","instant":false,"config":{"actionListId":"slideInBottom","autoStopEventId":"e-264"}},"mediaQueries":["main"],"target":{"id":"632835ddbe4d18637ed5c61b|2adb2560-3af3-5ed4-3ced-9ac30634809c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"632835ddbe4d18637ed5c61b|2adb2560-3af3-5ed4-3ced-9ac30634809c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":10,"direction":"BOTTOM","effectIn":true},"createdOn":1663700693319}}
21490,"actionLists":{"a-2":{"id":"a-2","title":"Numbers Wrapper Animation","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".white-line","selectorGuids":["e829b93f-ace3-f935-c5e1-1427467babae"]},"yValue":120,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-2-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".numbers-holder","selectorGuids":["2530bc85-3f8c-6e54-46eb-ed3f1588210b"]},"yValue":120,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]},{"actionItems":[{"id":"a-2-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","selector":".white-line","selectorGuids":["e829b93f-ace3-f935-c5e1-1427467babae"]},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-2-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","selector":".numbers-holder","selectorGuids":["2530bc85-3f8c-6e54-46eb-ed3f1588210b"]},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1638797987995},"a-3":{"id":"a-3","title":"Phone Screen Grow","actionItemGroups":[{"actionItems":[{"id":"a-3-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd"},"xValue":1,"yValue":1,"locked":true}}]},{"actionItems":[{"id":"a-3-n-2","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outExpo","duration":800,"target":{"useEventTarget":true,"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd"},"xValue":1.1,"yValue":1.1,"locked":true}}]},{"actionItems":[{"id":"a-3-n-3","actionTypeId":"TRANSFORM_SCALE","config":{"delay":20000,"easing":"outExpo","duration":0,"target":{"useEventTarget":true,"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd"},"xValue":1,"yValue":1,"locked":true}}]}],"useFirstGroupAsInitialState":true,"createdOn":1638800586421},"a-4":{"id":"a-4","title":"Phone Screen Shrink","actionItemGroups":[{"actionItems":[{"id":"a-4-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outExpo","duration":1000,"target":{"useEventTarget":true,"id":"6320b80e48e94f429adce430|87149cb4-f3aa-6678-3d9f-21ec7c2125bd"},"xValue":1,"yValue":1,"locked":true}}]}],"useFirstGroupAsInitialState":false,"createdOn":1638800709192},"a-7":{"id":"a-7","title":"Nav Links Hover In","actionItemGroups":[{"actionItems":[{"id":"a-7-n-6","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"value":"none"}},{"id":"a-7-n-8","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"xValue":101,"xUnit":"px","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-7-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outExpo","duration":0,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"xValue":101,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-7-n-7","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"value":"block"}}]},{"actionItems":[{"id":"a-7-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outExpo","duration":1500,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":true,"createdOn":1639132183267},"a-8":{"id":"a-8","title":"Nav Link Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-8-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outExpo","duration":1500,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"xValue":101,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-8-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"target":{"useEventTarget":"CHILDREN","selector":".linear-background-absolute","selectorGuids":["8242f9db-0f76-ce67-7a58-b39567f3bb4f"]},"value":"none"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1639132685731},"a-9":{"id":"a-9","title":"Home Hero Animation","actionItemGroups":[{"actionItems":[{"id":"a-9-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|29a
214905da61-c493-1b53-9116-a7df0297bff7"},"value":0,"unit":""}},{"id":"a-9-n-29","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|0db1074c-fe09-5f07-227c-3d184842901d"},"xValue":0,"locked":false}},{"id":"a-9-n-21","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|9866a8bf-564f-1ded-acb4-166e6cb0ea97"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-20","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|74d09aeb-f8b7-b198-3650-5f5a44c7449c"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-19","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3fb391ea-0ace-84bd-b75e-44e72aac694d"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-18","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|6b818461-0438-357e-741a-3b27cd647097"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-17","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|10228e45-aed1-0cce-8aac-304f05b392b9"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-16","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|044c260a-0305-b160-0dce-f5b2b3502bf9"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-15","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|29a5da61-c493-1b53-9116-a7df0297bff7"},"yValue":80,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|044c260a-0305-b160-0dce-f5b2b3502bf9"},"value":0,"unit":""}},{"id":"a-9-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|10228e45-aed1-0cce-8aac-304f05b392b9"},"value":0,"unit":""}},{"id":"a-9-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|6b818461-0438-357e-741a-3b27cd647097"},"value":0,"unit":""}},{"id":"a-9-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|3fb391ea-0ace-84bd-b75e-44e72aac694d"},"value":0,"unit":""}},{"id":"a-9-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|74d09aeb-f8b7-b198-3650-5f5a44c7449c"},"value":0,"unit":""}},{"id":"a-9-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"id":"6320b80e48e94f429adce430|9866a8bf-564f-1ded-acb4-166e6cb0ea97"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-9-n-30","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|0db1074c-fe09-5f07-227c-3d184842901d"},"xValue":1,"locked":false}},{"id":"a-9-n-28","actionTypeId":"TRANSFORM_MOVE","config":{"delay":200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|29a5da61-c493-1b53-9116-a7df0297bff7"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|29a5da61-c493-1b53-9116-a7df0297bff7"},"value":1,"unit":""}},{"id":"a-9-n-14","actionTypeId":"STYLE_OPACITY","config":{"delay":400,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|9866a8bf-564f-1ded-acb4-166e6cb0ea97"},"value":1,"unit":""}},{"id":"a-9-n-22","actionTypeId":"TRANSFORM_MOVE","config":{"delay":400,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|9866a8bf-564f-1ded-acb4-166e6cb0ea97"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-13","actionTypeId":"STYLE_OPACITY","config":{"delay":600,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|74d09aeb-f8b7-b198-3650-5f5a44c7449c"},"value":1,"unit":""}},{"id":"a-9-n-23","actionTypeId":"TRANSFORM_MOVE","config":{"delay":600,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|74d09aeb-f8b7-b198-3650-5f5a44c7449c"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-12","actionTypeId":"STYLE_OPACITY","config":{"delay":800,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|3fb391ea-0ace-84bd-b75e-44e72aac694d"},"value":1,"unit":""}},{"id":"a-9-n-24","actionTypeId":"TRANSFORM_MOVE","config":{"delay":800,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|3fb391ea-0ace-84bd-b75e-44e72aac694d"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-25","actionTypeId":"TRANSFORM_MOVE","config":{"delay":1000,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|6b818461-0438-357e-741a-3b27cd647097"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-11","actionTypeId":"STYLE_OPACITY","config":{"delay":1000,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|6b818461-0438-357e-741a-3b27cd647097"},"value":1,"unit":""}},{"id":"a-9-n-9","actionTypeId":"STYLE_OPACITY","config":{"delay":1200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|044c260a-0305-b160-0dce-f5b2b3502bf9"},"value":1,"unit":""}},{"id":"a-9-n-27","actionTypeId":"TRANSFORM_MOVE","config":{"delay":1200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|044c260a-0305-b160-0dce-f5b2b3502bf9"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-26","actionTypeId":"TRANSFORM_MOVE","config":{"delay":1200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|10228e45-aed1-0cce-8aac-304f05b392b9"},"yValue":0,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-9-n-10","actionTypeId":"STYLE_OPACITY","config":{"delay":1200,"easing":"outExpo","duration":1000,"target":{"id":"6320b80e48e94f429adce430|10228e45-aed1-0cce-8aac-304f05b392b9"},"value":1,"unit":""}}]}],"useFirstGroupAsInitialState":true,"createdOn":1639424034958},"a-10":{"id":"a-10","title":"Spring Icon Moving Animation","continuousParameterGroups":[{"id":"a-10-p","type":"MOUSE_X","parameterLabel":"Mouse X","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-10-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"xValue":-40,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-10-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"zValue":20,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}},{"id":"a-10-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"xValue":-16,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-10-n-7","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"zValue":64,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]},{"keyframe":100,"actionItems":[{"id":"a-10-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"xValue":48,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-10-n-4","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"zValue":-26,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}},{"id":"a-10-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"xValue":81,"xUnit":"px","yUnit":"PX","zUnit":"PX"}},{"id":"a-10-n-8","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"zValue":-41,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}}]}]},{"id":"a-10-p-2","type":"MOUSE_Y","parameterLabel":"Mouse Y","continuousActionGroups":[]}],"createdOn":1639425662707},"a-11":{"id":"a-11","title":"Section One Image Scroll Animation","actionItemGroups":[{"actionItems":[{"id":"a-11-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|16b257e3-1dce-f4d0-58b2-0a291ea5a7f5"},"value":0,"unit":""}},{"id":"a-11-n-4","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|80ce88e1-a26d-89e6-651e-0807f93417f4"},"xValue":1,"locked":false}},{"id":"a-11-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"value":0,"unit":""}},{"id":"a-11-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|184457c6-2999-4535-a7fc-4b89027f5cba"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-11-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":200,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|16b257e3-1dce-f4d0-58b2-0a291ea5a7f5"},"value":1,"unit":""}},{"id":"a-11-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":400,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|184457c6-2999-4535-a7fc-4b89027f5cba"},"value":1,"unit":""}},{"id":"a-11-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":600,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|d8e90cdf-95ad-5265-adc2-fb76bffe4228"},"value":1,"unit":""}},{"id":"a-11-n-5","actionTypeId":"TRANSFORM_SCALE","config":{"delay":1000,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|80ce88e1-a26d-89e6-651e-0807f93417f4"},"xValue":0,"locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1639427199763},"a-12":{"id":"a-12","title":"Section Two Scroll Animation","actionItemGroups":[{"actionItems":[{"id":"a-12-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"value":0,"unit":""}},{"id":"a-12-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90918"},"value":0,"unit":""}},{"id":"a-12-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a9091b"},"value":0,"unit":""}},{"id":"a-12-n-4","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|2b4f8f4b-5bb4-510c-f40a-130b8c49d110"},"xValue":1,"locked":false}}]},{"actionItems":[{"id":"a-12-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":200,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a9091b"},"value":1,"unit":""}},{"id":"a-12-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":400,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90918"},"value":1,"unit":""}},{"id":"a-12-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":600,"easing":"outExpo","duration":1000,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90919"},"value":1,"unit":""}},{"id":"a-12-n-8","actionTypeId":"TRANSFORM_SCALE","config":{"delay":1000,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|2b4f8f4b-5bb4-510c-f40a-130b8c49d110"},"xValue":0,"locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1639427806422},"a-13":{"id":"a-13","title":"CTA Image Scroll Animation","actionItemGroups":[{"actionItems":[{"id":"a-13-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".cta-image-cover","selectorGuids":["b10f405d-2250-52b4-c8e8-a08f718d2747"]},"xValue":1,"locked":false}}]},{"actionItems":[{"id":"a-13-n-2","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outExpo","duration":3000,"target":{"useEventTarget":"CHILDREN","selector":".cta-image-cover","selectorGuids":["b10f405d-2250-52b4-c8e8-a08f718d2747"]},"xValue":0,"locked":false}}]}],"useFirstGroupAsInitialState":true,"createdOn":1639429044692},"a-14":{"id":"a-14","title":"Section One Parallax Effect","continuousParameterGroups":[{"id":"a-14-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-14-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|184457c6-2999-4535-a7fc-4b89027f5cba"},"yValue":100,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-14-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|16b257e3-1dce-f4d0-58b2-0a291ea5a7f4"},"yValue":-30,"xUnit":"PX","yUnit":"px","zUnit":"PX"}}]},{"keyframe":100,"actionItems":[{"id":"a-14-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|184457c6-2999-4535-a7fc-4b89027f5cba"},"yValue":-120,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-14-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|16b257e3-1dce-f4d0-58b2-0a291ea5a7f4"},"yValue":60,"xUnit":"PX","yUnit":"px","zUnit":"PX"}}]}]}],"createdOn":1639429165107},"a-15":{"id":"a-15","title":"Section Two Parallax Effect","continuousParameterGroups":[{"id":"a-15-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-15-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90918"},"yValue":100,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-15-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a9091a"},"yValue":-30,"xUnit":"PX","yUnit":"px","zUnit":"PX"}}]},{"keyframe":100,"actionItems":[{"id":"a-15-n-7","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a90918"},"yValue":-130,"xUnit":"PX","yUnit":"px","zUnit":"PX"}},{"id":"a-15-n-8","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","id":"6320b80e48e94f429adce430|3eb49d8d-7ba8-cb71-da2d-dd30e7a9091a"},"yValue":60,"xUnit":"PX","yUnit":"px","zUnit":"PX"}}]}]}],"createdOn":1639429165107},"slideInBottom":{"id":"slideInBottom","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0
21490,"yValue":100,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}}]}]}},"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}]}} 21491);
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.