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__(338); 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', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ 8226 marginRight: '8px', 8227 width: '16px' 8228 }); 8229 var $logoText = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/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 * _.template (webflow: upgraded to 1.13.6) 8294 * 8295 * http://underscorejs.org
8296 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 8297 * Underscore may be freely distributed under the MIT license. 8298 * @license MIT 8299 */ 8300 8301module.exports = function () { 8302 var _ = {}; // Current version. 8303 8304 _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. 8305 8306 var breaker = {}; // Save bytes in the minified (but not gzipped) version: 8307 8308 /* eslint-disable one-var */ 8309 8310 var ArrayProto = Array.prototype, 8311 ObjProto = Object.prototype, 8312 FuncProto = Function.prototype; 8313 /* eslint-enable one-var */ 8314 // Create quick reference variables for speed access to core prototypes. 8315 8316 /* eslint-disable one-var, no-unused-vars */ 8317 8318 var push = ArrayProto.push, 8319 slice = ArrayProto.slice, 8320 concat = ArrayProto.concat, 8321 toString = ObjProto.toString, 8322 hasOwnProperty = ObjProto.hasOwnProperty; 8323 /* eslint-enable one-var, no-unused-vars */ 8324 // All **ECMAScript 5** native function implementations that we hope to use 8325 // are declared here. 8326 8327 /* eslint-disable one-var, no-unused-vars */ 8328 8329 var nativeForEach = ArrayProto.forEach, 8330 nativeMap = ArrayProto.map, 8331 nativeReduce = ArrayProto.reduce, 8332 nativeReduceRight = ArrayProto.reduceRight, 8333 nativeFilter = ArrayProto.filter, 8334 nativeEvery = ArrayProto.every, 8335 nativeSome = ArrayProto.some, 8336 nativeIndexOf = ArrayProto.indexOf, 8337 nativeLastIndexOf = ArrayProto.lastIndexOf, 8338 nativeIsArray = Array.isArray, 8339 nativeKeys = Object.keys, 8340 nativeBind = FuncProto.bind; 8341 /* eslint-enable one-var, no-unused-vars */ 8342 // Collection Functions 8343 // -------------------- 8344 // The cornerstone, an `each` implementation, aka `forEach`. 8345 // Handles objects with the built-in `forEach`, arrays, and raw objects. 8346 // Delegates to **ECMAScript 5**'s native `forEach` if available. 8347 8348 var each = _.each = _.forEach = function (obj, iterator, context) { 8349 /* jshint shadow:true */ 8350 if (obj == null) return obj; 8351 8352 if (nativeForEach && obj.forEach === nativeForEach) { 8353 obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion 8354 } else if (obj.length === +obj.length) { 8355 for (var i = 0, length = obj.length; i < length; i++) { 8356 if (iterator.call(context, obj[i], i, obj) === breaker) return; 8357 } 8358 } else { 8359 var keys = _.keys(obj); // eslint-disable-next-line no-redeclare 8360 8361 8362 for (var i = 0, length = keys.length; i < length; i++) { 8363 if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 8364 } 8365 } 8366 8367 return obj; 8368 }; // Return the results of applying the iterator to each element. 8369 // Delegates to **ECMAScript 5**'s native `map` if available. 8370 8371 8372 _.map = _.collect = function (obj, iterator, context) { 8373 var results = []; 8374 if (obj == null) return results; 8375 if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); 8376 each(obj, function (value, index, list) { 8377 results.push(iterator.call(context, value, index, list)); 8378 }); 8379 return results; 8380 }; // Return the first value which passes a truth test. Aliased as `detect`. 8381 8382 8383 _.find = _.detect = function (obj, predicate, context) { 8384 var result; 8385 any(obj, function (value, index, list) { 8386 if (predicate.call(context, value, index, list)) { 8387 result = value; 8388 return true; 8389 } 8390 }); 8391 return result; 8392 }; // Return all the elements that pass a truth test. 8393 // Delegates to **ECMAScript 5**'s native `filter` if available. 8394 // Aliased as `select`. 8395 8396 8397 _.filter = _.select = function (obj, predicate, context) { 8398 var results = []; 8399 if (obj == null) return results; 8400 if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); 8401 each(obj, function (value, index, list) { 8402 if (predicate.call(context, value, index, list)) results.push(value); 8403 }); 8404 return results; 8405 }; // Determine if at least one element in the object matches a truth test. 8406 // Delegates to **ECMAScript 5**'s native `some` if available. 8407 // Aliased as `any`. 8408 8409 8410 var any = _.some = _.any = function (obj, predicate, context) { 8411 predicate || (predicate = _.identity); 8412 var result = false;
8413 if (obj == null) return result; 8414 if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); 8415 each(obj, function (value, index, list) { 8416 if (result || (result = predicate.call(context, value, index, list))) return breaker; 8417 }); 8418 return !!result; // eslint-disable-line no-implicit-coercion 8419 }; // Determine if the array or object contains a given value (using `===`). 8420 // Aliased as `include`. 8421 8422 8423 _.contains = _.include = function (obj, target) { 8424 if (obj == null) return false; 8425 if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq 8426 return obj.indexOf(target) != -1; 8427 return any(obj, function (value) { 8428 return value === target; 8429 }); 8430 }; // Function (ahem) Functions 8431 // -------------------- 8432 // Delays a function for the given number of milliseconds, and then calls 8433 // it with the arguments supplied. 8434 8435 8436 _.delay = function (func, wait) { 8437 var args = slice.call(arguments, 2); 8438 return setTimeout(function () { 8439 return func.apply(null, args); 8440 }, wait); 8441 }; // Defers a function, scheduling it to run after the current call stack has 8442 // cleared. 8443 8444 8445 _.defer = function (func) { 8446 return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); 8447 }; // Returns a function, that, when invoked, will only be triggered once every 8448 // browser animation frame - using tram's requestAnimationFrame polyfill. 8449 8450 8451 _.throttle = function (func) { 8452 // eslint-disable-next-line one-var 8453 var wait, args, context; 8454 return function () { 8455 if (wait) return; 8456 wait = true; 8457 args = arguments; 8458 context = this; 8459 tram.frame(function () { 8460 wait = false; 8461 func.apply(context, args); 8462 }); 8463 }; 8464 }; // Returns a function, that, as long as it continues to be invoked, will not 8465 // be triggered. The function will be called after it stops being called for 8466 // N milliseconds. If `immediate` is passed, trigger the function on the 8467 // leading edge, instead of the trailing. 8468 8469 8470 _.debounce = function (func, wait, immediate) { 8471 // eslint-disable-next-line one-var 8472 var timeout, args, context, timestamp, result; 8473 8474 var later = function later() { 8475 var last = _.now() - timestamp; 8476 8477 if (last < wait) { 8478 timeout = setTimeout(later, wait - last); 8479 } else { 8480 timeout = null; 8481 8482 if (!immediate) { 8483 result = func.apply(context, args); 8484 context = args = null; 8485 } 8486 } 8487 }; 8488 8489 return function () { 8490 context = this; 8491 args = arguments; 8492 timestamp = _.now(); 8493 var callNow = immediate && !timeout; 8494 8495 if (!timeout) { 8496 timeout = setTimeout(later, wait); 8497 } 8498 8499 if (callNow) { 8500 result = func.apply(context, args); 8501 context = args = null; 8502 } 8503 8504 return result; 8505 }; 8506 }; // Object Functions 8507 // ---------------- 8508 // Fill in a given object with default properties. 8509 8510 8511 _.defaults = function (obj) { 8512 if (!_.isObject(obj)) return obj; 8513 8514 for (var i = 1, length = arguments.length; i < length; i++) { 8515 var source = arguments[i]; 8516 8517 for (var prop in source) { 8518 // eslint-disable-next-line no-void 8519 if (obj[prop] === void 0) obj[prop] = source[prop]; 8520 } 8521 } 8522 8523 return obj; 8524 }; // Retrieve the names of an object's properties. 8525 // Delegates to **ECMAScript 5**'s native `Object.keys` 8526 8527 8528 _.keys = function (obj) { 8529 if (!_.isObject(obj)) return []; 8530 if (nativeKeys) return nativeKeys(obj); 8531 var keys = []; 8532 8533 for (var key in obj) { 8534 if (_.has(obj, key)) keys.push(key); 8535 } 8536 8537 return keys; 8538 }; // Shortcut function for checking if an object has a given property directly 8539 // on itself (in other words, not on a prototype). 8540 8541 8542 _.has = function (obj, key) { 8543 return hasOwnProperty.call(obj, key); 8544 }; // Is a given variable an object? 8545 8546 8547 _.isObject = function (obj) { 8548 return obj === Object(obj); 8549 }; // Utility Functions 8550 // ----------------- 8551 // A (possibly faster) way to get the current timestamp as an integer. 8552 8553 8554 _.now = Date.now || function () { 8555 return new Date().getTime(); 8556 }; // By default, Underscore uses ERB-style template delimiters, change the 8557 // following template settings to use alternative delimiters. 8558 8559 8560 _.templateSettings = { 8561 evaluate: /<%([\s\S]+?)%>/g, 8562 interpolate: /<%=([\s\S]+?)%>/g, 8563 escape: /<%-([\s\S]+?)%>/g 8564 }; // When customizing `templateSettings`, if you don't want to define an 8565 // interpolation, evaluation or escaping regex, we need one that is 8566 // guaranteed not to match. 8567 8568 var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a 8569 // string literal. 8570 8571 var escapes = { 8572 "'": "'", 8573 '\\': '\\', 8574 '\r': 'r', 8575 '\n': 'n', 8576 "\u2028": 'u2028', 8577 "\u2029": 'u2029' 8578 }; 8579 var escapeRegExp = /\\|'|\r|\n|\u2028|\u2029/g; 8580 8581 var escapeChar = function escapeChar(match) { 8582 return '\\' + escapes[match]; 8583 }; // In order to prevent third-party code injection through 8584 // `_.templateSettings.variable`, we test it against the following regular 8585 // expression. It is intentionally a bit more liberal than just matching valid 8586 // identifiers, but still prevents possible loopholes through defaults or 8587 // destructuring assignment. 8588 8589 8590 var bareIdentifier = /^\s*(\w|\$)+\s*$/; // JavaScript micro-templating, similar to John Resig's implementation. 8591 // Underscore templating handles arbitrary delimiters, preserves whitespace, 8592 // and correctly escapes quotes within interpolated code. 8593 // NB: `oldSettings` only exists for backwards compatibility. 8594 8595 _.template = function (text, settings, oldSettings) { 8596 if (!settings && oldSettings) settings = oldSettings; 8597 settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. 8598 8599 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. 8600 8601 var index = 0; 8602 var source = "__p+='"; 8603 text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { 8604 source += text.slice(index, offset).replace(escapeRegExp, escapeChar); 8605 index = offset + match.length; 8606 8607 if (escape) { 8608 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 8609 } else if (interpolate) { 8610 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
8611 } else if (evaluate) { 8612 source += "';\n" + evaluate + "\n__p+='"; 8613 } // Adobe VMs need the match returned to produce the correct offset. 8614 8615 8616 return match; 8617 }); 8618 source += "';\n"; 8619 var argument = settings.variable; 8620 8621 if (argument) { 8622 // Insure against third-party code injection. (CVE-2021-23358) 8623 if (!bareIdentifier.test(argument)) throw new Error('variable is not a bare identifier: ' + argument); 8624 } else { 8625 // If a variable is not specified, place data values in local scope. 8626 source = 'with(obj||{}){\n' + source + '}\n'; 8627 argument = 'obj'; 8628 } 8629 8630 source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; 8631 var render; 8632 8633 try { 8634 // eslint-disable-next-line no-new-func 8635 render = new Function(settings.variable || 'obj', '_', source); 8636 } catch (e) { 8637 e.source = source; 8638 throw e; 8639 } 8640 8641 var template = function template(data) { 8642 return render.call(this, data, _); 8643 }; // Provide the compiled source as a convenience for precompilation. 8644 8645 8646 template.source = 'function(' + argument + '){\n' + source + '}'; 8647 return template; 8648 }; // Export underscore 8649 8650 8651 return _; 8652}(); 8653/* eslint-enable */ 8654 8655/***/ }), 8656/* 134 */ 8657/***/ (function(module, exports, __webpack_require__) { 8658 8659"use strict"; 8660 // @wf-will-never-add-flow-to-this-file 8661 8662/* globals document, window, localStorage, WEBFLOW_API_HOST, WEBFLOW_DEFAULT_HOST */ 8663 8664/* eslint-disable no-var */ 8665 8666/** 8667 * Webflow: Editor loader 8668 */ 8669 8670var Webflow = __webpack_require__(3); 8671 8672Webflow.define('edit', module.exports = function ($, _, options) { 8673 options = options || {}; // Exit early in test env or when inside an iframe 8674 8675 if (Webflow.env('test') || Webflow.env('frame')) { 8676 // Allow test fixtures to continue 8677 if (!options.fixture && !inCypress()) { 8678 return { 8679 exit: 1 8680 }; 8681 } 8682 } 8683 8684 var api = {}; 8685 var $win = $(window); 8686 var $html = $(document.documentElement); 8687 var location = document.location; 8688 var hashchange = 'hashchange'; 8689 var loaded; 8690 var loadEditor = options.load || load; 8691 var hasLocalStorage = false; 8692 8693 try { 8694 // Check localStorage for editor data 8695 hasLocalStorage = localStorage && localStorage.getItem && localStorage.getItem('WebflowEditor'); 8696 } catch (e) {// SecurityError: browser storage has been disabled 8697 } 8698 8699 if (hasLocalStorage) { 8700 loadEditor(); 8701 } else if (location.search) { 8702 // Check url query for `edit` parameter or any url ending in `?edit` 8703 if (/[?&](edit)(?:[=&?]|$)/.test(location.search) || /\?edit$/.test(location.href)) { 8704 loadEditor(); 8705 } 8706 } else { 8707 // Check hash fragment to support `#hash?edit` 8708 $win.on(hashchange, checkHash).triggerHandler(hashchange); 8709 } 8710 8711 function checkHash() { 8712 if (loaded) { 8713 return; 8714 } // Load editor when hash contains `?edit` 8715 8716 8717 if (/\?edit/.test(location.hash)) { 8718 loadEditor(); 8719 } 8720 } 8721 8722 function load() { 8723 loaded = true; // Predefine global immediately to benefit Webflow.env 8724 8725 window.WebflowEditor = true; 8726 $win.off(hashchange, checkHash); 8727 checkThirdPartyCookieSupport(function (thirdPartyCookiesSupported) { 8728 $.ajax({ 8729 url: cleanSlashes("https://editor-api.webflow.com" + '/api/editor/view'), 8730 data: { 8731 siteId: $html.attr('data-wf-site') 8732 }, 8733 xhrFields: { 8734 withCredentials: true 8735 }, 8736 dataType: 'json', 8737 crossDomain: true, 8738 success: success(thirdPartyCookiesSupported) 8739 }); 8740 }); 8741 } 8742 8743 function success(thirdPartyCookiesSupported) { 8744 return function (data) { 8745 if (!data) { 8746 console.error('Could not load editor data'); 8747 return; 8748 } 8749 8750 data.thirdPartyCookiesSupported = thirdPartyCookiesSupported; 8751 getScript(prefix(data.bugReporterScriptPath), function () { 8752 getScript(prefix(data.scriptPath), function () { 8753 window.WebflowEditor(data); 8754 }); 8755 }); 8756 }; 8757 } 8758 8759 function getScript(url, done) { 8760 $.ajax({ 8761 type: 'GET', 8762 url: url,
8763 dataType: 'script', 8764 cache: true 8765 }).then(done, error); 8766 } 8767 8768 function error(jqXHR, textStatus, errorThrown) { 8769 console.error('Could not load editor script: ' + textStatus); 8770 throw errorThrown; 8771 } 8772 8773 function prefix(url) { 8774 return url.indexOf('//') >= 0 ? url : cleanSlashes("https://editor-api.webflow.com" + url); 8775 } 8776 8777 function cleanSlashes(url) { 8778 return url.replace(/([^:])\/\//g, '$1/'); 8779 } 8780 8781 function checkThirdPartyCookieSupport(callback) { 8782 var iframe = window.document.createElement('iframe'); 8783 iframe.src = "https://webflow.com" + '/site/third-party-cookie-check.html'; 8784 iframe.style.display = 'none'; 8785 iframe.sandbox = 'allow-scripts allow-same-origin'; 8786 8787 var handleMessage = function handleMessage(event) { 8788 if (event.data === 'WF_third_party_cookies_unsupported') { 8789 cleanUpCookieCheckerIframe(iframe, handleMessage); 8790 callback(false); 8791 } else if (event.data === 'WF_third_party_cookies_supported') { 8792 cleanUpCookieCheckerIframe(iframe, handleMessage); 8793 callback(true); 8794 } 8795 }; 8796 8797 iframe.onerror = function () { 8798 cleanUpCookieCheckerIframe(iframe, handleMessage); 8799 callback(false); 8800 }; 8801 8802 window.addEventListener('message', handleMessage, false); 8803 window.document.body.appendChild(iframe); 8804 } 8805 8806 function cleanUpCookieCheckerIframe(iframe, listener) { 8807 window.removeEventListener('message', listener, false); 8808 iframe.remove(); 8809 } // Export module 8810 8811 8812 return api; 8813}); 8814 8815function inCypress() { 8816 try { 8817 return window.top.__Cypress__; 8818 } catch (e) { 8819 return false; 8820 } 8821} 8822 8823/***/ }), 8824/* 135 */ 8825/***/ (function(module, exports, __webpack_require__) { 8826 8827"use strict"; 8828 // @wf-will-never-add-flow-to-this-file 8829 8830/* globals window, document */ 8831 8832/* eslint-disable no-var */ 8833 8834/** 8835 * Webflow: focus-visible 8836 */ 8837 8838var Webflow = __webpack_require__(3); 8839/* 8840 * This polyfill comes from https://github.com/WICG/focus-visible 8841 */ 8842 8843 8844Webflow.define('focus-visible', module.exports = function () { 8845 /** 8846 * Applies the :focus-visible polyfill at the given scope. 8847 * A scope in this case is either the top-level Document or a Shadow Root. 8848 * 8849 * @param {(Document|ShadowRoot)} scope 8850 * @see https://github.com/WICG/focus-visible 8851 */ 8852 function applyFocusVisiblePolyfill(scope) { 8853 var hadKeyboardEvent = true; 8854 var hadFocusVisibleRecently = false; 8855 var hadFocusVisibleRecentlyTimeout = null; 8856 var inputTypesAllowlist = { 8857 text: true, 8858 search: true, 8859 url: true, 8860 tel: true, 8861 email: true, 8862 password: true, 8863 number: true, 8864 date: true, 8865 month: true, 8866 week: true, 8867 time: true, 8868 datetime: true, 8869 'datetime-local': true 8870 }; 8871 /** 8872 * Helper function for legacy browsers and iframes which sometimes focus 8873 * elements like document, body, and non-interactive SVG. 8874 * @param {Element} el 8875 */ 8876 8877 function isValidFocusTarget(el) { 8878 if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) { 8879 return true; 8880 } 8881 8882 return false; 8883 } 8884 /** 8885 * Computes whether the given element should automatically trigger the 8886 * `focus-visible` class being added, i.e. whether it should always match 8887 * `:focus-visible` when focused. 8888 * @param {Element} el 8889 * @return {boolean} 8890 */ 8891 8892 8893 function focusTriggersKeyboardModality(el) { 8894 var type = el.type; 8895 var tagName = el.tagName; 8896 8897 if (tagName === 'INPUT' && inputTypesAllowlist[type] && !el.readOnly) { 8898 return true; 8899 } 8900 8901 if (tagName === 'TEXTAREA' && !el.readOnly) { 8902 return true; 8903 } 8904 8905 if (el.isContentEditable) { 8906 return true; 8907 } 8908 8909 return false; 8910 } 8911 8912 function addFocusVisibleAttribute(el) { 8913 if (el.getAttribute('data-wf-focus-visible')) { 8914 return; 8915 } 8916 8917 el.setAttribute('data-wf-focus-visible', 'true'); 8918 } 8919 8920 function removeFocusVisibleAttribute(el) { 8921 if (!el.getAttribute('data-wf-focus-visible')) { 8922 return; 8923 } 8924 8925 el.removeAttribute('data-wf-focus-visible'); 8926 } 8927 /** 8928 * If the most recent user interaction was via the keyboard; 8929 * and the key press did not include a meta, alt/option, or control key; 8930 * then the modality is keyboard. Otherwise, the modality is not keyboard. 8931 * Apply `focus-visible` to any current active element and keep track 8932 * of our keyboard modality state with `hadKeyboardEvent`. 8933 * @param {KeyboardEvent} e 8934 */ 8935 8936 8937 function onKeyDown(e) { 8938 if (e.metaKey || e.altKey || e.ctrlKey) { 8939 return; 8940 } 8941 8942 if (isValidFocusTarget(scope.activeElement)) { 8943 addFocusVisibleAttribute(scope.activeElement); 8944 } 8945 8946 hadKeyboardEvent = true; 8947 } 8948 /** 8949 * If at any point a user clicks with a pointing device, ensure that we change 8950 * the modality away from keyboard. 8951 * This avoids the situation where a user presses a key on an already focused 8952 * element, and then clicks on a different element, focusing it with a 8953 * pointing device, while we still think we're in keyboard modality. 8954 * @param {Event} e 8955 */ 8956 8957 8958 function onPointerDown() { 8959 hadKeyboardEvent = false;
vendor: 4,351 bytes, lines 8960-9071
8960 } 8961 /** 8962 * On `focus`, add the `focus-visible` class to the target if: 8963 * - the target received focus as a result of keyboard navigation, or 8964 * - the event target is an element that will likely require interaction 8965 * via the keyboard (e.g. a text box) 8966 * @param {Event} e 8967 */ 8968 8969 8970 function onFocus(e) { 8971 // Prevent IE from focusing the document or HTML element. 8972 if (!isValidFocusTarget(e.target)) { 8973 return; 8974 } 8975 8976 if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) { 8977 addFocusVisibleAttribute(e.target); 8978 } 8979 } 8980 /** 8981 * On `blur`, remove the `focus-visible` class from the target. 8982 * @param {Event} e 8983 */ 8984 8985 8986 function onBlur(e) { 8987 if (!isValidFocusTarget(e.target)) { 8988 return; 8989 } 8990 8991 if (e.target.hasAttribute('data-wf-focus-visible')) { 8992 // To detect a tab/window switch, we look for a blur event followed 8993 // rapidly by a visibility change. 8994 // If we don't see a visibility change within 100ms, it's probably a 8995 // regular focus change. 8996 hadFocusVisibleRecently = true; 8997 window.clearTimeout(hadFocusVisibleRecentlyTimeout); 8998 hadFocusVisibleRecentlyTimeout = window.setTimeout(function () { 8999 hadFocusVisibleRecently = false; 9000 }, 100); 9001 removeFocusVisibleAttribute(e.target); 9002 } 9003 } 9004 /** 9005 * If the user changes tabs, keep track of whether or not the previously 9006 * focused element had .focus-visible. 9007 * @param {Event} e 9008 */ 9009 9010 9011 function onVisibilityChange() { 9012 if (document.visibilityState === 'hidden') { 9013 // If the tab becomes active again, the browser will handle calling focus 9014 // on the element (Safari actually calls it twice). 9015 // If this tab change caused a blur on an element with focus-visible, 9016 // re-apply the class when the user switches back to the tab. 9017 if (hadFocusVisibleRecently) { 9018 hadKeyboardEvent = true; 9019 } 9020 9021 addInitialPointerMoveListeners(); 9022 } 9023 } 9024 /** 9025 * Add a group of listeners to detect usage of any pointing devices. 9026 * These listeners will be added when the polyfill first loads, and anytime 9027 * the window is blurred, so that they are active when the window regains 9028 * focus. 9029 */ 9030 9031 9032 function addInitialPointerMoveListeners() { 9033 document.addEventListener('mousemove', onInitialPointerMove); 9034 document.addEventListener('mousedown', onInitialPointerMove); 9035 document.addEventListener('mouseup', onInitialPointerMove); 9036 document.addEventListener('pointermove', onInitialPointerMove); 9037 document.addEventListener('pointerdown', onInitialPointerMove); 9038 document.addEventListener('pointerup', onInitialPointerMove); 9039 document.addEventListener('touchmove', onInitialPointerMove); 9040 document.addEventListener('touchstart', onInitialPointerMove); 9041 document.addEventListener('touchend', onInitialPointerMove); 9042 } 9043 9044 function removeInitialPointerMoveListeners() { 9045 document.removeEventListener('mousemove', onInitialPointerMove); 9046 document.removeEventListener('mousedown', onInitialPointerMove); 9047 document.removeEventListener('mouseup', onInitialPointerMove); 9048 document.removeEventListener('pointermove', onInitialPointerMove); 9049 document.removeEventListener('pointerdown', onInitialPointerMove); 9050 document.removeEventListener('pointerup', onInitialPointerMove); 9051 document.removeEventListener('touchmove', onInitialPointerMove); 9052 document.removeEventListener('touchstart', onInitialPointerMove); 9053 document.removeEventListener('touchend', onInitialPointerMove); 9054 } 9055 /** 9056 * When the polfyill first loads, assume the user is in keyboard modality. 9057 * If any event is received from a pointing device (e.g. mouse, pointer, 9058 * touch), turn off keyboard modality. 9059 * This accounts for situations where focus enters the page from the URL bar. 9060 * @param {Event} e 9061 */ 9062 9063 9064 function onInitialPointerMove(e) { 9065 // Work around a Safari quirk that fires a mousemove on <html> whenever the 9066 // window blurs, even if you're tabbing out of the page. ¯\_(ã)_/¯ 9067 if (e.target.nodeName && e.target.nodeName.toLowerCase() === 'html') { 9068 return; 9069 } 9070 9071 hadKeyboardEvent = false;
9072 removeInitialPointerMoveListeners(); 9073 } // For some kinds of state, we are interested in changes at the global scope 9074 // only. For example, global pointer input, global key presses and global 9075 // visibility change should affect the state at every scope: 9076 9077 9078 document.addEventListener('keydown', onKeyDown, true); 9079 document.addEventListener('mousedown', onPointerDown, true); 9080 document.addEventListener('pointerdown', onPointerDown, true); 9081 document.addEventListener('touchstart', onPointerDown, true); 9082 document.addEventListener('visibilitychange', onVisibilityChange, true); 9083 addInitialPointerMoveListeners(); // For focus and blur, we specifically care about state changes in the local 9084 // scope. This is because focus / blur events that originate from within a 9085 // shadow root are not re-dispatched from the host element if it was already 9086 // the active element in its own scope: 9087 9088 scope.addEventListener('focus', onFocus, true); 9089 scope.addEventListener('blur', onBlur, true); 9090 } 9091 9092 function ready() { 9093 if (typeof document !== 'undefined') { 9094 try { 9095 // check for native support; this will throw if the selector is not considered valid 9096 document.querySelector(':focus-visible'); 9097 } catch (e) { 9098 // :focus-visible pseudo-selector is not supported natively 9099 applyFocusVisiblePolyfill(document); 9100 } 9101 } 9102 } // Export module 9103 9104 9105 return { 9106 ready: ready 9107 }; 9108}); 9109 9110/***/ }), 9111/* 136 */ 9112/***/ (function(module, exports, __webpack_require__) { 9113 9114"use strict"; 9115 // @wf-will-never-add-flow-to-this-file 9116 9117/* globals window, document */ 9118 9119/* eslint-disable no-var */ 9120 9121/** 9122 * Webflow: focus-within 9123 */ 9124 9125var Webflow = __webpack_require__(3); // polyfill based off of https://github.com/matteobad/focus-within-polyfill 9126 9127 9128Webflow.define('focus-within', module.exports = function () { 9129 /** 9130 * Calculate the entire event path. 9131 * 9132 * @param {Element} node 9133 * @return {Array} computedPath 9134 */ 9135 function computeEventPath(node) { 9136 var path = [node]; 9137 var parent = null; 9138 9139 while (parent = node.parentNode || node.host || node.defaultView) { 9140 path.push(parent); 9141 node = parent; 9142 } 9143 9144 return path; 9145 } 9146 9147 function addFocusWithinAttribute(el) { 9148 if (typeof el.getAttribute !== 'function' || el.getAttribute('data-wf-focus-within')) { 9149 return; 9150 } 9151 9152 el.setAttribute('data-wf-focus-within', 'true'); 9153 } 9154 9155 function removeFocusWithinAttribute(el) { 9156 if (typeof el.getAttribute !== 'function' || !el.getAttribute('data-wf-focus-within')) { 9157 return; 9158 } 9159 9160 el.removeAttribute('data-wf-focus-within'); 9161 } 9162 /** 9163 * Attach event listerns to initiate polyfill 9164 * @return {boolean} 9165 */ 9166 9167 9168 function loadFocusWithinPolyfill() { 9169 var handler = function handler(e) { 9170 var running; 9171 /** 9172 * Request animation frame callback. 9173 * Remove previously applied attributes. 9174 * Add new attributes. 9175 */ 9176 9177 function action() { 9178 running = false; 9179 9180 if ('blur' === e.type) { 9181 Array.prototype.slice.call(computeEventPath(e.target)).forEach(removeFocusWithinAttribute); 9182 } 9183 9184 if ('focus' === e.type) { 9185 Array.prototype.slice.call(computeEventPath(e.target)).forEach(addFocusWithinAttribute); 9186 } 9187 } 9188 9189 if (!running) { 9190 window.requestAnimationFrame(action); 9191 running = true; 9192 } 9193 }; 9194 9195 document.addEventListener('focus', handler, true); 9196 document.addEventListener('blur', handler, true); 9197 addFocusWithinAttribute(document.body); 9198 return true; 9199 } 9200 9201 function ready() { 9202 if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within')) { 9203 try { 9204 // check for native support; this will throw if the selector is not considered valid 9205 document.querySelector(':focus-within'); 9206 } catch (e) { 9207 loadFocusWithinPolyfill(); 9208 } 9209 } 9210 } // Export module 9211 9212 9213 return { 9214 ready: ready 9215 }; 9216}); 9217 9218/***/ }), 9219/* 137 */ 9220/***/ (function(module, exports, __webpack_require__) { 9221 9222"use strict"; 9223 // @wf-will-never-add-flow-to-this-file 9224 9225/* globals document, MouseEvent */ 9226 9227/* eslint-disable no-var */ 9228 9229/** 9230 * Webflow: focus 9231 */ 9232 9233var Webflow = __webpack_require__(3); 9234/* 9235 * Safari has a weird bug where it doesn't support :focus for links with hrefs, 9236 * buttons, and input[type=button|submit], so we listen for mousedown events 9237 * instead and force the element to emit a focus event in those cases. 9238 9239 * See these webkit bugs for reference: 9240 * https://bugs.webkit.org/show_bug.cgi?id=22261 9241 * https://bugs.webkit.org/show_bug.cgi?id=229895 9242 */ 9243 9244 9245Webflow.define('focus', module.exports = function () { 9246 var capturedEvents = []; 9247 var capturing = false;
9248 9249 function captureEvent(e) { 9250 if (capturing) { 9251 e.preventDefault(); 9252 e.stopPropagation(); 9253 e.stopImmediatePropagation(); 9254 capturedEvents.unshift(e); 9255 } 9256 } 9257 /* 9258 * The only mousedown events we care about here are ones emanating from 9259 * (A) anchor links with href attribute, 9260 * (B) non-disabled buttons, 9261 * (C) non-disabled textarea, 9262 * (D) non-disabled inputs of type "button", "reset", "checkbox", "radio", "submit" 9263 * (E) non-interactive elements (button, a, input, textarea, select) that have a tabindex with a numeric value 9264 * (F) audio elements 9265 * (G) video elements with controls attribute 9266 */ 9267 9268 9269 function isPolyfilledFocusEvent(e) { 9270 var el = e.target; 9271 var tag = el.tagName; 9272 return /^a$/i.test(tag) && el.href != null || // (A) 9273 /^(button|textarea)$/i.test(tag) && el.disabled !== true || // (B) (C) 9274 /^input$/i.test(tag) && /^(button|reset|submit|radio|checkbox)$/i.test(el.type) && !el.disabled || // (D) 9275 !/^(button|input|textarea|select|a)$/i.test(tag) && !Number.isNaN(Number.parseFloat(el.tabIndex)) || // (E) 9276 /^audio$/i.test(tag) || // (F) 9277 /^video$/i.test(tag) && el.controls === true // (G) 9278 ; 9279 } 9280 9281 function handler(e) { 9282 if (isPolyfilledFocusEvent(e)) { 9283 // start capturing possible out-of-order mouse events 9284 capturing = true; 9285 /* 9286 * enqueue the focus event _after_ the current batch of events, which 9287 * includes any blur events. The correct order of events is: 9288 * 9289 * [this element] MOUSEDOWN <-- this event 9290 * [previously active element] BLUR 9291 * [previously active element] FOCUSOUT 9292 * [this element] FOCUS <-- forced event 9293 * [this element] FOCUSIN <-- forced event 9294 * [this element] MOUSEUP <-- possibly captured event (it may have fired _before_ the FOCUS event) 9295 * [this element] CLICK <-- possibly captured event (it may have fired _before_ the FOCUS event) 9296 */ 9297 9298 setTimeout(function () { 9299 // stop capturing possible out-of-order mouse events 9300 capturing = false; // trigger focus event 9301 9302 e.target.focus(); // re-dispatch captured mouse events in order 9303 9304 while (capturedEvents.length > 0) { 9305 var event = capturedEvents.pop(); 9306 event.target.dispatchEvent(new MouseEvent(event.type, event)); 9307 } 9308 }, 0); 9309 } 9310 } 9311 9312 function ready() { 9313 if (typeof document !== 'undefined' && document.body.hasAttribute('data-wf-focus-within') && Webflow.env.safari) { 9314 document.addEventListener('mousedown', handler, true); 9315 document.addEventListener('mouseup', captureEvent, true); 9316 document.addEventListener('click', captureEvent, true); 9317 } 9318 } // Export module 9319 9320 9321 return { 9322 ready: ready 9323 }; 9324}); 9325 9326/***/ }), 9327/* 138 */ 9328/***/ (function(module, exports, __webpack_require__) { 9329 9330"use strict";
9331// @wf-will-never-add-flow-to-this-file 9332 9333/* globals window */ 9334 9335/* eslint-disable no-var */ 9336 9337/** 9338 * Webflow: IX Event triggers for other modules 9339 */ 9340// eslint-disable-next-line strict 9341 9342 9343var $ = window.jQuery; 9344var api = {}; 9345var eventQueue = []; 9346var namespace = '.w-ix'; 9347var eventTriggers = { 9348 reset: function reset(i, el) { 9349 el.__wf_intro = null; 9350 }, 9351 intro: function intro(i, el) { 9352 if (el.__wf_intro) { 9353 return; 9354 } 9355 9356 el.__wf_intro = true; 9357 $(el).triggerHandler(api.types.INTRO); 9358 }, 9359 outro: function outro(i, el) { 9360 if (!el.__wf_intro) { 9361 return; 9362 } 9363 9364 el.__wf_intro = null; 9365 $(el).triggerHandler(api.types.OUTRO); 9366 } 9367}; 9368api.triggers = {}; 9369api.types = { 9370 INTRO: 'w-ix-intro' + namespace, 9371 OUTRO: 'w-ix-outro' + namespace 9372}; // Trigger any events in queue + restore trigger methods 9373 9374api.init = function () { 9375 var count = eventQueue.length; 9376 9377 for (var i = 0; i < count; i++) { 9378 var memo = eventQueue[i]; 9379 memo[0](0, memo[1]); 9380 } 9381 9382 eventQueue = []; 9383 $.extend(api.triggers, eventTriggers); 9384}; // Replace all triggers with async wrapper to queue events until init 9385 9386 9387api.async = function () { 9388 for (var key in eventTriggers) { 9389 var func = eventTriggers[key]; 9390 9391 if (!eventTriggers.hasOwnProperty(key)) { 9392 continue; 9393 } // Replace trigger method with async wrapper 9394 9395 9396 api.triggers[key] = function (i, el) { 9397 eventQueue.push([func, el]); 9398 }; 9399 } 9400}; // Default triggers to async queue 9401 9402 9403api.async(); 9404module.exports = api; 9405 9406/***/ }), 9407/* 139 */ 9408/***/ (function(module, exports, __webpack_require__) { 9409 9410"use strict"; 9411 // @wf-will-never-add-flow-to-this-file 9412 9413/* eslint-disable no-var */ 9414 9415/** 9416 * Webflow: Interactions 2 9417 */ 9418 9419var Webflow = __webpack_require__(3); 9420 9421var ix2 = __webpack_require__(140); 9422 9423ix2.setEnv(Webflow.env); 9424Webflow.define('ix2', module.exports = function () { 9425 return ix2; 9426}); 9427 9428/***/ }), 9429/* 140 */ 9430/***/ (function(module, exports, __webpack_require__) { 9431 9432"use strict"; 9433 9434 9435var _interopRequireWildcard = __webpack_require__(18); 9436 9437var _interopRequireDefault = __webpack_require__(0); 9438 9439Object.defineProperty(exports, "__esModule", { 9440 value: true 9441}); 9442exports.setEnv = setEnv; 9443exports.init = init; 9444exports.destroy = destroy; 9445exports.actions = exports.store = void 0; 9446 9447__webpack_require__(141); 9448 9449var _redux = __webpack_require__(87); 9450 9451var _IX2Reducer = _interopRequireDefault(__webpack_require__(188)); 9452 9453var _IX2VanillaEngine = __webpack_require__(123); 9454 9455var actions = _interopRequireWildcard(__webpack_require__(65)); 9456 9457exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects 9458 9459var store = (0, _redux.createStore)(_IX2Reducer["default"]); 9460exports.store = store; 9461 9462function setEnv(env) { 9463 if (env()) { 9464 (0, _IX2VanillaEngine.observeRequests)(store); 9465 } 9466} 9467 9468function init(rawData) { 9469 destroy(); 9470 (0, _IX2VanillaEngine.startEngine)({ 9471 store: store, 9472 rawData: rawData, 9473 allowEvents: true 9474 }); 9475} 9476 9477function destroy() { 9478 (0, _IX2VanillaEngine.stopEngine)(store); 9479} 9480 9481/***/ }), 9482/* 141 */ 9483/***/ (function(module, exports, __webpack_require__) { 9484 9485var parent = __webpack_require__(142); 9486 9487module.exports = parent; 9488 9489 9490/***/ }), 9491/* 142 */ 9492/***/ (function(module, exports, __webpack_require__) { 9493 9494var parent = __webpack_require__(143); 9495 9496module.exports = parent; 9497 9498 9499/***/ }), 9500/* 143 */ 9501/***/ (function(module, exports, __webpack_require__) { 9502 9503__webpack_require__(144); 9504var entryUnbind = __webpack_require__(176); 9505 9506module.exports = entryUnbind('Array', 'includes'); 9507 9508 9509/***/ }), 9510/* 144 */ 9511/***/ (function(module, exports, __webpack_require__) { 9512 9513"use strict"; 9514 9515var $ = __webpack_require__(145); 9516var $includes = __webpack_require__(85).includes; 9517var addToUnscopables = __webpack_require__(171); 9518 9519// `Array.prototype.includes` method 9520// https://tc39.es/ecma262/#sec-array.prototype.includes 9521$({ target: 'Array', proto: true }, { 9522 includes: function includes(el /* , fromIndex = 0 */) { 9523 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 9524 } 9525}); 9526 9527// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 9528addToUnscopables('includes'); 9529 9530 9531/***/ }), 9532/* 145 */ 9533/***/ (function(module, exports, __webpack_require__) { 9534 9535var global = __webpack_require__(1); 9536var getOwnPropertyDescriptor = __webpack_require__(70).f; 9537var createNonEnumerableProperty = __webpack_require__(43); 9538var redefine = __webpack_require__(159); 9539var setGlobal = __webpack_require__(42); 9540var copyConstructorProperties = __webpack_require__(163); 9541var isForced = __webpack_require__(170); 9542 9543/* 9544 options.target - name of the target object 9545 options.global - target is the global object 9546 options.stat - export as static methods of target 9547 options.proto - export as prototype methods of target 9548 options.real - real prototype method for the `pure` version 9549 options.forced - export even if the native feature is available
9550 options.bind - bind methods to the target, required for the `pure` version 9551 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 9552 options.unsafe - use the simple assignment of property instead of delete + defineProperty 9553 options.sham - add a flag to not completely full polyfills 9554 options.enumerable - export as enumerable property 9555 options.noTargetGet - prevent calling a getter on target 9556 options.name - the .name of the function if it does not match the key 9557*/ 9558module.exports = function (options, source) { 9559 var TARGET = options.target; 9560 var GLOBAL = options.global; 9561 var STATIC = options.stat; 9562 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 9563 if (GLOBAL) { 9564 target = global; 9565 } else if (STATIC) { 9566 target = global[TARGET] || setGlobal(TARGET, {}); 9567 } else { 9568 target = (global[TARGET] || {}).prototype; 9569 } 9570 if (target) for (key in source) { 9571 sourceProperty = source[key]; 9572 if (options.noTargetGet) { 9573 descriptor = getOwnPropertyDescriptor(target, key); 9574 targetProperty = descriptor && descriptor.value; 9575 } else targetProperty = target[key]; 9576 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 9577 // contained in target 9578 if (!FORCED && targetProperty !== undefined) { 9579 if (typeof sourceProperty == typeof targetProperty) continue; 9580 copyConstructorProperties(sourceProperty, targetProperty); 9581 } 9582 // add a flag to not completely full polyfills 9583 if (options.sham || (targetProperty && targetProperty.sham)) { 9584 createNonEnumerableProperty(sourceProperty, 'sham', true); 9585 } 9586 // extend global 9587 redefine(target, key, sourceProperty, options); 9588 } 9589}; 9590 9591 9592/***/ }), 9593/* 146 */ 9594/***/ (function(module, exports, __webpack_require__) { 9595 9596"use strict"; 9597 9598var $propertyIsEnumerable = {}.propertyIsEnumerable; 9599// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9600var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 9601 9602// Nashorn ~ JDK8 bug 9603var NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1); 9604 9605// `Object.prototype.propertyIsEnumerable` method implementation 9606// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable 9607exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 9608 var descriptor = getOwnPropertyDescriptor(this, V); 9609 return !!descriptor && descriptor.enumerable; 9610} : $propertyIsEnumerable; 9611 9612 9613/***/ }), 9614/* 147 */ 9615/***/ (function(module, exports, __webpack_require__) { 9616 9617var global = __webpack_require__(1); 9618var uncurryThis = __webpack_require__(5); 9619var fails = __webpack_require__(19); 9620var classof = __webpack_require__(148); 9621 9622var Object = global.Object; 9623var split = uncurryThis(''.split); 9624 9625// fallback for non-array-like ES3 and non-enumerable old V8 strings 9626module.exports = fails(function () { 9627 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 9628 // eslint-disable-next-line no-prototype-builtins -- safe 9629 return !Object('z').propertyIsEnumerable(0); 9630}) ? function (it) { 9631 return classof(it) == 'String' ? split(it, '') : Object(it); 9632} : Object; 9633 9634 9635/***/ }), 9636/* 148 */ 9637/***/ (function(module, exports, __webpack_require__) { 9638 9639var uncurryThis = __webpack_require__(5); 9640 9641var toString = uncurryThis({}.toString); 9642var stringSlice = uncurryThis(''.slice); 9643 9644module.exports = function (it) { 9645 return stringSlice(toString(it), 8, -1); 9646}; 9647 9648 9649/***/ }), 9650/* 149 */ 9651/***/ (function(module, exports, __webpack_require__) { 9652 9653var global = __webpack_require__(1); 9654var call = __webpack_require__(40); 9655var isObject = __webpack_require__(20); 9656var isSymbol = __webpack_require__(74); 9657var getMethod = __webpack_require__(153); 9658var ordinaryToPrimitive = __webpack_require__(156); 9659var wellKnownSymbol = __webpack_require__(77); 9660 9661var TypeError = global.TypeError; 9662var TO_PRIMITIVE = wellKnownSymbol('toPrimitive'); 9663 9664// `ToPrimitive` abstract operation 9665// https://tc39.es/ecma262/#sec-toprimitive 9666module.exports = function (input, pref) { 9667 if (!isObject(input) || isSymbol(input)) return input; 9668 var exoticToPrim = getMethod(input, TO_PRIMITIVE); 9669 var result; 9670 if (exoticToPrim) { 9671 if (pref === undefined) pref = 'default'; 9672 result = call(exoticToPrim, input, pref); 9673 if (!isObject(result) || isSymbol(result)) return result; 9674 throw TypeError("Can't convert object to primitive value"); 9675 } 9676 if (pref === undefined) pref = 'number'; 9677 return ordinaryToPrimitive(input, pref); 9678}; 9679 9680 9681/***/ }), 9682/* 150 */ 9683/***/ (function(module, exports, __webpack_require__) { 9684 9685var uncurryThis = __webpack_require__(5); 9686 9687module.exports = uncurryThis({}.isPrototypeOf); 9688 9689
vendor: 9,260 bytes, lines 9690-10017
9690/***/ }), 9691/* 151 */ 9692/***/ (function(module, exports, __webpack_require__) { 9693 9694var global = __webpack_require__(1); 9695var userAgent = __webpack_require__(152); 9696 9697var process = global.process; 9698var Deno = global.Deno; 9699var versions = process && process.versions || Deno && Deno.version; 9700var v8 = versions && versions.v8; 9701var match, version; 9702 9703if (v8) { 9704 match = v8.split('.'); 9705 // in old Chrome, versions of V8 isn't V8 = Chrome / 10 9706 // but their correct versions are not interesting for us 9707 version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]); 9708} 9709 9710// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0` 9711// so check `userAgent` even if `.v8` exists, but 0 9712if (!version && userAgent) { 9713 match = userAgent.match(/Edge\/(\d+)/); 9714 if (!match || match[1] >= 74) { 9715 match = userAgent.match(/Chrome\/(\d+)/); 9716 if (match) version = +match[1]; 9717 } 9718} 9719 9720module.exports = version; 9721 9722 9723/***/ }), 9724/* 152 */ 9725/***/ (function(module, exports, __webpack_require__) { 9726 9727var getBuiltIn = __webpack_require__(27); 9728 9729module.exports = getBuiltIn('navigator', 'userAgent') || ''; 9730 9731 9732/***/ }), 9733/* 153 */ 9734/***/ (function(module, exports, __webpack_require__) { 9735 9736var aCallable = __webpack_require__(154); 9737 9738// `GetMethod` abstract operation 9739// https://tc39.es/ecma262/#sec-getmethod 9740module.exports = function (V, P) { 9741 var func = V[P]; 9742 return func == null ? undefined : aCallable(func); 9743}; 9744 9745 9746/***/ }), 9747/* 154 */ 9748/***/ (function(module, exports, __webpack_require__) { 9749 9750var global = __webpack_require__(1); 9751var isCallable = __webpack_require__(7); 9752var tryToString = __webpack_require__(155); 9753 9754var TypeError = global.TypeError; 9755 9756// `Assert: IsCallable(argument) is true` 9757module.exports = function (argument) { 9758 if (isCallable(argument)) return argument; 9759 throw TypeError(tryToString(argument) + ' is not a function'); 9760}; 9761 9762 9763/***/ }), 9764/* 155 */ 9765/***/ (function(module, exports, __webpack_require__) { 9766 9767var global = __webpack_require__(1); 9768 9769var String = global.String; 9770 9771module.exports = function (argument) { 9772 try { 9773 return String(argument); 9774 } catch (error) { 9775 return 'Object'; 9776 } 9777}; 9778 9779 9780/***/ }), 9781/* 156 */ 9782/***/ (function(module, exports, __webpack_require__) { 9783 9784var global = __webpack_require__(1); 9785var call = __webpack_require__(40); 9786var isCallable = __webpack_require__(7); 9787var isObject = __webpack_require__(20); 9788 9789var TypeError = global.TypeError; 9790 9791// `OrdinaryToPrimitive` abstract operation 9792// https://tc39.es/ecma262/#sec-ordinarytoprimitive 9793module.exports = function (input, pref) { 9794 var fn, val; 9795 if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9796 if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val; 9797 if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val; 9798 throw TypeError("Can't convert object to primitive value"); 9799}; 9800 9801 9802/***/ }), 9803/* 157 */ 9804/***/ (function(module, exports) { 9805 9806module.exports = false; 9807 9808 9809/***/ }), 9810/* 158 */ 9811/***/ (function(module, exports, __webpack_require__) { 9812 9813var global = __webpack_require__(1); 9814var requireObjectCoercible = __webpack_require__(72); 9815 9816var Object = global.Object; 9817 9818// `ToObject` abstract operation 9819// https://tc39.es/ecma262/#sec-toobject 9820module.exports = function (argument) { 9821 return Object(requireObjectCoercible(argument)); 9822}; 9823 9824 9825/***/ }), 9826/* 159 */ 9827/***/ (function(module, exports, __webpack_require__) { 9828 9829var global = __webpack_require__(1); 9830var isCallable = __webpack_require__(7); 9831var hasOwn = __webpack_require__(9); 9832var createNonEnumerableProperty = __webpack_require__(43); 9833var setGlobal = __webpack_require__(42); 9834var inspectSource = __webpack_require__(82); 9835var InternalStateModule = __webpack_require__(160); 9836var CONFIGURABLE_FUNCTION_NAME = __webpack_require__(162).CONFIGURABLE; 9837 9838var getInternalState = InternalStateModule.get; 9839var enforceInternalState = InternalStateModule.enforce; 9840var TEMPLATE = String(String).split('String'); 9841 9842(module.exports = function (O, key, value, options) { 9843 var unsafe = options ? !!options.unsafe : false; 9844 var simple = options ? !!options.enumerable : false; 9845 var noTargetGet = options ? !!options.noTargetGet : false; 9846 var name = options && options.name !== undefined ? options.name : key; 9847 var state; 9848 if (isCallable(value)) { 9849 if (String(name).slice(0, 7) === 'Symbol(') { 9850 name = '[' + String(name).replace(/^Symbol\(([^)]*)\)/, '$1') + ']'; 9851 } 9852 if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) { 9853 createNonEnumerableProperty(value, 'name', name); 9854 } 9855 state = enforceInternalState(value); 9856 if (!state.source) { 9857 state.source = TEMPLATE.join(typeof name == 'string' ? name : ''); 9858 } 9859 } 9860 if (O === global) { 9861 if (simple) O[key] = value; 9862 else setGlobal(key, value); 9863 return; 9864 } else if (!unsafe) { 9865 delete O[key]; 9866 } else if (!noTargetGet && O[key]) { 9867 simple = true; 9868 } 9869 if (simple) O[key] = value; 9870 else createNonEnumerableProperty(O, key, value); 9871// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 9872})(Function.prototype, 'toString', function toString() { 9873 return isCallable(this) && getInternalState(this).source || inspectSource(this); 9874}); 9875 9876 9877/***/ }), 9878/* 160 */ 9879/***/ (function(module, exports, __webpack_require__) { 9880 9881var NATIVE_WEAK_MAP = __webpack_require__(161); 9882var global = __webpack_require__(1); 9883var uncurryThis = __webpack_require__(5); 9884var isObject = __webpack_require__(20); 9885var createNonEnumerableProperty = __webpack_require__(43); 9886var hasOwn = __webpack_require__(9); 9887var shared = __webpack_require__(41); 9888var sharedKey = __webpack_require__(83); 9889var hiddenKeys = __webpack_require__(44); 9890 9891var OBJECT_ALREADY_INITIALIZED = 'Object already initialized'; 9892var TypeError = global.TypeError; 9893var WeakMap = global.WeakMap; 9894var set, get, has; 9895 9896var enforce = function (it) { 9897 return has(it) ? get(it) : set(it, {}); 9898}; 9899 9900var getterFor = function (TYPE) { 9901 return function (it) { 9902 var state; 9903 if (!isObject(it) || (state = get(it)).type !== TYPE) { 9904 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 9905 } return state; 9906 }; 9907}; 9908 9909if (NATIVE_WEAK_MAP || shared.state) { 9910 var store = shared.state || (shared.state = new WeakMap()); 9911 var wmget = uncurryThis(store.get); 9912 var wmhas = uncurryThis(store.has); 9913 var wmset = uncurryThis(store.set); 9914 set = function (it, metadata) { 9915 if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 9916 metadata.facade = it; 9917 wmset(store, it, metadata); 9918 return metadata; 9919 }; 9920 get = function (it) { 9921 return wmget(store, it) || {}; 9922 }; 9923 has = function (it) { 9924 return wmhas(store, it); 9925 }; 9926} else { 9927 var STATE = sharedKey('state'); 9928 hiddenKeys[STATE] = true; 9929 set = function (it, metadata) { 9930 if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED); 9931 metadata.facade = it; 9932 createNonEnumerableProperty(it, STATE, metadata); 9933 return metadata; 9934 }; 9935 get = function (it) { 9936 return hasOwn(it, STATE) ? it[STATE] : {}; 9937 }; 9938 has = function (it) { 9939 return hasOwn(it, STATE); 9940 }; 9941} 9942 9943module.exports = { 9944 set: set, 9945 get: get, 9946 has: has, 9947 enforce: enforce, 9948 getterFor: getterFor 9949}; 9950 9951 9952/***/ }), 9953/* 161 */ 9954/***/ (function(module, exports, __webpack_require__) { 9955 9956var global = __webpack_require__(1); 9957var isCallable = __webpack_require__(7); 9958var inspectSource = __webpack_require__(82); 9959 9960var WeakMap = global.WeakMap; 9961 9962module.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap)); 9963 9964 9965/***/ }), 9966/* 162 */ 9967/***/ (function(module, exports, __webpack_require__) { 9968 9969var DESCRIPTORS = __webpack_require__(14); 9970var hasOwn = __webpack_require__(9); 9971 9972var FunctionPrototype = Function.prototype; 9973// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe 9974var getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor; 9975 9976var EXISTS = hasOwn(FunctionPrototype, 'name'); 9977// additional protection from minified / mangled / dropped function names 9978var PROPER = EXISTS && (function something() { /* empty */ }).name === 'something'; 9979var CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable)); 9980 9981module.exports = { 9982 EXISTS: EXISTS, 9983 PROPER: PROPER, 9984 CONFIGURABLE: CONFIGURABLE 9985}; 9986 9987 9988/***/ }), 9989/* 163 */ 9990/***/ (function(module, exports, __webpack_require__) { 9991 9992var hasOwn = __webpack_require__(9); 9993var ownKeys = __webpack_require__(164); 9994var getOwnPropertyDescriptorModule = __webpack_require__(70); 9995var definePropertyModule = __webpack_require__(28); 9996 9997module.exports = function (target, source) { 9998 var keys = ownKeys(source); 9999 var defineProperty = definePropertyModule.f; 10000 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 10001 for (var i = 0; i < keys.length; i++) { 10002 var key = keys[i]; 10003 if (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 10004 } 10005}; 10006 10007 10008/***/ }), 10009/* 164 */ 10010/***/ (function(module, exports, __webpack_require__) { 10011 10012var getBuiltIn = __webpack_require__(27); 10013var uncurryThis = __webpack_require__(5); 10014var getOwnPropertyNamesModule = __webpack_require__(165); 10015var getOwnPropertySymbolsModule = __webpack_require__(169); 10016var anObject = __webpack_require__(29); 10017
vendor: 1,501 bytes, lines 10018-10066
10018var concat = uncurryThis([].concat); 10019 10020// all object keys, includes non-enumerable and symbols 10021module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 10022 var keys = getOwnPropertyNamesModule.f(anObject(it)); 10023 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 10024 return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys; 10025}; 10026 10027 10028/***/ }), 10029/* 165 */ 10030/***/ (function(module, exports, __webpack_require__) { 10031 10032var internalObjectKeys = __webpack_require__(84); 10033var enumBugKeys = __webpack_require__(45); 10034 10035var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 10036 10037// `Object.getOwnPropertyNames` method 10038// https://tc39.es/ecma262/#sec-object.getownpropertynames 10039// eslint-disable-next-line es/no-object-getownpropertynames -- safe 10040exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 10041 return internalObjectKeys(O, hiddenKeys); 10042}; 10043 10044 10045/***/ }), 10046/* 166 */ 10047/***/ (function(module, exports, __webpack_require__) { 10048 10049var toIntegerOrInfinity = __webpack_require__(86); 10050 10051var max = Math.max; 10052var min = Math.min; 10053 10054// Helper for a popular repeating case of the spec: 10055// Let integer be ? ToInteger(index). 10056// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length). 10057module.exports = function (index, length) { 10058 var integer = toIntegerOrInfinity(index); 10059 return integer < 0 ? max(integer + length, 0) : min(integer, length); 10060}; 10061 10062 10063/***/ }), 10064/* 167 */ 10065/***/ (function(module, exports, __webpack_require__) { 10066
vendor: 7,288 bytes, lines 10067-10316
10067var toLength = __webpack_require__(168); 10068 10069// `LengthOfArrayLike` abstract operation 10070// https://tc39.es/ecma262/#sec-lengthofarraylike 10071module.exports = function (obj) { 10072 return toLength(obj.length); 10073}; 10074 10075 10076/***/ }), 10077/* 168 */ 10078/***/ (function(module, exports, __webpack_require__) { 10079 10080var toIntegerOrInfinity = __webpack_require__(86); 10081 10082var min = Math.min; 10083 10084// `ToLength` abstract operation 10085// https://tc39.es/ecma262/#sec-tolength 10086module.exports = function (argument) { 10087 return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 10088}; 10089 10090 10091/***/ }), 10092/* 169 */ 10093/***/ (function(module, exports) { 10094 10095// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe 10096exports.f = Object.getOwnPropertySymbols; 10097 10098 10099/***/ }), 10100/* 170 */ 10101/***/ (function(module, exports, __webpack_require__) { 10102 10103var fails = __webpack_require__(19); 10104var isCallable = __webpack_require__(7); 10105 10106var replacement = /#|\.prototype\./; 10107 10108var isForced = function (feature, detection) { 10109 var value = data[normalize(feature)]; 10110 return value == POLYFILL ? true 10111 : value == NATIVE ? false 10112 : isCallable(detection) ? fails(detection) 10113 : !!detection; 10114}; 10115 10116var normalize = isForced.normalize = function (string) { 10117 return String(string).replace(replacement, '.').toLowerCase(); 10118}; 10119 10120var data = isForced.data = {}; 10121var NATIVE = isForced.NATIVE = 'N'; 10122var POLYFILL = isForced.POLYFILL = 'P'; 10123 10124module.exports = isForced; 10125 10126 10127/***/ }), 10128/* 171 */ 10129/***/ (function(module, exports, __webpack_require__) { 10130 10131var wellKnownSymbol = __webpack_require__(77); 10132var create = __webpack_require__(172); 10133var definePropertyModule = __webpack_require__(28); 10134 10135var UNSCOPABLES = wellKnownSymbol('unscopables'); 10136var ArrayPrototype = Array.prototype; 10137 10138// Array.prototype[@@unscopables] 10139// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables 10140if (ArrayPrototype[UNSCOPABLES] == undefined) { 10141 definePropertyModule.f(ArrayPrototype, UNSCOPABLES, { 10142 configurable: true, 10143 value: create(null) 10144 }); 10145} 10146 10147// add a key to Array.prototype[@@unscopables] 10148module.exports = function (key) { 10149 ArrayPrototype[UNSCOPABLES][key] = true; 10150}; 10151 10152 10153/***/ }), 10154/* 172 */ 10155/***/ (function(module, exports, __webpack_require__) { 10156 10157/* global ActiveXObject -- old IE, WSH */ 10158var anObject = __webpack_require__(29); 10159var defineProperties = __webpack_require__(173); 10160var enumBugKeys = __webpack_require__(45); 10161var hiddenKeys = __webpack_require__(44); 10162var html = __webpack_require__(175); 10163var documentCreateElement = __webpack_require__(81); 10164var sharedKey = __webpack_require__(83); 10165 10166var GT = '>'; 10167var LT = '<'; 10168var PROTOTYPE = 'prototype'; 10169var SCRIPT = 'script'; 10170var IE_PROTO = sharedKey('IE_PROTO'); 10171 10172var EmptyConstructor = function () { /* empty */ }; 10173 10174var scriptTag = function (content) { 10175 return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT; 10176}; 10177 10178// Create object with fake `null` prototype: use ActiveX Object with cleared prototype 10179var NullProtoObjectViaActiveX = function (activeXDocument) { 10180 activeXDocument.write(scriptTag('')); 10181 activeXDocument.close(); 10182 var temp = activeXDocument.parentWindow.Object; 10183 activeXDocument = null; // avoid memory leak 10184 return temp; 10185}; 10186 10187// Create object with fake `null` prototype: use iframe Object with cleared prototype 10188var NullProtoObjectViaIFrame = function () { 10189 // Thrash, waste and sodomy: IE GC bug 10190 var iframe = documentCreateElement('iframe'); 10191 var JS = 'java' + SCRIPT + ':'; 10192 var iframeDocument; 10193 iframe.style.display = 'none'; 10194 html.appendChild(iframe); 10195 // https://github.com/zloirock/core-js/issues/475 10196 iframe.src = String(JS); 10197 iframeDocument = iframe.contentWindow.document; 10198 iframeDocument.open(); 10199 iframeDocument.write(scriptTag('document.F=Object')); 10200 iframeDocument.close(); 10201 return iframeDocument.F; 10202}; 10203 10204// Check for document.domain and active x support 10205// No need to use active x approach when document.domain is not set 10206// see https://github.com/es-shims/es5-shim/issues/150 10207// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346 10208// avoid IE GC bug 10209var activeXDocument; 10210var NullProtoObject = function () { 10211 try { 10212 activeXDocument = new ActiveXObject('htmlfile'); 10213 } catch (error) { /* ignore */ } 10214 NullProtoObject = typeof document != 'undefined' 10215 ? document.domain && activeXDocument 10216 ? NullProtoObjectViaActiveX(activeXDocument) // old IE 10217 : NullProtoObjectViaIFrame() 10218 : NullProtoObjectViaActiveX(activeXDocument); // WSH 10219 var length = enumBugKeys.length; 10220 while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]]; 10221 return NullProtoObject(); 10222}; 10223 10224hiddenKeys[IE_PROTO] = true; 10225 10226// `Object.create` method 10227// https://tc39.es/ecma262/#sec-object.create 10228module.exports = Object.create || function create(O, Properties) { 10229 var result; 10230 if (O !== null) { 10231 EmptyConstructor[PROTOTYPE] = anObject(O); 10232 result = new EmptyConstructor(); 10233 EmptyConstructor[PROTOTYPE] = null; 10234 // add "__proto__" for Object.getPrototypeOf polyfill 10235 result[IE_PROTO] = O; 10236 } else result = NullProtoObject(); 10237 return Properties === undefined ? result : defineProperties(result, Properties); 10238}; 10239 10240 10241/***/ }), 10242/* 173 */ 10243/***/ (function(module, exports, __webpack_require__) { 10244 10245var DESCRIPTORS = __webpack_require__(14); 10246var definePropertyModule = __webpack_require__(28); 10247var anObject = __webpack_require__(29); 10248var toIndexedObject = __webpack_require__(26); 10249var objectKeys = __webpack_require__(174); 10250 10251// `Object.defineProperties` method 10252// https://tc39.es/ecma262/#sec-object.defineproperties 10253// eslint-disable-next-line es/no-object-defineproperties -- safe 10254module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 10255 anObject(O); 10256 var props = toIndexedObject(Properties); 10257 var keys = objectKeys(Properties); 10258 var length = keys.length; 10259 var index = 0; 10260 var key; 10261 while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]); 10262 return O; 10263}; 10264 10265 10266/***/ }), 10267/* 174 */ 10268/***/ (function(module, exports, __webpack_require__) { 10269 10270var internalObjectKeys = __webpack_require__(84); 10271var enumBugKeys = __webpack_require__(45); 10272 10273// `Object.keys` method 10274// https://tc39.es/ecma262/#sec-object.keys 10275// eslint-disable-next-line es/no-object-keys -- safe 10276module.exports = Object.keys || function keys(O) { 10277 return internalObjectKeys(O, enumBugKeys); 10278}; 10279 10280 10281/***/ }), 10282/* 175 */ 10283/***/ (function(module, exports, __webpack_require__) { 10284 10285var getBuiltIn = __webpack_require__(27); 10286 10287module.exports = getBuiltIn('document', 'documentElement'); 10288 10289 10290/***/ }), 10291/* 176 */ 10292/***/ (function(module, exports, __webpack_require__) { 10293 10294var global = __webpack_require__(1); 10295var uncurryThis = __webpack_require__(5); 10296 10297module.exports = function (CONSTRUCTOR, METHOD) { 10298 return uncurryThis(global[CONSTRUCTOR].prototype[METHOD]); 10299}; 10300 10301 10302/***/ }), 10303/* 177 */ 10304/***/ (function(module, __webpack_exports__, __webpack_require__) { 10305 10306"use strict"; 10307__webpack_require__.r(__webpack_exports__); 10308/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); 10309/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(180); 10310/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(181); 10311 10312 10313 10314 10315/** `Object#toString` result references. */ 10316var nullTag = '[object Null]',
10317 undefinedTag = '[object Undefined]'; 10318 10319/** Built-in value references. */ 10320var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 10321 10322/** 10323 * The base implementation of `getTag` without fallbacks for buggy environments. 10324 * 10325 * @private 10326 * @param {*} value The value to query. 10327 * @returns {string} Returns the `toStringTag`. 10328 */ 10329function baseGetTag(value) { 10330 if (value == null) { 10331 return value === undefined ? undefinedTag : nullTag; 10332 } 10333 return (symToStringTag && symToStringTag in Object(value)) 10334 ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) 10335 : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); 10336} 10337 10338/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); 10339 10340 10341/***/ }), 10342/* 178 */ 10343/***/ (function(module, __webpack_exports__, __webpack_require__) { 10344 10345"use strict"; 10346__webpack_require__.r(__webpack_exports__); 10347/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(179); 10348 10349 10350/** Detect free variable `self`. */ 10351var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 10352 10353/** Used as a reference to the global object. */ 10354var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); 10355 10356/* harmony default export */ __webpack_exports__["default"] = (root); 10357 10358 10359/***/ }), 10360/* 179 */ 10361/***/ (function(module, __webpack_exports__, __webpack_require__) { 10362 10363"use strict"; 10364__webpack_require__.r(__webpack_exports__); 10365/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 10366var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 10367 10368/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); 10369 10370/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25))) 10371 10372/***/ }), 10373/* 180 */ 10374/***/ (function(module, __webpack_exports__, __webpack_require__) { 10375 10376"use strict"; 10377__webpack_require__.r(__webpack_exports__); 10378/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(89); 10379 10380 10381/** Used for built-in method references. */ 10382var objectProto = Object.prototype; 10383 10384/** Used to check objects for own properties. */ 10385var hasOwnProperty = objectProto.hasOwnProperty; 10386 10387/** 10388 * Used to resolve the 10389 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10390 * of values. 10391 */ 10392var nativeObjectToString = objectProto.toString; 10393 10394/** Built-in value references. */ 10395var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 10396 10397/** 10398 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 10399 * 10400 * @private 10401 * @param {*} value The value to query. 10402 * @returns {string} Returns the raw `toStringTag`. 10403 */ 10404function getRawTag(value) { 10405 var isOwn = hasOwnProperty.call(value, symToStringTag), 10406 tag = value[symToStringTag]; 10407 10408 try { 10409 value[symToStringTag] = undefined; 10410 var unmasked = true; 10411 } catch (e) {} 10412 10413 var result = nativeObjectToString.call(value); 10414 if (unmasked) { 10415 if (isOwn) { 10416 value[symToStringTag] = tag; 10417 } else { 10418 delete value[symToStringTag]; 10419 } 10420 } 10421 return result; 10422} 10423 10424/* harmony default export */ __webpack_exports__["default"] = (getRawTag); 10425 10426 10427/***/ }), 10428/* 181 */ 10429/***/ (function(module, __webpack_exports__, __webpack_require__) { 10430 10431"use strict"; 10432__webpack_require__.r(__webpack_exports__); 10433/** Used for built-in method references. */ 10434var objectProto = Object.prototype; 10435 10436/** 10437 * Used to resolve the 10438 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10439 * of values. 10440 */ 10441var nativeObjectToString = objectProto.toString; 10442 10443/** 10444 * Converts `value` to a string using `Object.prototype.toString`. 10445 * 10446 * @private 10447 * @param {*} value The value to convert. 10448 * @returns {string} Returns the converted string. 10449 */ 10450function objectToString(value) { 10451 return nativeObjectToString.call(value); 10452} 10453 10454/* harmony default export */ __webpack_exports__["default"] = (objectToString); 10455 10456 10457/***/ }), 10458/* 182 */ 10459/***/ (function(module, __webpack_exports__, __webpack_require__) { 10460 10461"use strict"; 10462__webpack_require__.r(__webpack_exports__); 10463/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); 10464 10465 10466/** Built-in value references. */ 10467var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); 10468 10469/* harmony default export */ __webpack_exports__["default"] = (getPrototype); 10470 10471 10472/***/ }), 10473/* 183 */ 10474/***/ (function(module, __webpack_exports__, __webpack_require__) { 10475 10476"use strict"; 10477__webpack_require__.r(__webpack_exports__); 10478/** 10479 * Creates a unary function that invokes `func` with its argument transformed. 10480 * 10481 * @private 10482 * @param {Function} func The function to wrap. 10483 * @param {Function} transform The argument transform. 10484 * @returns {Function} Returns the new function. 10485 */ 10486function overArg(func, transform) { 10487 return function(arg) { 10488 return func(transform(arg)); 10489 }; 10490} 10491 10492/* harmony default export */ __webpack_exports__["default"] = (overArg); 10493 10494
10495/***/ }), 10496/* 184 */ 10497/***/ (function(module, __webpack_exports__, __webpack_require__) { 10498 10499"use strict"; 10500__webpack_require__.r(__webpack_exports__); 10501/** 10502 * Checks if `value` is object-like. A value is object-like if it's not `null` 10503 * and has a `typeof` result of "object". 10504 * 10505 * @static 10506 * @memberOf _ 10507 * @since 4.0.0 10508 * @category Lang 10509 * @param {*} value The value to check. 10510 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 10511 * @example 10512 * 10513 * _.isObjectLike({}); 10514 * // => true 10515 * 10516 * _.isObjectLike([1, 2, 3]); 10517 * // => true 10518 * 10519 * _.isObjectLike(_.noop); 10520 * // => false 10521 * 10522 * _.isObjectLike(null); 10523 * // => false 10524 */ 10525function isObjectLike(value) { 10526 return value != null && typeof value == 'object'; 10527} 10528 10529/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); 10530 10531 10532/***/ }), 10533/* 185 */ 10534/***/ (function(module, __webpack_exports__, __webpack_require__) { 10535 10536"use strict"; 10537__webpack_require__.r(__webpack_exports__); 10538/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(187); 10539/* global window */ 10540 10541 10542var root; 10543 10544if (typeof self !== 'undefined') { 10545 root = self; 10546} else if (typeof window !== 'undefined') { 10547 root = window; 10548} else if (typeof global !== 'undefined') { 10549 root = global; 10550} else if (true) { 10551 root = module; 10552} else {} 10553 10554var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); 10555/* harmony default export */ __webpack_exports__["default"] = (result); 10556 10557/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(25), __webpack_require__(186)(module))) 10558 10559/***/ }), 10560/* 186 */ 10561/***/ (function(module, exports) { 10562 10563module.exports = function(originalModule) { 10564 if (!originalModule.webpackPolyfill) { 10565 var module = Object.create(originalModule); 10566 // module.parent = undefined by default 10567 if (!module.children) module.children = []; 10568 Object.defineProperty(module, "loaded", { 10569 enumerable: true, 10570 get: function() { 10571 return module.l; 10572 } 10573 }); 10574 Object.defineProperty(module, "id", { 10575 enumerable: true, 10576 get: function() { 10577 return module.i; 10578 } 10579 }); 10580 Object.defineProperty(module, "exports", { 10581 enumerable: true 10582 }); 10583 module.webpackPolyfill = 1; 10584 } 10585 return module; 10586}; 10587 10588 10589/***/ }), 10590/* 187 */ 10591/***/ (function(module, __webpack_exports__, __webpack_require__) { 10592 10593"use strict"; 10594__webpack_require__.r(__webpack_exports__); 10595/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); 10596function symbolObservablePonyfill(root) { 10597 var result; 10598 var Symbol = root.Symbol; 10599 10600 if (typeof Symbol === 'function') { 10601 if (Symbol.observable) { 10602 result = Symbol.observable; 10603 } else { 10604 result = Symbol('observable'); 10605 Symbol.observable = result; 10606 } 10607 } else { 10608 result = '@@observable'; 10609 } 10610 10611 return result; 10612}; 10613 10614 10615/***/ }), 10616/* 188 */ 10617/***/ (function(module, exports, __webpack_require__) { 10618 10619"use strict"; 10620 10621 10622Object.defineProperty(exports, "__esModule", { 10623 value: true 10624}); 10625exports["default"] = void 0; 10626 10627var _redux = __webpack_require__(87); 10628 10629var _IX2DataReducer = __webpack_require__(189); 10630 10631var _IX2RequestReducer = __webpack_require__(195); 10632 10633var _IX2SessionReducer = __webpack_require__(196); 10634 10635var _shared = __webpack_require__(15); 10636 10637var _IX2InstancesReducer = __webpack_require__(282); 10638 10639var _IX2ParametersReducer = __webpack_require__(283); 10640 10641var ixElements = _shared.IX2ElementsReducer.ixElements; 10642 10643var _default = (0, _redux.combineReducers)({ 10644 ixData: _IX2DataReducer.ixData, 10645 ixRequest: _IX2RequestReducer.ixRequest, 10646 ixSession: _IX2SessionReducer.ixSession, 10647 ixElements: ixElements, 10648 ixInstances: _IX2InstancesReducer.ixInstances, 10649 ixParameters: _IX2ParametersReducer.ixParameters 10650}); 10651 10652exports["default"] = _default; 10653 10654/***/ }), 10655/* 189 */ 10656/***/ (function(module, exports, __webpack_require__) { 10657 10658"use strict"; 10659 10660 10661Object.defineProperty(exports, "__esModule", { 10662 value: true 10663}); 10664exports.ixData = void 0; 10665 10666var _constants = __webpack_require__(4); 10667 10668var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; 10669 10670var ixData = function ixData() { 10671 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 10672 var action = arguments.length > 1 ? arguments[1] : undefined; 10673 10674 switch (action.type) {
10675 case IX2_RAW_DATA_IMPORTED: 10676 { 10677 return action.payload.ixData || Object.freeze({}); 10678 } 10679 10680 default: 10681 { 10682 return state; 10683 } 10684 } 10685}; 10686 10687exports.ixData = ixData; 10688 10689/***/ }), 10690/* 190 */ 10691/***/ (function(module, exports, __webpack_require__) { 10692 10693"use strict"; 10694 10695 10696Object.defineProperty(exports, "__esModule", { 10697 value: true 10698}); 10699exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; 10700/** 10701 * Event Type IDs 10702 */ 10703 10704var EventTypeConsts = { 10705 NAVBAR_OPEN: 'NAVBAR_OPEN', 10706 NAVBAR_CLOSE: 'NAVBAR_CLOSE', 10707 TAB_ACTIVE: 'TAB_ACTIVE', 10708 TAB_INACTIVE: 'TAB_INACTIVE', 10709 SLIDER_ACTIVE: 'SLIDER_ACTIVE', 10710 SLIDER_INACTIVE: 'SLIDER_INACTIVE', 10711 DROPDOWN_OPEN: 'DROPDOWN_OPEN', 10712 DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', 10713 MOUSE_CLICK: 'MOUSE_CLICK', 10714 MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', 10715 MOUSE_DOWN: 'MOUSE_DOWN', 10716 MOUSE_UP: 'MOUSE_UP', 10717 MOUSE_OVER: 'MOUSE_OVER', 10718 MOUSE_OUT: 'MOUSE_OUT', 10719 MOUSE_MOVE: 'MOUSE_MOVE', 10720 MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', 10721 SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', 10722 SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', 10723 SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', 10724 ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', 10725 ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', 10726 PAGE_START: 'PAGE_START', 10727 PAGE_FINISH: 'PAGE_FINISH', 10728 PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', 10729 PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', 10730 PAGE_SCROLL: 'PAGE_SCROLL' 10731}; 10732/** 10733 * Event Config Enums 10734 */ 10735 10736exports.EventTypeConsts = EventTypeConsts; 10737var EventAppliesTo = { 10738 ELEMENT: 'ELEMENT', 10739 CLASS: 'CLASS', 10740 PAGE: 'PAGE' 10741}; 10742exports.EventAppliesTo = EventAppliesTo; 10743var EventBasedOn = { 10744 ELEMENT: 'ELEMENT', 10745 VIEWPORT: 'VIEWPORT' 10746}; 10747exports.EventBasedOn = EventBasedOn; 10748var EventContinuousMouseAxes = { 10749 X_AXIS: 'X_AXIS', 10750 Y_AXIS: 'Y_AXIS' 10751}; 10752exports.EventContinuousMouseAxes = EventContinuousMouseAxes; 10753var EventLimitAffectedElements = { 10754 CHILDREN: 'CHILDREN', 10755 SIBLINGS: 'SIBLINGS', 10756 IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' 10757}; 10758/** 10759 * Quick Effect Enums 10760 */ 10761 10762exports.EventLimitAffectedElements = EventLimitAffectedElements; 10763var QuickEffectIds = { 10764 FADE_EFFECT: 'FADE_EFFECT', 10765 SLIDE_EFFECT: 'SLIDE_EFFECT', 10766 GROW_EFFECT: 'GROW_EFFECT', 10767 SHRINK_EFFECT: 'SHRINK_EFFECT', 10768 SPIN_EFFECT: 'SPIN_EFFECT', 10769 FLY_EFFECT: 'FLY_EFFECT', 10770 POP_EFFECT: 'POP_EFFECT', 10771 FLIP_EFFECT: 'FLIP_EFFECT', 10772 JIGGLE_EFFECT: 'JIGGLE_EFFECT', 10773 PULSE_EFFECT: 'PULSE_EFFECT', 10774 DROP_EFFECT: 'DROP_EFFECT', 10775 BLINK_EFFECT: 'BLINK_EFFECT', 10776 BOUNCE_EFFECT: 'BOUNCE_EFFECT', 10777 FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', 10778 FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', 10779 RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', 10780 JELLO_EFFECT: 'JELLO_EFFECT', 10781 GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', 10782 SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', 10783 PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' 10784}; 10785/** 10786 * Quick Effect Direction Enums 10787 */ 10788 10789exports.QuickEffectIds = QuickEffectIds; 10790var QuickEffectDirectionConsts = { 10791 LEFT: 'LEFT', 10792 RIGHT: 'RIGHT', 10793 BOTTOM: 'BOTTOM', 10794 TOP: 'TOP', 10795 BOTTOM_LEFT: 'BOTTOM_LEFT', 10796 BOTTOM_RIGHT: 'BOTTOM_RIGHT', 10797 TOP_RIGHT: 'TOP_RIGHT', 10798 TOP_LEFT: 'TOP_LEFT', 10799 CLOCKWISE: 'CLOCKWISE', 10800 COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' 10801}; 10802exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; 10803 10804/***/ }), 10805/* 191 */ 10806/***/ (function(module, exports, __webpack_require__) { 10807 10808"use strict"; 10809 10810 10811Object.defineProperty(exports, "__esModule", { 10812 value: true 10813}); 10814exports.InteractionTypeConsts = void 0; 10815var InteractionTypeConsts = { 10816 MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', 10817 MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', 10818 MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', 10819 SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', 10820 SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', 10821 MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', 10822 PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', 10823 PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', 10824 PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', 10825 NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', 10826 DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', 10827 ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', 10828 TAB_INTERACTION: 'TAB_INTERACTION', 10829 SLIDER_INTERACTION: 'SLIDER_INTERACTION' 10830}; 10831exports.InteractionTypeConsts = InteractionTypeConsts; 10832 10833/***/ }), 10834/* 192 */ 10835/***/ (function(module, exports, __webpack_require__) { 10836 10837"use strict"; 10838 10839 10840var _interopRequireDefault = __webpack_require__(0); 10841 10842var _defineProperty2 = _interopRequireDefault(__webpack_require__(21)); 10843 10844var _ReducedMotionTypes; 10845 10846Object.defineProperty(exports, "__esModule", { 10847 value: true 10848}); 10849exports.ReducedMotionTypes = void 0; 10850 10851var _animationActions = __webpack_require__(94); 10852 10853var _animationActions$Act = _animationActions.ActionTypeConsts, 10854 TRANSFORM_MOVE = _animationActions$Act.TRANSFORM_MOVE, 10855 TRANSFORM_SCALE = _animationActions$Act.TRANSFORM_SCALE, 10856 TRANSFORM_ROTATE = _animationActions$Act.TRANSFORM_ROTATE, 10857 TRANSFORM_SKEW = _animationActions$Act.TRANSFORM_SKEW, 10858 STYLE_SIZE = _animationActions$Act.STYLE_SIZE,
10859 STYLE_FILTER = _animationActions$Act.STYLE_FILTER, 10860 STYLE_FONT_VARIATION = _animationActions$Act.STYLE_FONT_VARIATION; 10861/** 10862 * Reduced Motion: Action types to bypass during `prefers-reduced-motion` 10863 */ 10864 10865var 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); 10866exports.ReducedMotionTypes = ReducedMotionTypes; 10867 10868/***/ }), 10869/* 193 */ 10870/***/ (function(module, exports, __webpack_require__) { 10871 10872"use strict"; 10873 10874 10875Object.defineProperty(exports, "__esModule", { 10876 value: true 10877}); 10878exports.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; 10879var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; 10880exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; 10881var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; 10882exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; 10883var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; 10884exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; 10885var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; 10886exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; 10887var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; 10888exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; 10889var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; 10890exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; 10891var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; 10892exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; 10893var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; 10894exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; 10895var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; 10896exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; 10897var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; 10898exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; 10899var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; 10900exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; 10901var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; 10902exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; 10903var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; 10904exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; 10905var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; 10906exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; 10907var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; 10908exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; 10909var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; 10910exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; 10911var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; 10912exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; 10913var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; 10914exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; 10915var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; 10916exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; 10917var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; 10918exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; 10919 10920/***/ }), 10921/* 194 */ 10922/***/ (function(module, exports, __webpack_require__) { 10923 10924"use strict"; 10925 10926 10927Object.defineProperty(exports, "__esModule", { 10928 value: true 10929}); 10930exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exp
10930orts.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; 10931var IX2_ID_DELIMITER = '|'; 10932exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; 10933var WF_PAGE = 'data-wf-page'; 10934exports.WF_PAGE = WF_PAGE; 10935var W_MOD_JS = 'w-mod-js'; 10936exports.W_MOD_JS = W_MOD_JS; 10937var W_MOD_IX = 'w-mod-ix'; 10938exports.W_MOD_IX = W_MOD_IX; 10939var BOUNDARY_SELECTOR = '.w-dyn-item'; 10940exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; 10941var CONFIG_X_VALUE = 'xValue'; 10942exports.CONFIG_X_VALUE = CONFIG_X_VALUE; 10943var CONFIG_Y_VALUE = 'yValue'; 10944exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; 10945var CONFIG_Z_VALUE = 'zValue'; 10946exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; 10947var CONFIG_VALUE = 'value'; 10948exports.CONFIG_VALUE = CONFIG_VALUE; 10949var CONFIG_X_UNIT = 'xUnit'; 10950exports.CONFIG_X_UNIT = CONFIG_X_UNIT; 10951var CONFIG_Y_UNIT = 'yUnit'; 10952exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; 10953var CONFIG_Z_UNIT = 'zUnit'; 10954exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; 10955var CONFIG_UNIT = 'unit'; 10956exports.CONFIG_UNIT = CONFIG_UNIT; 10957var TRANSFORM = 'transform'; 10958exports.TRANSFORM = TRANSFORM; 10959var TRANSLATE_X = 'translateX'; 10960exports.TRANSLATE_X = TRANSLATE_X; 10961var TRANSLATE_Y = 'translateY'; 10962exports.TRANSLATE_Y = TRANSLATE_Y; 10963var TRANSLATE_Z = 'translateZ'; 10964exports.TRANSLATE_Z = TRANSLATE_Z; 10965var TRANSLATE_3D = 'translate3d'; 10966exports.TRANSLATE_3D = TRANSLATE_3D; 10967var SCALE_X = 'scaleX'; 10968exports.SCALE_X = SCALE_X; 10969var SCALE_Y = 'scaleY'; 10970exports.SCALE_Y = SCALE_Y; 10971var SCALE_Z = 'scaleZ'; 10972exports.SCALE_Z = SCALE_Z; 10973var SCALE_3D = 'scale3d'; 10974exports.SCALE_3D = SCALE_3D; 10975var ROTATE_X = 'rotateX'; 10976exports.ROTATE_X = ROTATE_X; 10977var ROTATE_Y = 'rotateY'; 10978exports.ROTATE_Y = ROTATE_Y; 10979var ROTATE_Z = 'rotateZ'; 10980exports.ROTATE_Z = ROTATE_Z; 10981var SKEW = 'skew'; 10982exports.SKEW = SKEW; 10983var SKEW_X = 'skewX'; 10984exports.SKEW_X = SKEW_X; 10985var SKEW_Y = 'skewY'; 10986exports.SKEW_Y = SKEW_Y; 10987var OPACITY = 'opacity'; 10988exports.OPACITY = OPACITY; 10989var FILTER = 'filter'; 10990exports.FILTER = FILTER; 10991var FONT_VARIATION_SETTINGS = 'font-variation-settings'; 10992exports.FONT_VARIATION_SETTINGS = FONT_VARIATION_SETTINGS; 10993var WIDTH = 'width'; 10994exports.WIDTH = WIDTH; 10995var HEIGHT = 'height'; 10996exports.HEIGHT = HEIGHT; 10997var BACKGROUND_COLOR = 'backgroundColor'; 10998exports.BACKGROUND_COLOR = BACKGROUND_COLOR; 10999var BACKGROUND = 'background'; 11000exports.BACKGROUND = BACKGROUND; 11001var BORDER_COLOR = 'borderColor'; 11002exports.BORDER_COLOR = BORDER_COLOR; 11003var COLOR = 'color'; 11004exports.COLOR = COLOR; 11005var DISPLAY = 'display'; 11006exports.DISPLAY = DISPLAY; 11007var FLEX = 'flex'; 11008exports.FLEX = FLEX; 11009var WILL_CHANGE = 'willChange'; 11010exports.WILL_CHANGE = WILL_CHANGE; 11011var AUTO = 'AUTO'; 11012exports.AUTO = AUTO; 11013var COMMA_DELIMITER = ','; 11014exports.COMMA_DELIMITER = COMMA_DELIMITER; 11015var COLON_DELIMITER = ':'; 11016exports.COLON_DELIMITER = COLON_DELIMITER; 11017var BAR_DELIMITER = '|'; 11018exports.BAR_DELIMITER = BAR_DELIMITER; 11019var CHILDREN = 'CHILDREN'; 11020exports.CHILDREN = CHILDREN; 11021var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; 11022exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; 11023var SIBLINGS = 'SIBLINGS'; 11024exports.SIBLINGS = SIBLINGS; 11025var PARENT = 'PARENT'; 11026exports.PARENT = PARENT; 11027var PRESERVE_3D = 'preserve-3d'; 11028exports.PRESERVE_3D = PRESERVE_3D; 11029var HTML_ELEMENT = 'HTML_ELEMENT'; 11030exports.HTML_ELEMENT = HTML_ELEMENT; 11031var PLAIN_OBJECT = 'PLAIN_OBJECT'; 11032exports.PLAIN_OBJECT = PLAIN_OBJECT; 11033var ABSTRACT_NODE = 'ABSTRACT_NODE'; 11034exports.ABSTRACT_NODE = ABSTRACT_NODE; 11035var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; 11036exports.RENDER_TRANSFORM = RENDER_TRANSFORM; 11037var RENDER_GENERAL = 'RENDER_GENERAL'; 11038exports.RENDER_GENERAL = RENDER_GENERAL; 11039var RENDER_STYLE = 'RENDER_STYLE'; 11040exports.RENDER_STYLE = RENDER_STYLE; 11041var RENDER_PLUGIN = 'RENDER_PLUGIN'; 11042exports.RENDER_PLUGIN = RENDER_PLUGIN; 11043 11044/***/ }), 11045/* 195 */ 11046/***/ (function(module, exports, __webpack_require__) { 11047 11048"use strict"; 11049 11050 11051var _interopRequireDefault2 = __webpack_require__(0); 11052 11053var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 11054
11055var _Object$create; 11056 11057var _interopRequireDefault = __webpack_require__(0); 11058 11059Object.defineProperty(exports, "__esModule", { 11060 value: true 11061}); 11062exports.ixRequest = void 0; 11063 11064var _extends2 = _interopRequireDefault(__webpack_require__(30)); 11065 11066var _constants = __webpack_require__(4); 11067 11068var _timm = __webpack_require__(22); 11069 11070var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 11071 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 11072 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 11073 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 11074 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; 11075var initialState = { 11076 preview: {}, 11077 playback: {}, 11078 stop: {}, 11079 clear: {} 11080}; 11081var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { 11082 value: 'preview' 11083}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { 11084 value: 'playback' 11085}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { 11086 value: 'stop' 11087}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { 11088 value: 'clear' 11089}), _Object$create)); 11090 11091var ixRequest = function ixRequest() { 11092 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 11093 var action = arguments.length > 1 ? arguments[1] : undefined; 11094 11095 if (action.type in stateKeys) { 11096 var key = [stateKeys[action.type]]; 11097 return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); 11098 } 11099 11100 return state; 11101}; 11102 11103exports.ixRequest = ixRequest; 11104 11105/***/ }), 11106/* 196 */ 11107/***/ (function(module, exports, __webpack_require__) { 11108 11109"use strict"; 11110 11111 11112Object.defineProperty(exports, "__esModule", { 11113 value: true 11114}); 11115exports.ixSession = void 0; 11116 11117var _constants = __webpack_require__(4); 11118 11119var _timm = __webpack_require__(22); 11120 11121var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 11122 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 11123 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 11124 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 11125 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 11126 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 11127 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 11128 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 11129 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 11130 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 11131 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 11132var initialState = { 11133 active: false, 11134 tick: 0, 11135 eventListeners: [], 11136 eventState: {}, 11137 playbackState: {}, 11138 viewportWidth: 0, 11139 mediaQueryKey: null, 11140 hasBoundaryNodes: false, 11141 hasDefinedMediaQueries: false, 11142 reducedMotion: false 11143}; 11144var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe 11145 11146var ixSession = function ixSession() { 11147 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 11148 var action = arguments.length > 1 ? arguments[1] : undefined; 11149 11150 switch (action.type) { 11151 case IX2_SESSION_INITIALIZED: 11152 { 11153 var _action$payload = action.payload, 11154 hasBoundaryNodes = _action$payload.hasBoundaryNodes, 11155 reducedMotion = _action$payload.reducedMotion; 11156 return (0, _timm.merge)(state, { 11157 hasBoundaryNodes: hasBoundaryNodes, 11158 reducedMotion: reducedMotion 11159 }); 11160 } 11161 11162 case IX2_SESSION_STARTED: 11163 { 11164 return (0, _timm.set)(state, 'active', true); 11165 } 11166 11167 case IX2_TEST_FRAME_RENDERED: 11168 { 11169 var _action$payload$step = action.payload.step, 11170 step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; 11171 return (0, _timm.set)(state, 'tick', state.tick + step); 11172 } 11173 11174 case IX2_SESSION_STOPPED: 11175 { 11176 return initialState; 11177 } 11178 11179 case IX2_ANIMATION_FRAME_CHANGED: 11180 { 11181 var now = action.payload.now; 11182 return (0, _timm.set)(state, 'tick', now); 11183 } 11184 11185 case IX2_EVENT_LISTENER_ADDED: 11186 { 11187 var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); 11188 return (0, _timm.set)(state, 'eventListeners', eventListeners); 11189 } 11190 11191 case IX2_EVENT_STATE_CHANGED: 11192 { 11193 var _action$payload2 = action.payload, 11194 stateKey = _action$payload2.stateKey, 11195 newState = _action$payload2.newState; 11196 return (0, _timm.setIn)(state, ['eventState', stateKey], newState); 11197 } 11198 11199 case IX2_ACTION_LIST_PLAYBACK_CHANGED: 11200 { 11201 var _action$payload3 = action.payload, 11202 actionListId = _action$payload3.actionListId, 11203 isPlaying = _action$payload3.isPlaying; 11204 return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); 11205 } 11206 11207 case IX2_VIEWPORT_WIDTH_CHANGED: 11208 { 11209 var _action$payload4 = action.payload, 11210 width = _action$payload4.width, 11211 mediaQueries = _action$payload4.mediaQueries; 11212 var mediaQueryCount = mediaQueries.length; 11213 var mediaQueryKey = null; 11214 11215 for (var i = 0; i < mediaQueryCount; i++) { 11216 var _mediaQueries$i = mediaQueries[i], 11217 key = _mediaQueries$i.key, 11218 min = _mediaQueries$i.min, 11219 max = _mediaQueries$i.max; 11220 11221 if (width >= min && width <= max) { 11222 mediaQueryKey = key; 11223 break; 11224 } 11225 } 11226 11227 return (0, _timm.merge)(state, { 11228 viewportWidth: width, 11229 mediaQueryKey: mediaQueryKey 11230 }); 11231 } 11232 11233 case IX2_MEDIA_QUERIES_DEFINED: 11234 { 11235 return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); 11236 } 11237 11238 default: 11239 { 11240 return state; 11241 } 11242 } 11243}; 11244 11245exports.ixSession = ixSession; 11246 11247/***/ }), 11248/* 197 */ 11249/***/ (function(module, exports, __webpack_require__) { 11250 11251var baseIsMatch = __webpack_require__(198), 11252 getMatchData = __webpack_require__(250), 11253 matchesStrictComparable = __webpack_require__(111); 11254 11255/** 11256 * The base implementation of `_.matches` which doesn't clone `source`. 11257 * 11258 * @private 11259 * @param {Object} source The object of property values to match. 11260 * @returns {Function} Returns the new spec function. 11261 */ 11262function baseMatches(source) { 11263 var matchData = getMatchData(source); 11264 if (matchData.length == 1 && matchData[0][2]) { 11265 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 11266 } 11267 return function(object) { 11268 return object === source || baseIsMatch(object, source, matchData); 11269 }; 11270} 11271 11272module.exports = baseMatches; 11273 11274 11275/***/ }), 11276/* 198 */ 11277/***/ (function(module, exports, __webpack_require__) { 11278 11279var Stack = __webpack_require__(97), 11280 baseIsEqual = __webpack_require__(101); 11281 11282/** Used to compose bitmasks for value comparisons. */ 11283var COMPARE_PARTIAL_FLAG = 1, 11284 COMPARE_UNORDERED_FLAG = 2; 11285 11286/** 11287 * The base implementation of `_.isMatch` without support for iteratee shorthands. 11288 * 11289 * @private 11290 * @param {Object} object The object to inspect. 11291 * @param {Object} source The object of property values to match. 11292 * @param {Array} matchData The property names, values, and compare flags to match. 11293 * @param {Function} [customizer] The function to customize comparisons. 11294 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 11295 */ 11296function baseIsMatch(object, source, matchData, customizer) { 11297 var index = matchData.length, 11298 length = index, 11299 noCustomizer = !customizer; 11300 11301 if (object == null) { 11302 return !length; 11303 } 11304 object = Object(object); 11305 while (index--) { 11306 var data = matchData[index]; 11307 if ((noCustomizer && data[2]) 11308 ? data[1] !== object[data[0]] 11309 : !(data[0] in object) 11310 ) { 11311 return false;
vendor: 4,246 bytes, lines 11312-11528
11312 } 11313 } 11314 while (++index < length) { 11315 data = matchData[index]; 11316 var key = data[0], 11317 objValue = object[key], 11318 srcValue = data[1]; 11319 11320 if (noCustomizer && data[2]) { 11321 if (objValue === undefined && !(key in object)) { 11322 return false; 11323 } 11324 } else { 11325 var stack = new Stack; 11326 if (customizer) { 11327 var result = customizer(objValue, srcValue, key, object, source, stack); 11328 } 11329 if (!(result === undefined 11330 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 11331 : result 11332 )) { 11333 return false; 11334 } 11335 } 11336 } 11337 return true; 11338} 11339 11340module.exports = baseIsMatch; 11341 11342 11343/***/ }), 11344/* 199 */ 11345/***/ (function(module, exports) { 11346 11347/** 11348 * Removes all key-value entries from the list cache. 11349 * 11350 * @private 11351 * @name clear 11352 * @memberOf ListCache 11353 */ 11354function listCacheClear() { 11355 this.__data__ = []; 11356 this.size = 0; 11357} 11358 11359module.exports = listCacheClear; 11360 11361 11362/***/ }), 11363/* 200 */ 11364/***/ (function(module, exports, __webpack_require__) { 11365 11366var assocIndexOf = __webpack_require__(32); 11367 11368/** Used for built-in method references. */ 11369var arrayProto = Array.prototype; 11370 11371/** Built-in value references. */ 11372var splice = arrayProto.splice; 11373 11374/** 11375 * Removes `key` and its value from the list cache. 11376 * 11377 * @private 11378 * @name delete 11379 * @memberOf ListCache 11380 * @param {string} key The key of the value to remove. 11381 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11382 */ 11383function listCacheDelete(key) { 11384 var data = this.__data__, 11385 index = assocIndexOf(data, key); 11386 11387 if (index < 0) { 11388 return false; 11389 } 11390 var lastIndex = data.length - 1; 11391 if (index == lastIndex) { 11392 data.pop(); 11393 } else { 11394 splice.call(data, index, 1); 11395 } 11396 --this.size; 11397 return true; 11398} 11399 11400module.exports = listCacheDelete; 11401 11402 11403/***/ }), 11404/* 201 */ 11405/***/ (function(module, exports, __webpack_require__) { 11406 11407var assocIndexOf = __webpack_require__(32); 11408 11409/** 11410 * Gets the list cache value for `key`. 11411 * 11412 * @private 11413 * @name get 11414 * @memberOf ListCache 11415 * @param {string} key The key of the value to get. 11416 * @returns {*} Returns the entry value. 11417 */ 11418function listCacheGet(key) { 11419 var data = this.__data__, 11420 index = assocIndexOf(data, key); 11421 11422 return index < 0 ? undefined : data[index][1]; 11423} 11424 11425module.exports = listCacheGet; 11426 11427 11428/***/ }), 11429/* 202 */ 11430/***/ (function(module, exports, __webpack_require__) { 11431 11432var assocIndexOf = __webpack_require__(32); 11433 11434/** 11435 * Checks if a list cache value for `key` exists. 11436 * 11437 * @private 11438 * @name has 11439 * @memberOf ListCache 11440 * @param {string} key The key of the entry to check. 11441 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11442 */ 11443function listCacheHas(key) { 11444 return assocIndexOf(this.__data__, key) > -1; 11445} 11446 11447module.exports = listCacheHas; 11448 11449 11450/***/ }), 11451/* 203 */ 11452/***/ (function(module, exports, __webpack_require__) { 11453 11454var assocIndexOf = __webpack_require__(32); 11455 11456/** 11457 * Sets the list cache `key` to `value`. 11458 * 11459 * @private 11460 * @name set 11461 * @memberOf ListCache 11462 * @param {string} key The key of the value to set. 11463 * @param {*} value The value to set. 11464 * @returns {Object} Returns the list cache instance. 11465 */ 11466function listCacheSet(key, value) { 11467 var data = this.__data__, 11468 index = assocIndexOf(data, key); 11469 11470 if (index < 0) { 11471 ++this.size; 11472 data.push([key, value]); 11473 } else { 11474 data[index][1] = value; 11475 } 11476 return this; 11477} 11478 11479module.exports = listCacheSet; 11480 11481 11482/***/ }), 11483/* 204 */ 11484/***/ (function(module, exports, __webpack_require__) { 11485 11486var ListCache = __webpack_require__(31); 11487 11488/** 11489 * Removes all key-value entries from the stack. 11490 * 11491 * @private 11492 * @name clear 11493 * @memberOf Stack 11494 */ 11495function stackClear() { 11496 this.__data__ = new ListCache; 11497 this.size = 0; 11498} 11499 11500module.exports = stackClear; 11501 11502 11503/***/ }), 11504/* 205 */ 11505/***/ (function(module, exports) { 11506 11507/** 11508 * Removes `key` and its value from the stack. 11509 * 11510 * @private 11511 * @name delete 11512 * @memberOf Stack 11513 * @param {string} key The key of the value to remove. 11514 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11515 */ 11516function stackDelete(key) { 11517 var data = this.__data__, 11518 result = data['delete'](key); 11519 11520 this.size = data.size; 11521 return result; 11522} 11523 11524module.exports = stackDelete; 11525 11526 11527/***/ }), 11528/* 206 */
vendor: 11,192 bytes, lines 11529-12025
11529/***/ (function(module, exports) { 11530 11531/** 11532 * Gets the stack value for `key`. 11533 * 11534 * @private 11535 * @name get 11536 * @memberOf Stack 11537 * @param {string} key The key of the value to get. 11538 * @returns {*} Returns the entry value. 11539 */ 11540function stackGet(key) { 11541 return this.__data__.get(key); 11542} 11543 11544module.exports = stackGet; 11545 11546 11547/***/ }), 11548/* 207 */ 11549/***/ (function(module, exports) { 11550 11551/** 11552 * Checks if a stack value for `key` exists. 11553 * 11554 * @private 11555 * @name has 11556 * @memberOf Stack 11557 * @param {string} key The key of the entry to check. 11558 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11559 */ 11560function stackHas(key) { 11561 return this.__data__.has(key); 11562} 11563 11564module.exports = stackHas; 11565 11566 11567/***/ }), 11568/* 208 */ 11569/***/ (function(module, exports, __webpack_require__) { 11570 11571var ListCache = __webpack_require__(31), 11572 Map = __webpack_require__(50), 11573 MapCache = __webpack_require__(51); 11574 11575/** Used as the size to enable large array optimizations. */ 11576var LARGE_ARRAY_SIZE = 200; 11577 11578/** 11579 * Sets the stack `key` to `value`. 11580 * 11581 * @private 11582 * @name set 11583 * @memberOf Stack 11584 * @param {string} key The key of the value to set. 11585 * @param {*} value The value to set. 11586 * @returns {Object} Returns the stack cache instance. 11587 */ 11588function stackSet(key, value) { 11589 var data = this.__data__; 11590 if (data instanceof ListCache) { 11591 var pairs = data.__data__; 11592 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 11593 pairs.push([key, value]); 11594 this.size = ++data.size; 11595 return this; 11596 } 11597 data = this.__data__ = new MapCache(pairs); 11598 } 11599 data.set(key, value); 11600 this.size = data.size; 11601 return this; 11602} 11603 11604module.exports = stackSet; 11605 11606 11607/***/ }), 11608/* 209 */ 11609/***/ (function(module, exports, __webpack_require__) { 11610 11611var isFunction = __webpack_require__(98), 11612 isMasked = __webpack_require__(212), 11613 isObject = __webpack_require__(8), 11614 toSource = __webpack_require__(100); 11615 11616/** 11617 * Used to match `RegExp` 11618 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 11619 */ 11620var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 11621 11622/** Used to detect host constructors (Safari). */ 11623var reIsHostCtor = /^\[object .+?Constructor\]$/; 11624 11625/** Used for built-in method references. */ 11626var funcProto = Function.prototype, 11627 objectProto = Object.prototype; 11628 11629/** Used to resolve the decompiled source of functions. */ 11630var funcToString = funcProto.toString; 11631 11632/** Used to check objects for own properties. */ 11633var hasOwnProperty = objectProto.hasOwnProperty; 11634 11635/** Used to detect if a method is native. */ 11636var reIsNative = RegExp('^' + 11637 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 11638 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 11639); 11640 11641/** 11642 * The base implementation of `_.isNative` without bad shim checks. 11643 * 11644 * @private 11645 * @param {*} value The value to check. 11646 * @returns {boolean} Returns `true` if `value` is a native function, 11647 * else `false`. 11648 */ 11649function baseIsNative(value) { 11650 if (!isObject(value) || isMasked(value)) { 11651 return false; 11652 } 11653 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 11654 return pattern.test(toSource(value)); 11655} 11656 11657module.exports = baseIsNative; 11658 11659 11660/***/ }), 11661/* 210 */ 11662/***/ (function(module, exports, __webpack_require__) { 11663 11664var Symbol = __webpack_require__(23); 11665 11666/** Used for built-in method references. */ 11667var objectProto = Object.prototype; 11668 11669/** Used to check objects for own properties. */ 11670var hasOwnProperty = objectProto.hasOwnProperty; 11671 11672/** 11673 * Used to resolve the 11674 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 11675 * of values. 11676 */ 11677var nativeObjectToString = objectProto.toString; 11678 11679/** Built-in value references. */ 11680var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 11681 11682/** 11683 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 11684 * 11685 * @private 11686 * @param {*} value The value to query. 11687 * @returns {string} Returns the raw `toStringTag`. 11688 */ 11689function getRawTag(value) { 11690 var isOwn = hasOwnProperty.call(value, symToStringTag), 11691 tag = value[symToStringTag]; 11692 11693 try { 11694 value[symToStringTag] = undefined; 11695 var unmasked = true; 11696 } catch (e) {} 11697 11698 var result = nativeObjectToString.call(value); 11699 if (unmasked) { 11700 if (isOwn) { 11701 value[symToStringTag] = tag; 11702 } else { 11703 delete value[symToStringTag]; 11704 } 11705 } 11706 return result; 11707} 11708 11709module.exports = getRawTag; 11710 11711 11712/***/ }), 11713/* 211 */ 11714/***/ (function(module, exports) { 11715 11716/** Used for built-in method references. */ 11717var objectProto = Object.prototype; 11718 11719/** 11720 * Used to resolve the 11721 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 11722 * of values. 11723 */ 11724var nativeObjectToString = objectProto.toString; 11725 11726/** 11727 * Converts `value` to a string using `Object.prototype.toString`. 11728 * 11729 * @private 11730 * @param {*} value The value to convert. 11731 * @returns {string} Returns the converted string. 11732 */ 11733function objectToString(value) { 11734 return nativeObjectToString.call(value); 11735} 11736 11737module.exports = objectToString; 11738 11739 11740/***/ }), 11741/* 212 */ 11742/***/ (function(module, exports, __webpack_require__) { 11743 11744var coreJsData = __webpack_require__(213); 11745 11746/** Used to detect methods masquerading as native. */ 11747var maskSrcKey = (function() { 11748 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 11749 return uid ? ('Symbol(src)_1.' + uid) : ''; 11750}()); 11751 11752/** 11753 * Checks if `func` has its source masked. 11754 * 11755 * @private 11756 * @param {Function} func The function to check. 11757 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 11758 */ 11759function isMasked(func) { 11760 return !!maskSrcKey && (maskSrcKey in func); 11761} 11762 11763module.exports = isMasked; 11764 11765 11766/***/ }), 11767/* 213 */ 11768/***/ (function(module, exports, __webpack_require__) { 11769 11770var root = __webpack_require__(6); 11771 11772/** Used to detect overreaching core-js shims. */ 11773var coreJsData = root['__core-js_shared__']; 11774 11775module.exports = coreJsData; 11776 11777 11778/***/ }), 11779/* 214 */ 11780/***/ (function(module, exports) { 11781 11782/** 11783 * Gets the value at `key` of `object`. 11784 * 11785 * @private 11786 * @param {Object} [object] The object to query. 11787 * @param {string} key The key of the property to get. 11788 * @returns {*} Returns the property value. 11789 */ 11790function getValue(object, key) { 11791 return object == null ? undefined : object[key]; 11792} 11793 11794module.exports = getValue; 11795 11796 11797/***/ }), 11798/* 215 */ 11799/***/ (function(module, exports, __webpack_require__) { 11800 11801var Hash = __webpack_require__(216), 11802 ListCache = __webpack_require__(31), 11803 Map = __webpack_require__(50); 11804 11805/** 11806 * Removes all key-value entries from the map. 11807 * 11808 * @private 11809 * @name clear 11810 * @memberOf MapCache 11811 */ 11812function mapCacheClear() { 11813 this.size = 0; 11814 this.__data__ = { 11815 'hash': new Hash, 11816 'map': new (Map || ListCache), 11817 'string': new Hash 11818 }; 11819} 11820 11821module.exports = mapCacheClear; 11822 11823 11824/***/ }), 11825/* 216 */ 11826/***/ (function(module, exports, __webpack_require__) { 11827 11828var hashClear = __webpack_require__(217), 11829 hashDelete = __webpack_require__(218), 11830 hashGet = __webpack_require__(219), 11831 hashHas = __webpack_require__(220), 11832 hashSet = __webpack_require__(221); 11833 11834/** 11835 * Creates a hash object. 11836 * 11837 * @private 11838 * @constructor 11839 * @param {Array} [entries] The key-value pairs to cache. 11840 */ 11841function Hash(entries) { 11842 var index = -1, 11843 length = entries == null ? 0 : entries.length; 11844 11845 this.clear(); 11846 while (++index < length) { 11847 var entry = entries[index]; 11848 this.set(entry[0], entry[1]); 11849 } 11850} 11851 11852// Add methods to `Hash`. 11853Hash.prototype.clear = hashClear; 11854Hash.prototype['delete'] = hashDelete; 11855Hash.prototype.get = hashGet; 11856Hash.prototype.has = hashHas; 11857Hash.prototype.set = hashSet; 11858 11859module.exports = Hash; 11860 11861 11862/***/ }), 11863/* 217 */ 11864/***/ (function(module, exports, __webpack_require__) { 11865 11866var nativeCreate = __webpack_require__(33); 11867 11868/** 11869 * Removes all key-value entries from the hash. 11870 * 11871 * @private 11872 * @name clear 11873 * @memberOf Hash 11874 */ 11875function hashClear() { 11876 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 11877 this.size = 0; 11878} 11879 11880module.exports = hashClear; 11881 11882 11883/***/ }), 11884/* 218 */ 11885/***/ (function(module, exports) { 11886 11887/** 11888 * Removes `key` and its value from the hash. 11889 * 11890 * @private 11891 * @name delete 11892 * @memberOf Hash 11893 * @param {Object} hash The hash to modify. 11894 * @param {string} key The key of the value to remove. 11895 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11896 */ 11897function hashDelete(key) { 11898 var result = this.has(key) && delete this.__data__[key]; 11899 this.size -= result ? 1 : 0; 11900 return result; 11901} 11902 11903module.exports = hashDelete; 11904 11905 11906/***/ }), 11907/* 219 */ 11908/***/ (function(module, exports, __webpack_require__) { 11909 11910var nativeCreate = __webpack_require__(33); 11911 11912/** Used to stand-in for `undefined` hash values. */ 11913var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11914 11915/** Used for built-in method references. */ 11916var objectProto = Object.prototype; 11917 11918/** Used to check objects for own properties. */ 11919var hasOwnProperty = objectProto.hasOwnProperty; 11920 11921/** 11922 * Gets the hash value for `key`. 11923 * 11924 * @private 11925 * @name get 11926 * @memberOf Hash 11927 * @param {string} key The key of the value to get. 11928 * @returns {*} Returns the entry value. 11929 */ 11930function hashGet(key) { 11931 var data = this.__data__; 11932 if (nativeCreate) { 11933 var result = data[key]; 11934 return result === HASH_UNDEFINED ? undefined : result; 11935 } 11936 return hasOwnProperty.call(data, key) ? data[key] : undefined; 11937} 11938 11939module.exports = hashGet; 11940 11941 11942/***/ }), 11943/* 220 */ 11944/***/ (function(module, exports, __webpack_require__) { 11945 11946var nativeCreate = __webpack_require__(33); 11947 11948/** Used for built-in method references. */ 11949var objectProto = Object.prototype; 11950 11951/** Used to check objects for own properties. */ 11952var hasOwnProperty = objectProto.hasOwnProperty; 11953 11954/** 11955 * Checks if a hash value for `key` exists. 11956 * 11957 * @private 11958 * @name has 11959 * @memberOf Hash 11960 * @param {string} key The key of the entry to check. 11961 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11962 */ 11963function hashHas(key) { 11964 var data = this.__data__; 11965 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 11966} 11967 11968module.exports = hashHas; 11969 11970 11971/***/ }), 11972/* 221 */ 11973/***/ (function(module, exports, __webpack_require__) { 11974 11975var nativeCreate = __webpack_require__(33); 11976 11977/** Used to stand-in for `undefined` hash values. */ 11978var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11979 11980/** 11981 * Sets the hash `key` to `value`. 11982 * 11983 * @private 11984 * @name set 11985 * @memberOf Hash 11986 * @param {string} key The key of the value to set. 11987 * @param {*} value The value to set. 11988 * @returns {Object} Returns the hash instance. 11989 */ 11990function hashSet(key, value) { 11991 var data = this.__data__; 11992 this.size += this.has(key) ? 0 : 1; 11993 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 11994 return this; 11995} 11996 11997module.exports = hashSet; 11998 11999 12000/***/ }), 12001/* 222 */ 12002/***/ (function(module, exports, __webpack_require__) { 12003 12004var getMapData = __webpack_require__(34); 12005 12006/** 12007 * Removes `key` and its value from the map. 12008 * 12009 * @private 12010 * @name delete 12011 * @memberOf MapCache 12012 * @param {string} key The key of the value to remove. 12013 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 12014 */ 12015function mapCacheDelete(key) { 12016 var result = getMapData(this, key)['delete'](key); 12017 this.size -= result ? 1 : 0; 12018 return result; 12019} 12020 12021module.exports = mapCacheDelete; 12022 12023 12024/***/ }), 12025/* 223 */
vendor: 13,823 bytes, lines 12026-12546
12026/***/ (function(module, exports) { 12027 12028/** 12029 * Checks if `value` is suitable for use as unique object key. 12030 * 12031 * @private 12032 * @param {*} value The value to check. 12033 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 12034 */ 12035function isKeyable(value) { 12036 var type = typeof value; 12037 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 12038 ? (value !== '__proto__') 12039 : (value === null); 12040} 12041 12042module.exports = isKeyable; 12043 12044 12045/***/ }), 12046/* 224 */ 12047/***/ (function(module, exports, __webpack_require__) { 12048 12049var getMapData = __webpack_require__(34); 12050 12051/** 12052 * Gets the map value for `key`. 12053 * 12054 * @private 12055 * @name get 12056 * @memberOf MapCache 12057 * @param {string} key The key of the value to get. 12058 * @returns {*} Returns the entry value. 12059 */ 12060function mapCacheGet(key) { 12061 return getMapData(this, key).get(key); 12062} 12063 12064module.exports = mapCacheGet; 12065 12066 12067/***/ }), 12068/* 225 */ 12069/***/ (function(module, exports, __webpack_require__) { 12070 12071var getMapData = __webpack_require__(34); 12072 12073/** 12074 * Checks if a map value for `key` exists. 12075 * 12076 * @private 12077 * @name has 12078 * @memberOf MapCache 12079 * @param {string} key The key of the entry to check. 12080 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 12081 */ 12082function mapCacheHas(key) { 12083 return getMapData(this, key).has(key); 12084} 12085 12086module.exports = mapCacheHas; 12087 12088 12089/***/ }), 12090/* 226 */ 12091/***/ (function(module, exports, __webpack_require__) { 12092 12093var getMapData = __webpack_require__(34); 12094 12095/** 12096 * Sets the map `key` to `value`. 12097 * 12098 * @private 12099 * @name set 12100 * @memberOf MapCache 12101 * @param {string} key The key of the value to set. 12102 * @param {*} value The value to set. 12103 * @returns {Object} Returns the map cache instance. 12104 */ 12105function mapCacheSet(key, value) { 12106 var data = getMapData(this, key), 12107 size = data.size; 12108 12109 data.set(key, value); 12110 this.size += data.size == size ? 0 : 1; 12111 return this; 12112} 12113 12114module.exports = mapCacheSet; 12115 12116 12117/***/ }), 12118/* 227 */ 12119/***/ (function(module, exports, __webpack_require__) { 12120 12121var Stack = __webpack_require__(97), 12122 equalArrays = __webpack_require__(102), 12123 equalByTag = __webpack_require__(233), 12124 equalObjects = __webpack_require__(237), 12125 getTag = __webpack_require__(59), 12126 isArray = __webpack_require__(2), 12127 isBuffer = __webpack_require__(53), 12128 isTypedArray = __webpack_require__(55); 12129 12130/** Used to compose bitmasks for value comparisons. */ 12131var COMPARE_PARTIAL_FLAG = 1; 12132 12133/** `Object#toString` result references. */ 12134var argsTag = '[object Arguments]', 12135 arrayTag = '[object Array]', 12136 objectTag = '[object Object]'; 12137 12138/** Used for built-in method references. */ 12139var objectProto = Object.prototype; 12140 12141/** Used to check objects for own properties. */ 12142var hasOwnProperty = objectProto.hasOwnProperty; 12143 12144/** 12145 * A specialized version of `baseIsEqual` for arrays and objects which performs 12146 * deep comparisons and tracks traversed objects enabling objects with circular 12147 * references to be compared. 12148 * 12149 * @private 12150 * @param {Object} object The object to compare. 12151 * @param {Object} other The other object to compare. 12152 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12153 * @param {Function} customizer The function to customize comparisons. 12154 * @param {Function} equalFunc The function to determine equivalents of values. 12155 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 12156 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12157 */ 12158function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 12159 var objIsArr = isArray(object), 12160 othIsArr = isArray(other), 12161 objTag = objIsArr ? arrayTag : getTag(object), 12162 othTag = othIsArr ? arrayTag : getTag(other); 12163 12164 objTag = objTag == argsTag ? objectTag : objTag; 12165 othTag = othTag == argsTag ? objectTag : othTag; 12166 12167 var objIsObj = objTag == objectTag, 12168 othIsObj = othTag == objectTag, 12169 isSameTag = objTag == othTag; 12170 12171 if (isSameTag && isBuffer(object)) { 12172 if (!isBuffer(other)) { 12173 return false; 12174 } 12175 objIsArr = true; 12176 objIsObj = false; 12177 } 12178 if (isSameTag && !objIsObj) { 12179 stack || (stack = new Stack); 12180 return (objIsArr || isTypedArray(object)) 12181 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 12182 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 12183 } 12184 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 12185 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 12186 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 12187 12188 if (objIsWrapped || othIsWrapped) { 12189 var objUnwrapped = objIsWrapped ? object.value() : object, 12190 othUnwrapped = othIsWrapped ? other.value() : other; 12191 12192 stack || (stack = new Stack); 12193 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 12194 } 12195 } 12196 if (!isSameTag) { 12197 return false; 12198 } 12199 stack || (stack = new Stack); 12200 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 12201} 12202 12203module.exports = baseIsEqualDeep; 12204 12205 12206/***/ }), 12207/* 228 */ 12208/***/ (function(module, exports, __webpack_require__) { 12209 12210var MapCache = __webpack_require__(51), 12211 setCacheAdd = __webpack_require__(229), 12212 setCacheHas = __webpack_require__(230); 12213 12214/** 12215 * 12216 * Creates an array cache object to store unique values. 12217 * 12218 * @private 12219 * @constructor 12220 * @param {Array} [values] The values to cache. 12221 */ 12222function SetCache(values) { 12223 var index = -1, 12224 length = values == null ? 0 : values.length; 12225 12226 this.__data__ = new MapCache; 12227 while (++index < length) { 12228 this.add(values[index]); 12229 } 12230} 12231 12232// Add methods to `SetCache`. 12233SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 12234SetCache.prototype.has = setCacheHas; 12235 12236module.exports = SetCache; 12237 12238 12239/***/ }), 12240/* 229 */ 12241/***/ (function(module, exports) { 12242 12243/** Used to stand-in for `undefined` hash values. */ 12244var HASH_UNDEFINED = '__lodash_hash_undefined__'; 12245 12246/** 12247 * Adds `value` to the array cache. 12248 * 12249 * @private 12250 * @name add 12251 * @memberOf SetCache 12252 * @alias push 12253 * @param {*} value The value to cache. 12254 * @returns {Object} Returns the cache instance. 12255 */ 12256function setCacheAdd(value) { 12257 this.__data__.set(value, HASH_UNDEFINED); 12258 return this; 12259} 12260 12261module.exports = setCacheAdd; 12262 12263 12264/***/ }), 12265/* 230 */ 12266/***/ (function(module, exports) { 12267 12268/** 12269 * Checks if `value` is in the array cache. 12270 * 12271 * @private 12272 * @name has 12273 * @memberOf SetCache 12274 * @param {*} value The value to search for. 12275 * @returns {number} Returns `true` if `value` is found, else `false`. 12276 */ 12277function setCacheHas(value) { 12278 return this.__data__.has(value); 12279} 12280 12281module.exports = setCacheHas; 12282 12283 12284/***/ }), 12285/* 231 */ 12286/***/ (function(module, exports) { 12287 12288/** 12289 * A specialized version of `_.some` for arrays without support for iteratee 12290 * shorthands. 12291 * 12292 * @private 12293 * @param {Array} [array] The array to iterate over. 12294 * @param {Function} predicate The function invoked per iteration. 12295 * @returns {boolean} Returns `true` if any element passes the predicate check, 12296 * else `false`. 12297 */ 12298function arraySome(array, predicate) { 12299 var index = -1, 12300 length = array == null ? 0 : array.length; 12301 12302 while (++index < length) { 12303 if (predicate(array[index], index, array)) { 12304 return true; 12305 } 12306 } 12307 return false; 12308} 12309 12310module.exports = arraySome; 12311 12312 12313/***/ }), 12314/* 232 */ 12315/***/ (function(module, exports) { 12316 12317/** 12318 * Checks if a `cache` value for `key` exists. 12319 * 12320 * @private 12321 * @param {Object} cache The cache to query. 12322 * @param {string} key The key of the entry to check. 12323 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 12324 */ 12325function cacheHas(cache, key) { 12326 return cache.has(key); 12327} 12328 12329module.exports = cacheHas; 12330 12331 12332/***/ }), 12333/* 233 */ 12334/***/ (function(module, exports, __webpack_require__) { 12335 12336var Symbol = __webpack_require__(23), 12337 Uint8Array = __webpack_require__(234), 12338 eq = __webpack_require__(49), 12339 equalArrays = __webpack_require__(102), 12340 mapToArray = __webpack_require__(235), 12341 setToArray = __webpack_require__(236); 12342 12343/** Used to compose bitmasks for value comparisons. */ 12344var COMPARE_PARTIAL_FLAG = 1, 12345 COMPARE_UNORDERED_FLAG = 2; 12346 12347/** `Object#toString` result references. */ 12348var boolTag = '[object Boolean]', 12349 dateTag = '[object Date]', 12350 errorTag = '[object Error]', 12351 mapTag = '[object Map]', 12352 numberTag = '[object Number]', 12353 regexpTag = '[object RegExp]', 12354 setTag = '[object Set]', 12355 stringTag = '[object String]', 12356 symbolTag = '[object Symbol]'; 12357 12358var arrayBufferTag = '[object ArrayBuffer]', 12359 dataViewTag = '[object DataView]'; 12360 12361/** Used to convert symbols to primitives and strings. */ 12362var symbolProto = Symbol ? Symbol.prototype : undefined, 12363 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; 12364 12365/** 12366 * A specialized version of `baseIsEqualDeep` for comparing objects of 12367 * the same `toStringTag`. 12368 * 12369 * **Note:** This function only supports comparing values with tags of 12370 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 12371 * 12372 * @private 12373 * @param {Object} object The object to compare. 12374 * @param {Object} other The other object to compare. 12375 * @param {string} tag The `toStringTag` of the objects to compare. 12376 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12377 * @param {Function} customizer The function to customize comparisons. 12378 * @param {Function} equalFunc The function to determine equivalents of values. 12379 * @param {Object} stack Tracks traversed `object` and `other` objects. 12380 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12381 */ 12382function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 12383 switch (tag) { 12384 case dataViewTag: 12385 if ((object.byteLength != other.byteLength) || 12386 (object.byteOffset != other.byteOffset)) { 12387 return false; 12388 } 12389 object = object.buffer; 12390 other = other.buffer; 12391 12392 case arrayBufferTag: 12393 if ((object.byteLength != other.byteLength) || 12394 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 12395 return false; 12396 } 12397 return true; 12398 12399 case boolTag: 12400 case dateTag: 12401 case numberTag: 12402 // Coerce booleans to `1` or `0` and dates to milliseconds. 12403 // Invalid dates are coerced to `NaN`. 12404 return eq(+object, +other); 12405 12406 case errorTag: 12407 return object.name == other.name && object.message == other.message; 12408 12409 case regexpTag: 12410 case stringTag: 12411 // Coerce regexes to strings and treat strings, primitives and objects, 12412 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 12413 // for more details. 12414 return object == (other + ''); 12415 12416 case mapTag: 12417 var convert = mapToArray; 12418 12419 case setTag: 12420 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 12421 convert || (convert = setToArray); 12422 12423 if (object.size != other.size && !isPartial) { 12424 return false; 12425 } 12426 // Assume cyclic values are equal. 12427 var stacked = stack.get(object); 12428 if (stacked) { 12429 return stacked == other; 12430 } 12431 bitmask |= COMPARE_UNORDERED_FLAG; 12432 12433 // Recursively compare objects (susceptible to call stack limits). 12434 stack.set(object, other); 12435 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 12436 stack['delete'](object); 12437 return result; 12438 12439 case symbolTag: 12440 if (symbolValueOf) { 12441 return symbolValueOf.call(object) == symbolValueOf.call(other); 12442 } 12443 } 12444 return false; 12445} 12446 12447module.exports = equalByTag; 12448 12449 12450/***/ }), 12451/* 234 */ 12452/***/ (function(module, exports, __webpack_require__) { 12453 12454var root = __webpack_require__(6); 12455 12456/** Built-in value references. */ 12457var Uint8Array = root.Uint8Array; 12458 12459module.exports = Uint8Array; 12460 12461 12462/***/ }), 12463/* 235 */ 12464/***/ (function(module, exports) { 12465 12466/** 12467 * Converts `map` to its key-value pairs. 12468 * 12469 * @private 12470 * @param {Object} map The map to convert. 12471 * @returns {Array} Returns the key-value pairs. 12472 */ 12473function mapToArray(map) { 12474 var index = -1, 12475 result = Array(map.size); 12476 12477 map.forEach(function(value, key) { 12478 result[++index] = [key, value]; 12479 }); 12480 return result; 12481} 12482 12483module.exports = mapToArray; 12484 12485 12486/***/ }), 12487/* 236 */ 12488/***/ (function(module, exports) { 12489 12490/** 12491 * Converts `set` to an array of its values. 12492 * 12493 * @private 12494 * @param {Object} set The set to convert. 12495 * @returns {Array} Returns the values. 12496 */ 12497function setToArray(set) { 12498 var index = -1, 12499 result = Array(set.size); 12500 12501 set.forEach(function(value) { 12502 result[++index] = value; 12503 }); 12504 return result; 12505} 12506 12507module.exports = setToArray; 12508 12509 12510/***/ }), 12511/* 237 */ 12512/***/ (function(module, exports, __webpack_require__) { 12513 12514var getAllKeys = __webpack_require__(238); 12515 12516/** Used to compose bitmasks for value comparisons. */ 12517var COMPARE_PARTIAL_FLAG = 1; 12518 12519/** Used for built-in method references. */ 12520var objectProto = Object.prototype; 12521 12522/** Used to check objects for own properties. */ 12523var hasOwnProperty = objectProto.hasOwnProperty; 12524 12525/** 12526 * A specialized version of `baseIsEqualDeep` for objects with support for 12527 * partial deep comparisons. 12528 * 12529 * @private 12530 * @param {Object} object The object to compare. 12531 * @param {Object} other The other object to compare. 12532 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 12533 * @param {Function} customizer The function to customize comparisons. 12534 * @param {Function} equalFunc The function to determine equivalents of values. 12535 * @param {Object} stack Tracks traversed `object` and `other` objects. 12536 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 12537 */ 12538function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 12539 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 12540 objProps = getAllKeys(object), 12541 objLength = objProps.length, 12542 othProps = getAllKeys(other), 12543 othLength = othProps.length; 12544 12545 if (objLength != othLength && !isPartial) { 12546 return false;
vendor: 1,075 bytes, lines 12547-12581
12547 } 12548 var index = objLength; 12549 while (index--) { 12550 var key = objProps[index]; 12551 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 12552 return false; 12553 } 12554 } 12555 // Check that cyclic values are equal. 12556 var objStacked = stack.get(object); 12557 var othStacked = stack.get(other); 12558 if (objStacked && othStacked) { 12559 return objStacked == other && othStacked == object; 12560 } 12561 var result = true; 12562 stack.set(object, other); 12563 stack.set(other, object); 12564 12565 var skipCtor = isPartial; 12566 while (++index < objLength) { 12567 key = objProps[index]; 12568 var objValue = object[key], 12569 othValue = other[key]; 12570 12571 if (customizer) { 12572 var compared = isPartial 12573 ? customizer(othValue, objValue, key, other, object, stack) 12574 : customizer(objValue, othValue, key, object, other, stack); 12575 } 12576 // Recursively compare objects (susceptible to call stack limits). 12577 if (!(compared === undefined 12578 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 12579 : compared 12580 )) { 12581 result = false;
vendor: 10,628 bytes, lines 12582-12989
12582 break; 12583 } 12584 skipCtor || (skipCtor = key == 'constructor'); 12585 } 12586 if (result && !skipCtor) { 12587 var objCtor = object.constructor, 12588 othCtor = other.constructor; 12589 12590 // Non `Object` object instances with different constructors are not equal. 12591 if (objCtor != othCtor && 12592 ('constructor' in object && 'constructor' in other) && 12593 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 12594 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 12595 result = false; 12596 } 12597 } 12598 stack['delete'](object); 12599 stack['delete'](other); 12600 return result; 12601} 12602 12603module.exports = equalObjects; 12604 12605 12606/***/ }), 12607/* 238 */ 12608/***/ (function(module, exports, __webpack_require__) { 12609 12610var baseGetAllKeys = __webpack_require__(103), 12611 getSymbols = __webpack_require__(104), 12612 keys = __webpack_require__(35); 12613 12614/** 12615 * Creates an array of own enumerable property names and symbols of `object`. 12616 * 12617 * @private 12618 * @param {Object} object The object to query. 12619 * @returns {Array} Returns the array of property names and symbols. 12620 */ 12621function getAllKeys(object) { 12622 return baseGetAllKeys(object, keys, getSymbols); 12623} 12624 12625module.exports = getAllKeys; 12626 12627 12628/***/ }), 12629/* 239 */ 12630/***/ (function(module, exports) { 12631 12632/** 12633 * A specialized version of `_.filter` for arrays without support for 12634 * iteratee shorthands. 12635 * 12636 * @private 12637 * @param {Array} [array] The array to iterate over. 12638 * @param {Function} predicate The function invoked per iteration. 12639 * @returns {Array} Returns the new filtered array. 12640 */ 12641function arrayFilter(array, predicate) { 12642 var index = -1, 12643 length = array == null ? 0 : array.length, 12644 resIndex = 0, 12645 result = []; 12646 12647 while (++index < length) { 12648 var value = array[index]; 12649 if (predicate(value, index, array)) { 12650 result[resIndex++] = value; 12651 } 12652 } 12653 return result; 12654} 12655 12656module.exports = arrayFilter; 12657 12658 12659/***/ }), 12660/* 240 */ 12661/***/ (function(module, exports) { 12662 12663/** 12664 * The base implementation of `_.times` without support for iteratee shorthands 12665 * or max array length checks. 12666 * 12667 * @private 12668 * @param {number} n The number of times to invoke `iteratee`. 12669 * @param {Function} iteratee The function invoked per iteration. 12670 * @returns {Array} Returns the array of results. 12671 */ 12672function baseTimes(n, iteratee) { 12673 var index = -1, 12674 result = Array(n); 12675 12676 while (++index < n) { 12677 result[index] = iteratee(index); 12678 } 12679 return result; 12680} 12681 12682module.exports = baseTimes; 12683 12684 12685/***/ }), 12686/* 241 */ 12687/***/ (function(module, exports, __webpack_require__) { 12688 12689var baseGetTag = __webpack_require__(16), 12690 isObjectLike = __webpack_require__(12); 12691 12692/** `Object#toString` result references. */ 12693var argsTag = '[object Arguments]'; 12694 12695/** 12696 * The base implementation of `_.isArguments`. 12697 * 12698 * @private 12699 * @param {*} value The value to check. 12700 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 12701 */ 12702function baseIsArguments(value) { 12703 return isObjectLike(value) && baseGetTag(value) == argsTag; 12704} 12705 12706module.exports = baseIsArguments; 12707 12708 12709/***/ }), 12710/* 242 */ 12711/***/ (function(module, exports) { 12712 12713/** 12714 * This method returns `false`. 12715 * 12716 * @static 12717 * @memberOf _ 12718 * @since 4.13.0 12719 * @category Util 12720 * @returns {boolean} Returns `false`. 12721 * @example 12722 * 12723 * _.times(2, _.stubFalse); 12724 * // => [false, false] 12725 */ 12726function stubFalse() { 12727 return false; 12728} 12729 12730module.exports = stubFalse; 12731 12732 12733/***/ }), 12734/* 243 */ 12735/***/ (function(module, exports, __webpack_require__) { 12736 12737var baseGetTag = __webpack_require__(16), 12738 isLength = __webpack_require__(56), 12739 isObjectLike = __webpack_require__(12); 12740 12741/** `Object#toString` result references. */ 12742var argsTag = '[object Arguments]', 12743 arrayTag = '[object Array]', 12744 boolTag = '[object Boolean]', 12745 dateTag = '[object Date]', 12746 errorTag = '[object Error]', 12747 funcTag = '[object Function]', 12748 mapTag = '[object Map]', 12749 numberTag = '[object Number]', 12750 objectTag = '[object Object]', 12751 regexpTag = '[object RegExp]', 12752 setTag = '[object Set]', 12753 stringTag = '[object String]', 12754 weakMapTag = '[object WeakMap]'; 12755 12756var arrayBufferTag = '[object ArrayBuffer]', 12757 dataViewTag = '[object DataView]', 12758 float32Tag = '[object Float32Array]', 12759 float64Tag = '[object Float64Array]', 12760 int8Tag = '[object Int8Array]', 12761 int16Tag = '[object Int16Array]', 12762 int32Tag = '[object Int32Array]', 12763 uint8Tag = '[object Uint8Array]', 12764 uint8ClampedTag = '[object Uint8ClampedArray]', 12765 uint16Tag = '[object Uint16Array]', 12766 uint32Tag = '[object Uint32Array]'; 12767 12768/** Used to identify `toStringTag` values of typed arrays. */ 12769var typedArrayTags = {}; 12770typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 12771typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 12772typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 12773typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 12774typedArrayTags[uint32Tag] = true; 12775typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 12776typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = 12777typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 12778typedArrayTags[errorTag] = typedArrayTags[funcTag] = 12779typedArrayTags[mapTag] = typedArrayTags[numberTag] = 12780typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 12781typedArrayTags[setTag] = typedArrayTags[stringTag] = 12782typedArrayTags[weakMapTag] = false; 12783 12784/** 12785 * The base implementation of `_.isTypedArray` without Node.js optimizations. 12786 * 12787 * @private 12788 * @param {*} value The value to check. 12789 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 12790 */ 12791function baseIsTypedArray(value) { 12792 return isObjectLike(value) && 12793 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 12794} 12795 12796module.exports = baseIsTypedArray; 12797 12798 12799/***/ }), 12800/* 244 */ 12801/***/ (function(module, exports) { 12802 12803/** 12804 * The base implementation of `_.unary` without support for storing metadata. 12805 * 12806 * @private 12807 * @param {Function} func The function to cap arguments for. 12808 * @returns {Function} Returns the new capped function. 12809 */ 12810function baseUnary(func) { 12811 return function(value) { 12812 return func(value); 12813 }; 12814} 12815 12816module.exports = baseUnary; 12817 12818 12819/***/ }), 12820/* 245 */ 12821/***/ (function(module, exports, __webpack_require__) { 12822 12823/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(99); 12824 12825/** Detect free variable `exports`. */ 12826var freeExports = true && exports && !exports.nodeType && exports; 12827 12828/** Detect free variable `module`. */ 12829var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 12830 12831/** Detect the popular CommonJS extension `module.exports`. */ 12832var moduleExports = freeModule && freeModule.exports === freeExports; 12833 12834/** Detect free variable `process` from Node.js. */ 12835var freeProcess = moduleExports && freeGlobal.process; 12836 12837/** Used to access faster Node.js helpers. */ 12838var nodeUtil = (function() { 12839 try { 12840 // Use `util.types` for Node.js 10+. 12841 var types = freeModule && freeModule.require && freeModule.require('util').types; 12842 12843 if (types) { 12844 return types; 12845 } 12846 12847 // Legacy `process.binding('util')` for Node.js < 10. 12848 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 12849 } catch (e) {} 12850}()); 12851 12852module.exports = nodeUtil; 12853 12854/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(107)(module))) 12855 12856/***/ }), 12857/* 246 */ 12858/***/ (function(module, exports, __webpack_require__) { 12859 12860var overArg = __webpack_require__(108); 12861 12862/* Built-in method references for those with the same name as other `lodash` methods. */ 12863var nativeKeys = overArg(Object.keys, Object); 12864 12865module.exports = nativeKeys; 12866 12867 12868/***/ }), 12869/* 247 */ 12870/***/ (function(module, exports, __webpack_require__) { 12871 12872var getNative = __webpack_require__(11), 12873 root = __webpack_require__(6); 12874 12875/* Built-in method references that are verified to be native. */ 12876var DataView = getNative(root, 'DataView'); 12877 12878module.exports = DataView; 12879 12880 12881/***/ }), 12882/* 248 */ 12883/***/ (function(module, exports, __webpack_require__) { 12884 12885var getNative = __webpack_require__(11), 12886 root = __webpack_require__(6); 12887 12888/* Built-in method references that are verified to be native. */ 12889var Promise = getNative(root, 'Promise'); 12890 12891module.exports = Promise; 12892 12893 12894/***/ }), 12895/* 249 */ 12896/***/ (function(module, exports, __webpack_require__) { 12897 12898var getNative = __webpack_require__(11), 12899 root = __webpack_require__(6); 12900 12901/* Built-in method references that are verified to be native. */ 12902var Set = getNative(root, 'Set'); 12903 12904module.exports = Set; 12905 12906 12907/***/ }), 12908/* 250 */ 12909/***/ (function(module, exports, __webpack_require__) { 12910 12911var isStrictComparable = __webpack_require__(110), 12912 keys = __webpack_require__(35); 12913 12914/** 12915 * Gets the property names, values, and compare flags of `object`. 12916 * 12917 * @private 12918 * @param {Object} object The object to query. 12919 * @returns {Array} Returns the match data of `object`. 12920 */ 12921function getMatchData(object) { 12922 var result = keys(object), 12923 length = result.length; 12924 12925 while (length--) { 12926 var key = result[length], 12927 value = object[key]; 12928 12929 result[length] = [key, value, isStrictComparable(value)]; 12930 } 12931 return result; 12932} 12933 12934module.exports = getMatchData; 12935 12936 12937/***/ }), 12938/* 251 */ 12939/***/ (function(module, exports, __webpack_require__) { 12940 12941var baseIsEqual = __webpack_require__(101), 12942 get = __webpack_require__(60), 12943 hasIn = __webpack_require__(257), 12944 isKey = __webpack_require__(62), 12945 isStrictComparable = __webpack_require__(110), 12946 matchesStrictComparable = __webpack_require__(111), 12947 toKey = __webpack_require__(24); 12948 12949/** Used to compose bitmasks for value comparisons. */ 12950var COMPARE_PARTIAL_FLAG = 1, 12951 COMPARE_UNORDERED_FLAG = 2; 12952 12953/** 12954 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 12955 * 12956 * @private 12957 * @param {string} path The path of the property to get. 12958 * @param {*} srcValue The value to match. 12959 * @returns {Function} Returns the new spec function. 12960 */ 12961function baseMatchesProperty(path, srcValue) { 12962 if (isKey(path) && isStrictComparable(srcValue)) { 12963 return matchesStrictComparable(toKey(path), srcValue); 12964 } 12965 return function(object) { 12966 var objValue = get(object, path); 12967 return (objValue === undefined && objValue === srcValue) 12968 ? hasIn(object, path) 12969 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 12970 }; 12971} 12972 12973module.exports = baseMatchesProperty; 12974 12975 12976/***/ }), 12977/* 252 */ 12978/***/ (function(module, exports, __webpack_require__) { 12979 12980var memoizeCapped = __webpack_require__(253); 12981 12982/** Used to match property names within property paths. */ 12983var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 12984 12985/** Used to match backslashes in property paths. */ 12986var reEscapeChar = /\\(\\)?/g; 12987 12988/** 12989 * Converts `string` to a property path array.
vendor: 5,053 bytes, lines 12990-13183
12990 * 12991 * @private 12992 * @param {string} string The string to convert. 12993 * @returns {Array} Returns the property path array. 12994 */ 12995var stringToPath = memoizeCapped(function(string) { 12996 var result = []; 12997 if (string.charCodeAt(0) === 46 /* . */) { 12998 result.push(''); 12999 } 13000 string.replace(rePropName, function(match, number, quote, subString) { 13001 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 13002 }); 13003 return result; 13004}); 13005 13006module.exports = stringToPath; 13007 13008 13009/***/ }), 13010/* 253 */ 13011/***/ (function(module, exports, __webpack_require__) { 13012 13013var memoize = __webpack_require__(254); 13014 13015/** Used as the maximum memoize cache size. */ 13016var MAX_MEMOIZE_SIZE = 500; 13017 13018/** 13019 * A specialized version of `_.memoize` which clears the memoized function's 13020 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 13021 * 13022 * @private 13023 * @param {Function} func The function to have its output memoized. 13024 * @returns {Function} Returns the new memoized function. 13025 */ 13026function memoizeCapped(func) { 13027 var result = memoize(func, function(key) { 13028 if (cache.size === MAX_MEMOIZE_SIZE) { 13029 cache.clear(); 13030 } 13031 return key; 13032 }); 13033 13034 var cache = result.cache; 13035 return result; 13036} 13037 13038module.exports = memoizeCapped; 13039 13040 13041/***/ }), 13042/* 254 */ 13043/***/ (function(module, exports, __webpack_require__) { 13044 13045var MapCache = __webpack_require__(51); 13046 13047/** Error message constants. */ 13048var FUNC_ERROR_TEXT = 'Expected a function'; 13049 13050/** 13051 * Creates a function that memoizes the result of `func`. If `resolver` is 13052 * provided, it determines the cache key for storing the result based on the 13053 * arguments provided to the memoized function. By default, the first argument 13054 * provided to the memoized function is used as the map cache key. The `func` 13055 * is invoked with the `this` binding of the memoized function. 13056 * 13057 * **Note:** The cache is exposed as the `cache` property on the memoized 13058 * function. Its creation may be customized by replacing the `_.memoize.Cache` 13059 * constructor with one whose instances implement the 13060 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 13061 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 13062 * 13063 * @static 13064 * @memberOf _ 13065 * @since 0.1.0 13066 * @category Function 13067 * @param {Function} func The function to have its output memoized. 13068 * @param {Function} [resolver] The function to resolve the cache key. 13069 * @returns {Function} Returns the new memoized function. 13070 * @example 13071 * 13072 * var object = { 'a': 1, 'b': 2 }; 13073 * var other = { 'c': 3, 'd': 4 }; 13074 * 13075 * var values = _.memoize(_.values); 13076 * values(object); 13077 * // => [1, 2] 13078 * 13079 * values(other); 13080 * // => [3, 4] 13081 * 13082 * object.a = 2; 13083 * values(object); 13084 * // => [1, 2] 13085 * 13086 * // Modify the result cache. 13087 * values.cache.set(object, ['a', 'b']); 13088 * values(object); 13089 * // => ['a', 'b'] 13090 * 13091 * // Replace `_.memoize.Cache`. 13092 * _.memoize.Cache = WeakMap; 13093 */ 13094function memoize(func, resolver) { 13095 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 13096 throw new TypeError(FUNC_ERROR_TEXT); 13097 } 13098 var memoized = function() { 13099 var args = arguments, 13100 key = resolver ? resolver.apply(this, args) : args[0], 13101 cache = memoized.cache; 13102 13103 if (cache.has(key)) { 13104 return cache.get(key); 13105 } 13106 var result = func.apply(this, args); 13107 memoized.cache = cache.set(key, result) || cache; 13108 return result; 13109 }; 13110 memoized.cache = new (memoize.Cache || MapCache); 13111 return memoized; 13112} 13113 13114// Expose `MapCache`. 13115memoize.Cache = MapCache; 13116 13117module.exports = memoize; 13118 13119 13120/***/ }), 13121/* 255 */ 13122/***/ (function(module, exports, __webpack_require__) { 13123 13124var baseToString = __webpack_require__(256); 13125 13126/** 13127 * Converts `value` to a string. An empty string is returned for `null` 13128 * and `undefined` values. The sign of `-0` is preserved. 13129 * 13130 * @static 13131 * @memberOf _ 13132 * @since 4.0.0 13133 * @category Lang 13134 * @param {*} value The value to convert. 13135 * @returns {string} Returns the converted string. 13136 * @example 13137 * 13138 * _.toString(null); 13139 * // => '' 13140 * 13141 * _.toString(-0); 13142 * // => '-0' 13143 * 13144 * _.toString([1, 2, 3]); 13145 * // => '1,2,3' 13146 */ 13147function toString(value) { 13148 return value == null ? '' : baseToString(value); 13149} 13150 13151module.exports = toString; 13152 13153 13154/***/ }), 13155/* 256 */ 13156/***/ (function(module, exports, __webpack_require__) { 13157 13158var Symbol = __webpack_require__(23), 13159 arrayMap = __webpack_require__(112), 13160 isArray = __webpack_require__(2), 13161 isSymbol = __webpack_require__(38); 13162 13163/** Used as references for various `Number` constants. */ 13164var INFINITY = 1 / 0; 13165 13166/** Used to convert symbols to primitives and strings. */ 13167var symbolProto = Symbol ? Symbol.prototype : undefined, 13168 symbolToString = symbolProto ? symbolProto.toString : undefined; 13169 13170/** 13171 * The base implementation of `_.toString` which doesn't convert nullish 13172 * values to empty strings. 13173 * 13174 * @private 13175 * @param {*} value The value to process. 13176 * @returns {string} Returns the string. 13177 */ 13178function baseToString(value) { 13179 // Exit early for strings to avoid a performance hit in some environments. 13180 if (typeof value == 'string') { 13181 return value; 13182 } 13183 if (isArray(value)) {
vendor: 2,364 bytes, lines 13184-13281
13184 // Recursively convert values (susceptible to call stack limits). 13185 return arrayMap(value, baseToString) + ''; 13186 } 13187 if (isSymbol(value)) { 13188 return symbolToString ? symbolToString.call(value) : ''; 13189 } 13190 var result = (value + ''); 13191 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 13192} 13193 13194module.exports = baseToString; 13195 13196 13197/***/ }), 13198/* 257 */ 13199/***/ (function(module, exports, __webpack_require__) { 13200 13201var baseHasIn = __webpack_require__(258), 13202 hasPath = __webpack_require__(259); 13203 13204/** 13205 * Checks if `path` is a direct or inherited property of `object`. 13206 * 13207 * @static 13208 * @memberOf _ 13209 * @since 4.0.0 13210 * @category Object 13211 * @param {Object} object The object to query. 13212 * @param {Array|string} path The path to check. 13213 * @returns {boolean} Returns `true` if `path` exists, else `false`. 13214 * @example 13215 * 13216 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 13217 * 13218 * _.hasIn(object, 'a'); 13219 * // => true 13220 * 13221 * _.hasIn(object, 'a.b'); 13222 * // => true 13223 * 13224 * _.hasIn(object, ['a', 'b']); 13225 * // => true 13226 * 13227 * _.hasIn(object, 'b'); 13228 * // => false 13229 */ 13230function hasIn(object, path) { 13231 return object != null && hasPath(object, path, baseHasIn); 13232} 13233 13234module.exports = hasIn; 13235 13236 13237/***/ }), 13238/* 258 */ 13239/***/ (function(module, exports) { 13240 13241/** 13242 * The base implementation of `_.hasIn` without support for deep paths. 13243 * 13244 * @private 13245 * @param {Object} [object] The object to query. 13246 * @param {Array|string} key The key to check. 13247 * @returns {boolean} Returns `true` if `key` exists, else `false`. 13248 */ 13249function baseHasIn(object, key) { 13250 return object != null && key in Object(object); 13251} 13252 13253module.exports = baseHasIn; 13254 13255 13256/***/ }), 13257/* 259 */ 13258/***/ (function(module, exports, __webpack_require__) { 13259 13260var castPath = __webpack_require__(37), 13261 isArguments = __webpack_require__(36), 13262 isArray = __webpack_require__(2), 13263 isIndex = __webpack_require__(54), 13264 isLength = __webpack_require__(56), 13265 toKey = __webpack_require__(24); 13266 13267/** 13268 * Checks if `path` exists on `object`. 13269 * 13270 * @private 13271 * @param {Object} object The object to query. 13272 * @param {Array|string} path The path to check. 13273 * @param {Function} hasFunc The function to check properties. 13274 * @returns {boolean} Returns `true` if `path` exists, else `false`. 13275 */ 13276function hasPath(object, path, hasFunc) { 13277 path = castPath(path, object); 13278 13279 var index = -1, 13280 length = path.length, 13281 result = false;
vendor: 4,842 bytes, lines 13282-13487
13282 13283 while (++index < length) { 13284 var key = toKey(path[index]); 13285 if (!(result = object != null && hasFunc(object, key))) { 13286 break; 13287 } 13288 object = object[key]; 13289 } 13290 if (result || ++index != length) { 13291 return result; 13292 } 13293 length = object == null ? 0 : object.length; 13294 return !!length && isLength(length) && isIndex(key, length) && 13295 (isArray(object) || isArguments(object)); 13296} 13297 13298module.exports = hasPath; 13299 13300 13301/***/ }), 13302/* 260 */ 13303/***/ (function(module, exports, __webpack_require__) { 13304 13305var baseProperty = __webpack_require__(113), 13306 basePropertyDeep = __webpack_require__(261), 13307 isKey = __webpack_require__(62), 13308 toKey = __webpack_require__(24); 13309 13310/** 13311 * Creates a function that returns the value at `path` of a given object. 13312 * 13313 * @static 13314 * @memberOf _ 13315 * @since 2.4.0 13316 * @category Util 13317 * @param {Array|string} path The path of the property to get. 13318 * @returns {Function} Returns the new accessor function. 13319 * @example 13320 * 13321 * var objects = [ 13322 * { 'a': { 'b': 2 } }, 13323 * { 'a': { 'b': 1 } } 13324 * ]; 13325 * 13326 * _.map(objects, _.property('a.b')); 13327 * // => [2, 1] 13328 * 13329 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 13330 * // => [1, 2] 13331 */ 13332function property(path) { 13333 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 13334} 13335 13336module.exports = property; 13337 13338 13339/***/ }), 13340/* 261 */ 13341/***/ (function(module, exports, __webpack_require__) { 13342 13343var baseGet = __webpack_require__(61); 13344 13345/** 13346 * A specialized version of `baseProperty` which supports deep paths. 13347 * 13348 * @private 13349 * @param {Array|string} path The path of the property to get. 13350 * @returns {Function} Returns the new accessor function. 13351 */ 13352function basePropertyDeep(path) { 13353 return function(object) { 13354 return baseGet(object, path); 13355 }; 13356} 13357 13358module.exports = basePropertyDeep; 13359 13360 13361/***/ }), 13362/* 262 */ 13363/***/ (function(module, exports, __webpack_require__) { 13364 13365var baseFindIndex = __webpack_require__(114), 13366 baseIteratee = __webpack_require__(10), 13367 toInteger = __webpack_require__(115); 13368 13369/* Built-in method references for those with the same name as other `lodash` methods. */ 13370var nativeMax = Math.max; 13371 13372/** 13373 * This method is like `_.find` except that it returns the index of the first 13374 * element `predicate` returns truthy for instead of the element itself. 13375 * 13376 * @static 13377 * @memberOf _ 13378 * @since 1.1.0 13379 * @category Array 13380 * @param {Array} array The array to inspect. 13381 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13382 * @param {number} [fromIndex=0] The index to search from. 13383 * @returns {number} Returns the index of the found element, else `-1`. 13384 * @example 13385 * 13386 * var users = [ 13387 * { 'user': 'barney', 'active': false }, 13388 * { 'user': 'fred', 'active': false }, 13389 * { 'user': 'pebbles', 'active': true } 13390 * ]; 13391 * 13392 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 13393 * // => 0 13394 * 13395 * // The `_.matches` iteratee shorthand. 13396 * _.findIndex(users, { 'user': 'fred', 'active': false }); 13397 * // => 1 13398 * 13399 * // The `_.matchesProperty` iteratee shorthand. 13400 * _.findIndex(users, ['active', false]); 13401 * // => 0 13402 * 13403 * // The `_.property` iteratee shorthand. 13404 * _.findIndex(users, 'active'); 13405 * // => 2 13406 */ 13407function findIndex(array, predicate, fromIndex) { 13408 var length = array == null ? 0 : array.length; 13409 if (!length) { 13410 return -1; 13411 } 13412 var index = fromIndex == null ? 0 : toInteger(fromIndex); 13413 if (index < 0) { 13414 index = nativeMax(length + index, 0); 13415 } 13416 return baseFindIndex(array, baseIteratee(predicate, 3), index); 13417} 13418 13419module.exports = findIndex; 13420 13421 13422/***/ }), 13423/* 263 */ 13424/***/ (function(module, exports, __webpack_require__) { 13425 13426var toNumber = __webpack_require__(64); 13427 13428/** Used as references for various `Number` constants. */ 13429var INFINITY = 1 / 0, 13430 MAX_INTEGER = 1.7976931348623157e+308; 13431 13432/** 13433 * Converts `value` to a finite number. 13434 * 13435 * @static 13436 * @memberOf _ 13437 * @since 4.12.0 13438 * @category Lang 13439 * @param {*} value The value to convert. 13440 * @returns {number} Returns the converted number. 13441 * @example 13442 * 13443 * _.toFinite(3.2); 13444 * // => 3.2 13445 * 13446 * _.toFinite(Number.MIN_VALUE); 13447 * // => 5e-324 13448 * 13449 * _.toFinite(Infinity); 13450 * // => 1.7976931348623157e+308 13451 * 13452 * _.toFinite('3.2'); 13453 * // => 3.2 13454 */ 13455function toFinite(value) { 13456 if (!value) { 13457 return value === 0 ? value : 0; 13458 } 13459 value = toNumber(value); 13460 if (value === INFINITY || value === -INFINITY) { 13461 var sign = (value < 0 ? -1 : 1); 13462 return sign * MAX_INTEGER; 13463 } 13464 return value === value ? value : 0; 13465} 13466 13467module.exports = toFinite; 13468 13469 13470/***/ }), 13471/* 264 */ 13472/***/ (function(module, exports, __webpack_require__) { 13473 13474var trimmedEndIndex = __webpack_require__(265); 13475 13476/** Used to match leading whitespace. */ 13477var reTrimStart = /^\s+/; 13478 13479/** 13480 * The base implementation of `_.trim`. 13481 * 13482 * @private 13483 * @param {string} string The string to trim. 13484 * @returns {string} Returns the trimmed string. 13485 */ 13486function baseTrim(string) { 13487 return string
13488 ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') 13489 : string; 13490} 13491 13492module.exports = baseTrim; 13493 13494 13495/***/ }), 13496/* 265 */ 13497/***/ (function(module, exports) { 13498 13499/** Used to match a single whitespace character. */ 13500var reWhitespace = /\s/; 13501 13502/** 13503 * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace 13504 * character of `string`. 13505 * 13506 * @private 13507 * @param {string} string The string to inspect. 13508 * @returns {number} Returns the index of the last non-whitespace character. 13509 */ 13510function trimmedEndIndex(string) { 13511 var index = string.length; 13512 13513 while (index-- && reWhitespace.test(string.charAt(index))) {} 13514 return index; 13515} 13516 13517module.exports = trimmedEndIndex; 13518 13519 13520/***/ }), 13521/* 266 */ 13522/***/ (function(module, exports) { 13523 13524function _arrayWithoutHoles(arr) { 13525 if (Array.isArray(arr)) { 13526 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 13527 arr2[i] = arr[i]; 13528 } 13529 13530 return arr2; 13531 } 13532} 13533 13534module.exports = _arrayWithoutHoles; 13535 13536/***/ }), 13537/* 267 */ 13538/***/ (function(module, exports) { 13539 13540function _iterableToArray(iter) { 13541 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 13542} 13543 13544module.exports = _iterableToArray; 13545 13546/***/ }), 13547/* 268 */ 13548/***/ (function(module, exports) { 13549 13550function _nonIterableSpread() { 13551 throw new TypeError("Invalid attempt to spread non-iterable instance"); 13552} 13553 13554module.exports = _nonIterableSpread; 13555 13556/***/ }), 13557/* 269 */ 13558/***/ (function(module, exports, __webpack_require__) { 13559 13560"use strict"; 13561 13562 13563Object.defineProperty(exports, "__esModule", { 13564 value: true 13565}); 13566exports.createElementState = createElementState; 13567exports.mergeActionState = mergeActionState; 13568exports.ixElements = void 0; 13569 13570var _timm = __webpack_require__(22); 13571 13572var _constants = __webpack_require__(4); 13573 13574var _constants$IX2EngineC = _constants.IX2EngineConstants, 13575 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 13576 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 13577 ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, 13578 CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, 13579 CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, 13580 CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, 13581 CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, 13582 CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, 13583 CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, 13584 CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, 13585 CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; 13586var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 13587 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 13588 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 13589 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; 13590var initialState = {}; 13591var refState = 'refState'; 13592 13593var ixElements = function ixElements() { 13594 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 13595 var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 13596 13597 switch (action.type) { 13598 case IX2_SESSION_STOPPED: 13599 { 13600 return initialState; 13601 } 13602 13603 case IX2_INSTANCE_ADDED: 13604 { 13605 var _action$payload = action.payload, 13606 elementId = _action$payload.elementId, 13607 ref = _action$payload.element, 13608 origin = _action$payload.origin, 13609 actionItem = _action$payload.actionItem, 13610 refType = _action$payload.refType; 13611 var actionTypeId = actionItem.actionTypeId; 13612 var newState = state; // Create new ref entry if it doesn't exist 13613 13614 if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { 13615 newState = createElementState(newState, ref, refType, elementId, actionItem); 13616 } // Merge origin values into ref state 13617 13618 13619 return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); 13620 } 13621 13622 case IX2_ELEMENT_STATE_CHANGED: 13623 { 13624 var _action$payload2 = action.payload, 13625 _elementId = _action$payload2.elementId, 13626 _actionTypeId = _action$payload2.actionTypeId, 13627 current = _action$payload2.current, 13628 _actionItem = _action$payload2.actionItem; 13629 return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); 13630 } 13631 13632 default: 13633 { 13634 return state; 13635 } 13636 } 13637}; 13638 13639exports.ixElements = ixElements; 13640 13641function createElementState(state, ref, refType, elementId, actionItem) { 13642 var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; 13643 return (0, _timm.mergeIn)(state, [elementId], { 13644 id: elementId, 13645 ref: ref, 13646 refId: refId, 13647 refType: refType 13648 }); 13649} 13650 13651function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used 13652actionItem) { 13653 var units = pickUnits(actionItem); 13654 var mergePath = [elementId, refState, actionTypeId]; 13655 return (0, _timm.mergeIn)(state, mergePath, actionState, units); 13656} 13657 13658var 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 13659// eslint-disable-next-line flowtype/no-weak-types 13660 13661function pickUnits(actionItem) { 13662 var config = actionItem.config; 13663 return valueUnitPairs.reduce(function (result, pair) { 13664 var valueKey = pair[0]; 13665 var unitKey = pair[1]; 13666 var configValue = config[valueKey]; 13667 var configUnit = config[unitKey]; 13668 13669 if (configValue != null && configUnit != null) { 13670 result[unitKey] = configUnit; 13671 } 13672 13673 return result; 13674 }, {}); 13675} 13676 13677/***/ }), 13678/* 270 */ 13679/***/ (function(module, exports, __webpack_require__) { 13680 13681"use strict"; 13682 13683 13684Object.defineProperty(exports, "__esModule", { 13685 value: true 13686}); 13687exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; 13688/* eslint-env browser */ 13689// $FlowFixMe 13690 13691var getPluginConfig = function getPluginConfig(actionItemConfig) { 13692 return actionItemConfig.value; 13693}; // $FlowFixMe 13694 13695 13696exports.getPluginConfig = getPluginConfig; 13697 13698var getPluginDuration = function getPluginDuration(element, actionItem) { 13699 if (actionItem.config.duration !== 'auto') { 13700 return null; 13701 } 13702 13703 var duration = parseFloat(element.getAttribute('data-duration')); 13704 13705 if (duration > 0) { 13706 return duration * 1000; 13707 } 13708 13709 return parseFloat(element.getAttribute('data-default-duration')) * 1000; 13710}; // $FlowFixMe 13711 13712 13713exports.getPluginDuration = getPluginDuration; 13714 13715var getPluginOrigin = function getPluginOrigin(refState) { 13716 return refState || { 13717 value: 0 13718 }; 13719}; // $FlowFixMe 13720 13721 13722exports.getPluginOrigin = getPluginOrigin; 13723 13724var getPluginDestination = function getPluginDestination(actionItemConfig) { 13725 return { 13726 value: actionItemConfig.value 13727 }; 13728}; // $FlowFixMe 13729 13730 13731exports.getPluginDestination = getPluginDestination; 13732 13733var createPluginInstance = function createPluginInstance(element) { 13734 var instance = window.Webflow.require('lottie').createInstance(element); 13735 13736 instance.stop(); 13737 instance.setSubframe(true); 13738 return instance; 13739}; // $FlowFixMe 13740 13741 13742exports.createPluginInstance = createPluginInstance; 13743 13744var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { 13745 if (!pluginInstance) { 13746 return; 13747 } 13748 13749 var percent = refState[actionItem.actionTypeId].value / 100; 13750 pluginInstance.goToFrame(pluginInstance.frames * percent); 13751}; // $FlowFixMe 13752 13753 13754exports.renderPlugin = renderPlugin; 13755 13756var clearPlugin = function clearPlugin(element) { 13757 var instance = window.Webflow.require('lottie').createInstance(element); 13758 13759 instance.stop(); 13760}; 13761 13762exports.clearPlugin = clearPlugin; 13763 13764/***/ }), 13765/* 271 */ 13766/***/ (function(module, exports, __webpack_require__) { 13767 13768"use strict"; 13769 13770 13771var _interopRequireDefault2 = __webpack_require__(0); 13772 13773var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 13774 13775var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 13776
13777var _Object$freeze, _Object$freeze2, _transformDefaults; 13778 13779var _interopRequireDefault = __webpack_require__(0); 13780 13781Object.defineProperty(exports, "__esModule", { 13782 value: true 13783}); 13784exports.getInstanceId = getInstanceId; 13785exports.getElementId = getElementId; 13786exports.reifyState = reifyState; 13787exports.observeStore = observeStore; 13788exports.getAffectedElements = getAffectedElements; 13789exports.getComputedStyle = getComputedStyle; 13790exports.getInstanceOrigin = getInstanceOrigin; 13791exports.getDestinationValues = getDestinationValues; 13792exports.getRenderType = getRenderType; 13793exports.getStyleProp = getStyleProp; 13794exports.renderHTMLElement = renderHTMLElement; 13795exports.clearAllStyles = clearAllStyles; 13796exports.cleanupHTMLElement = cleanupHTMLElement; 13797exports.getMaxDurationItemIndex = getMaxDurationItemIndex; 13798exports.getActionListProgress = getActionListProgress; 13799exports.reduceListToGroup = reduceListToGroup; 13800exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; 13801exports.getNamespacedParameterId = getNamespacedParameterId; 13802exports.shouldAllowMediaQuery = shouldAllowMediaQuery; 13803exports.mediaQueriesEqual = mediaQueriesEqual; 13804exports.stringifyTarget = stringifyTarget; 13805Object.defineProperty(exports, "shallowEqual", { 13806 enumerable: true, 13807 get: function get() { 13808 return _shallowEqual["default"]; 13809 } 13810}); 13811exports.getItemConfigByKey = void 0; 13812 13813var _defaultTo = _interopRequireDefault(__webpack_require__(272)); 13814 13815var _reduce = _interopRequireDefault(__webpack_require__(273)); 13816 13817var _findLast = _interopRequireDefault(__webpack_require__(279)); 13818 13819var _timm = __webpack_require__(22); 13820 13821var _constants = __webpack_require__(4); 13822 13823var _shallowEqual = _interopRequireDefault(__webpack_require__(281)); 13824 13825var _IX2EasingUtils = __webpack_require__(118); 13826 13827var _IX2VanillaPlugins = __webpack_require__(120); 13828 13829var _IX2BrowserSupport = __webpack_require__(48); 13830/* eslint-env browser */ 13831 13832 13833var _constants$IX2EngineC = _constants.IX2EngineConstants, 13834 BACKGROUND = _constants$IX2EngineC.BACKGROUND, 13835 TRANSFORM = _constants$IX2EngineC.TRANSFORM, 13836 TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, 13837 SCALE_3D = _constants$IX2EngineC.SCALE_3D, 13838 ROTATE_X = _constants$IX2EngineC.ROTATE_X, 13839 ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, 13840 ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, 13841 SKEW = _constants$IX2EngineC.SKEW, 13842 PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, 13843 FLEX = _constants$IX2EngineC.FLEX, 13844 OPACITY = _constants$IX2EngineC.OPACITY, 13845 FILTER = _constants$IX2EngineC.FILTER, 13846 FONT_VARIATION_SETTINGS = _constants$IX2EngineC.FONT_VARIATION_SETTINGS, 13847 WIDTH = _constants$IX2EngineC.WIDTH, 13848 HEIGHT = _constants$IX2EngineC.HEIGHT, 13849 BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, 13850 BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, 13851 COLOR = _constants$IX2EngineC.COLOR, 13852 CHILDREN = _constants$IX2EngineC.CHILDREN, 13853 IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, 13854 SIBLINGS = _constants$IX2EngineC.SIBLINGS, 13855 PARENT = _constants$IX2EngineC.PARENT, 13856 DISPLAY = _constants$IX2EngineC.DISPLAY, 13857 WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, 13858 AUTO = _constants$IX2EngineC.AUTO, 13859 COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, 13860 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 13861 BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, 13862 RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, 13863 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 13864 RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, 13865 RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; 13866var _constants$ActionType = _constants.ActionTypeConsts, 13867 TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, 13868 TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, 13869 TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, 13870 TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, 13871 STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, 13872 STYLE_FILTER = _constants$ActionType.STYLE_FILTER, 13873 STYLE_FONT_VARIATION = _constants$ActionType.STYLE_FONT_VARIATION, 13874 STYLE_SIZE = _constants$ActionType.STYLE_SIZE,
13875 STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, 13876 STYLE_BORDER = _constants$ActionType.STYLE_BORDER, 13877 STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, 13878 GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; 13879var OBJECT_VALUE = 'OBJECT_VALUE'; 13880 13881var trim = function trim(v) { 13882 return v.trim(); 13883}; 13884 13885var 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)); 13886var 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)); 13887var objectCache = {}; 13888var instanceCount = 1; 13889 13890function getInstanceId() { 13891 return 'i' + instanceCount++; 13892} 13893 13894var elementCount = 1; // $FlowFixMe 13895 13896function getElementId(ixElements, ref) { 13897 // TODO: optimize element lookup 13898 for (var key in ixElements) { 13899 var ixEl = ixElements[key]; 13900 13901 if (ixEl && ixEl.ref === ref) { 13902 return ixEl.id; 13903 } 13904 } 13905 13906 return 'e' + elementCount++; 13907} // $FlowFixMe 13908 13909 13910function reifyState() { 13911 var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 13912 events = _ref2.events, 13913 actionLists = _ref2.actionLists, 13914 site = _ref2.site; 13915 13916 var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { 13917 var eventTypeId = event.eventTypeId; 13918 13919 if (!result[eventTypeId]) { 13920 result[eventTypeId] = {}; 13921 } 13922 13923 result[eventTypeId][event.id] = event; 13924 return result; 13925 }, {}); 13926 var mediaQueries = site && site.mediaQueries; 13927 var mediaQueryKeys = []; 13928 13929 if (mediaQueries) { 13930 mediaQueryKeys = mediaQueries.map(function (mq) { 13931 return mq.key; 13932 }); 13933 } else { 13934 mediaQueries = []; 13935 console.warn("IX2 missing mediaQueries in site data"); 13936 } 13937 13938 return { 13939 ixData: { 13940 events: events, 13941 actionLists: actionLists, 13942 eventTypeMap: eventTypeMap, 13943 mediaQueries: mediaQueries, 13944 mediaQueryKeys: mediaQueryKeys 13945 } 13946 }; 13947} 13948 13949var strictEqual = function strictEqual(a, b) { 13950 return a === b; 13951}; // $FlowFixMe 13952 13953 13954function observeStore(_ref3) { 13955 var store = _ref3.store, 13956 select = _ref3.select, 13957 onChange = _ref3.onChange, 13958 _ref3$comparator = _ref3.comparator, 13959 comparator = _ref3$comparator === void 0 ? strictEqual : _ref3$comparator; 13960 var getState = store.getState, 13961 subscribe = store.subscribe; 13962 var unsubscribe = subscribe(handleChange); 13963 var currentState = select(getState()); 13964 13965 function handleChange() { 13966 var nextState = select(getState()); 13967 13968 if (nextState == null) { 13969 unsubscribe(); 13970 return; 13971 } 13972 13973 if (!comparator(nextState, currentState)) { 13974 currentState = nextState; 13975 onChange(currentState, store); 13976 } 13977 } 13978 13979 return unsubscribe; 13980} 13981 13982function normalizeTarget(target) { 13983 var type = (0, _typeof2["default"])(target); 13984 13985 if (type === 'string') { 13986 return { 13987 id: target 13988 }; 13989 } else if (target != null && type === 'object') { 13990 var id = target.id, 13991 objectId = target.objectId, 13992 selector = target.selector, 13993 selectorGuids = target.selectorGuids, 13994 appliesTo = target.appliesTo, 13995 useEventTarget = target.useEventTarget; 13996 return { 13997 id: id, 13998 objectId: objectId, 13999 selector: selector, 14000 selectorGuids: selectorGuids, 14001 appliesTo: appliesTo, 14002 useEventTarget: useEventTarget 14003 }; 14004 } 14005 14006 return {}; 14007} 14008 14009function getAffectedElements(_ref4) { 14010 var config = _ref4.config, 14011 event = _ref4.event, 14012 eventTarget = _ref4.eventTarget, 14013 elementRoot = _ref4.elementRoot, 14014 elementApi = _ref4.elementApi; 14015 14016 var _ref, _event$action, _event$action$config; 14017 14018 if (!elementApi) { 14019 throw new Error('IX2 missing elementApi'); 14020 } 14021 14022 var targets = config.targets; 14023 14024 if (Array.isArray(targets) && targets.length > 0) { 14025 return targets.reduce(function (accumulator, target) { 14026 return accumulator.concat(getAffectedElements({ 14027 config: { 14028 target: target 14029 }, 14030 event: event, 14031 eventTarget: eventTarget, 14032 elementRoot: elementRoot, 14033 elementApi: elementApi 14034 })); 14035 }, []); 14036 } 14037 14038 var getValidDocument = elementApi.getValidDocument, 14039 getQuerySelector = elementApi.getQuerySelector, 14040 queryDocument = elementApi.queryDocument, 14041 getChildElements = elementApi.getChildElements,
14042 getSiblingElements = elementApi.getSiblingElements, 14043 matchSelector = elementApi.matchSelector, 14044 elementContains = elementApi.elementContains, 14045 isSiblingNode = elementApi.isSiblingNode; 14046 var target = config.target; 14047 14048 if (!target) { 14049 return []; 14050 } 14051 14052 var _normalizeTarget = normalizeTarget(target), 14053 id = _normalizeTarget.id, 14054 objectId = _normalizeTarget.objectId, 14055 selector = _normalizeTarget.selector, 14056 selectorGuids = _normalizeTarget.selectorGuids, 14057 appliesTo = _normalizeTarget.appliesTo, 14058 useEventTarget = _normalizeTarget.useEventTarget; 14059 14060 if (objectId) { 14061 var ref = objectCache[objectId] || (objectCache[objectId] = {}); 14062 return [ref]; 14063 } 14064 14065 if (appliesTo === _constants.EventAppliesTo.PAGE) { 14066 var doc = getValidDocument(id); 14067 return doc ? [doc] : []; 14068 } 14069 14070 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 : {}; 14071 var override = overrides[id || selector] || {}; 14072 var validOverride = Boolean(override.id || override.selector); 14073 var limitAffectedElements; 14074 var baseSelector; 14075 var finalSelector; 14076 var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); 14077 14078 if (validOverride) { 14079 limitAffectedElements = override.limitAffectedElements; 14080 baseSelector = eventTargetSelector; 14081 finalSelector = getQuerySelector(override); 14082 } else { 14083 // pass in selectorGuids as well for server-side rendering. 14084 baseSelector = finalSelector = getQuerySelector({ 14085 id: id, 14086 selector: selector, 14087 selectorGuids: selectorGuids 14088 }); 14089 } 14090 14091 if (event && useEventTarget) { 14092 // eventTarget is not defined when this function is called in a clear request, so find 14093 // all target elements associated with the event data, and return affected elements. 14094 var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); 14095 14096 if (finalSelector) { 14097 if (useEventTarget === PARENT) { 14098 return queryDocument(finalSelector).filter(function (parentElement) { 14099 return eventTargets.some(function (targetElement) { 14100 return elementContains(parentElement, targetElement); 14101 }); 14102 }); 14103 } 14104 14105 if (useEventTarget === CHILDREN) { 14106 return queryDocument(finalSelector).filter(function (childElement) { 14107 return eventTargets.some(function (targetElement) { 14108 return elementContains(targetElement, childElement); 14109 }); 14110 }); 14111 } 14112 14113 if (useEventTarget === SIBLINGS) { 14114 return queryDocument(finalSelector).filter(function (siblingElement) { 14115 return eventTargets.some(function (targetElement) { 14116 return isSiblingNode(targetElement, siblingElement); 14117 }); 14118 }); 14119 } 14120 } 14121 14122 return eventTargets; 14123 } 14124 14125 if (baseSelector == null || finalSelector == null) { 14126 return []; 14127 } 14128 14129 if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { 14130 return queryDocument(finalSelector).filter(function (element) { 14131 return elementRoot.contains(element); 14132 }); 14133 } 14134 14135 if (limitAffectedElements === CHILDREN) { 14136 return queryDocument(baseSelector, finalSelector); 14137 } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { 14138 return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 14139 } else if (limitAffectedElements === SIBLINGS) { 14140 return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 14141 } else { 14142 return queryDocument(finalSelector); 14143 } 14144} // $FlowFixMe 14145 14146 14147function getComputedStyle(_ref5) { 14148 var element = _ref5.element, 14149 actionItem = _ref5.actionItem; 14150 14151 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14152 return {}; 14153 } 14154 14155 var actionTypeId = actionItem.actionTypeId; 14156 14157 switch (actionTypeId) { 14158 case STYLE_SIZE: 14159 case STYLE_BACKGROUND_COLOR: 14160 case STYLE_BORDER: 14161 case STYLE_TEXT_COLOR: 14162 case GENERAL_DISPLAY: 14163 return window.getComputedStyle(element); 14164 14165 default: 14166 return {}; 14167 } 14168} 14169 14170var pxValueRegex = /px/; 14171 14172var getFilterDefaults = function getFilterDefaults(actionState, filters) { 14173 return filters.reduce(function (result, filter) { 14174 if (result[filter.type] == null) { 14175 result[filter.type] = filterDefaults[// $FlowFixMe - property `saturation` (did you mean `saturate`?) is missing in `filterDefaults` 14176 filter.type]; 14177 } 14178 14179 return result; 14180 }, actionState || {}); 14181}; 14182 14183var getFontVariationDefaults = function getFontVariationDefaults(actionState, fontVariations) { 14184 return fontVariations.reduce(function (result, fontVariation) { 14185 if (result[fontVariation.type] == null) { 14186 result[fontVariation.type] = fontVariationDefaults[fontVariation.type] || fontVariation.defaultValue || 0; 14187 } 14188 14189 return result; 14190 }, actionState || {}); 14191}; 14192 14193function getInstanceOrigin(element) { 14194 var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 14195 var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 14196 var actionItem = arguments.length > 3 ? arguments[3] : undefined; 14197 var elementApi = arguments.length > 4 ? arguments[4] : undefined;
14198 var getStyle = elementApi.getStyle; // Flow Hack: Passing actionTypeId to isPluginType and then trying 14199 // to do type refinement using the same variable via a switch statement 14200 // breaks down. This is is a workaround to ensure we can use type refinement. 14201 14202 var actionTypeId = actionItem.actionTypeId; 14203 14204 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14205 // $FlowFixMe 14206 return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); 14207 } 14208 14209 switch (actionItem.actionTypeId) { 14210 case TRANSFORM_MOVE: 14211 case TRANSFORM_SCALE: 14212 case TRANSFORM_ROTATE: 14213 case TRANSFORM_SKEW: 14214 { 14215 return refState[actionItem.actionTypeId] || transformDefaults[actionItem.actionTypeId]; 14216 } 14217 14218 case STYLE_FILTER: 14219 return getFilterDefaults(refState[actionItem.actionTypeId], actionItem.config.filters); 14220 14221 case STYLE_FONT_VARIATION: 14222 return getFontVariationDefaults(refState[actionItem.actionTypeId], actionItem.config.fontVariations); 14223 14224 case STYLE_OPACITY: 14225 return { 14226 value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) 14227 }; 14228 14229 case STYLE_SIZE: 14230 { 14231 var inlineWidth = getStyle(element, WIDTH); 14232 var inlineHeight = getStyle(element, HEIGHT); 14233 var widthValue; 14234 var heightValue; // When destination unit is 'AUTO', ensure origin values are in px 14235 14236 if (actionItem.config.widthUnit === AUTO) { 14237 widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); 14238 } else { 14239 widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); 14240 } 14241 14242 if (actionItem.config.heightUnit === AUTO) { 14243 heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); 14244 } else { 14245 heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); 14246 } 14247 14248 return { 14249 widthValue: widthValue, 14250 heightValue: heightValue 14251 }; 14252 } 14253 14254 case STYLE_BACKGROUND_COLOR: 14255 case STYLE_BORDER: 14256 case STYLE_TEXT_COLOR: 14257 return parseColor({ 14258 element: element, 14259 actionTypeId: actionItem.actionTypeId, 14260 computedStyle: computedStyle, 14261 getStyle: getStyle 14262 }); 14263 14264 case GENERAL_DISPLAY: 14265 return { 14266 value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) 14267 }; 14268 // $FlowFixMe - `OBJECT_VALUE` is not an expected `actionTypeId` 14269 14270 case OBJECT_VALUE: 14271 return refState[actionItem.actionTypeId] || { 14272 value: 0 14273 }; 14274 14275 default: 14276 { 14277 // As far as the type system can tell, we're missing a handler for 14278 // PLUGIN_LOTTIE. 14279 // 14280 // This is actually handled by `isPluginType` above. 14281 // 14282 // $FlowFixMe 14283 14284 /*:: (actionItem: empty); */ 14285 return; 14286 } 14287 } 14288} 14289 14290var reduceFilters = function reduceFilters(result, filter) { 14291 if (filter) { 14292 result[filter.type] = filter.value || 0; 14293 } 14294 14295 return result; 14296}; 14297 14298var reduceFontVariations = function reduceFontVariations(result, fontVariation) { 14299 if (fontVariation) { 14300 result[fontVariation.type] = fontVariation.value || 0; 14301 } 14302 14303 return result; 14304}; // $FlowFixMe 14305 14306 14307var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { 14308 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14309 // $FlowFixMe 14310 return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); 14311 } 14312 14313 switch (actionTypeId) { 14314 case STYLE_FILTER: 14315 { 14316 var filter = (0, _findLast["default"])(config.filters, function (_ref6) { 14317 var type = _ref6.type; 14318 return type === key; 14319 }); 14320 return filter ? filter.value : 0; 14321 } 14322 14323 case STYLE_FONT_VARIATION: 14324 { 14325 var fontVariation = (0, _findLast["default"])(config.fontVariations, function (_ref7) { 14326 var type = _ref7.type; 14327 return type === key; 14328 }); 14329 return fontVariation ? fontVariation.value : 0; 14330 } 14331 14332 default: 14333 return config[key]; 14334 } 14335}; 14336 14337exports.getItemConfigByKey = getItemConfigByKey; 14338 14339function getDestinationValues(_ref8) { 14340 var element = _ref8.element, 14341 actionItem = _ref8.actionItem, 14342 elementApi = _ref8.elementApi; 14343 14344 if ((0, _IX2VanillaPlugins.isPluginType)(actionItem.actionTypeId)) { 14345 // $FlowFixMe 14346 return (0, _IX2VanillaPlugins.getPluginDestination)(actionItem.actionTypeId)(actionItem.config); 14347 } 14348 14349 switch (actionItem.actionTypeId) { 14350 case TRANSFORM_MOVE: 14351 case TRANSFORM_SCALE: 14352 case TRANSFORM_ROTATE: 14353 case TRANSFORM_SKEW: 14354 { 14355 var _actionItem$config = actionItem.config, 14356 xValue = _actionItem$config.xValue, 14357 yValue = _actionItem$config.yValue, 14358 zValue = _actionItem$config.zValue; 14359 return { 14360 xValue: xValue, 14361 yValue: yValue, 14362 zValue: zValue 14363 }; 14364 } 14365 14366 case STYLE_SIZE: 14367 {
14368 var getStyle = elementApi.getStyle, 14369 setStyle = elementApi.setStyle, 14370 getProperty = elementApi.getProperty; 14371 var _actionItem$config2 = actionItem.config, 14372 widthUnit = _actionItem$config2.widthUnit, 14373 heightUnit = _actionItem$config2.heightUnit; 14374 var _actionItem$config3 = actionItem.config, 14375 widthValue = _actionItem$config3.widthValue, 14376 heightValue = _actionItem$config3.heightValue; 14377 14378 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14379 return { 14380 widthValue: widthValue, 14381 heightValue: heightValue 14382 }; 14383 } 14384 14385 if (widthUnit === AUTO) { 14386 var temp = getStyle(element, WIDTH); 14387 setStyle(element, WIDTH, ''); 14388 widthValue = getProperty(element, 'offsetWidth'); 14389 setStyle(element, WIDTH, temp); 14390 } 14391 14392 if (heightUnit === AUTO) { 14393 var _temp = getStyle(element, HEIGHT); 14394 14395 setStyle(element, HEIGHT, ''); 14396 heightValue = getProperty(element, 'offsetHeight'); 14397 setStyle(element, HEIGHT, _temp); 14398 } 14399 14400 return { 14401 widthValue: widthValue, 14402 heightValue: heightValue 14403 }; 14404 } 14405 14406 case STYLE_BACKGROUND_COLOR: 14407 case STYLE_BORDER: 14408 case STYLE_TEXT_COLOR: 14409 { 14410 var _actionItem$config4 = actionItem.config, 14411 rValue = _actionItem$config4.rValue, 14412 gValue = _actionItem$config4.gValue, 14413 bValue = _actionItem$config4.bValue, 14414 aValue = _actionItem$config4.aValue; 14415 return { 14416 rValue: rValue, 14417 gValue: gValue, 14418 bValue: bValue, 14419 aValue: aValue 14420 }; 14421 } 14422 14423 case STYLE_FILTER: 14424 { 14425 return actionItem.config.filters.reduce(reduceFilters, {}); 14426 } 14427 14428 case STYLE_FONT_VARIATION: 14429 { 14430 return actionItem.config.fontVariations.reduce(reduceFontVariations, {}); 14431 } 14432 14433 default: 14434 { 14435 var value = actionItem.config.value; 14436 return { 14437 value: value 14438 }; 14439 } 14440 } 14441} // $FlowFixMe 14442 14443 14444function getRenderType(actionTypeId) { 14445 if (/^TRANSFORM_/.test(actionTypeId)) { 14446 return RENDER_TRANSFORM; 14447 } 14448 14449 if (/^STYLE_/.test(actionTypeId)) { 14450 return RENDER_STYLE; 14451 } 14452 14453 if (/^GENERAL_/.test(actionTypeId)) { 14454 return RENDER_GENERAL; 14455 } 14456 14457 if (/^PLUGIN_/.test(actionTypeId)) { 14458 return RENDER_PLUGIN; 14459 } 14460} // $FlowFixMe 14461 14462 14463function getStyleProp(renderType, actionTypeId) { 14464 return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; 14465} 14466 14467function renderHTMLElement( // $FlowFixMe 14468element, // $FlowFixMe 14469refState, // $FlowFixMe 14470actionState, // $FlowFixMe 14471eventId, // $FlowFixMe 14472actionItem, // $FlowFixMe 14473styleProp, // $FlowFixMe 14474elementApi, // $FlowFixMe 14475renderType, // $FlowFixMe 14476pluginInstance) { 14477 switch (renderType) { 14478 case RENDER_TRANSFORM: 14479 { 14480 return renderTransform(element, refState, actionState, actionItem, elementApi); 14481 } 14482 14483 case RENDER_STYLE: 14484 { 14485 return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); 14486 } 14487 14488 case RENDER_GENERAL: 14489 { 14490 return renderGeneral(element, actionItem, elementApi); 14491 } 14492 14493 case RENDER_PLUGIN: 14494 { 14495 var actionTypeId = actionItem.actionTypeId; 14496 14497 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14498 // $FlowFixMe 14499 return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); 14500 } 14501 } 14502 } 14503} 14504 14505var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ 14506 xValue: 0, 14507 yValue: 0, 14508 zValue: 0 14509})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ 14510 xValue: 1, 14511 yValue: 1, 14512 zValue: 1 14513})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ 14514 xValue: 0, 14515 yValue: 0, 14516 zValue: 0 14517})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ 14518 xValue: 0, 14519 yValue: 0 14520})), _transformDefaults); 14521var filterDefaults = Object.freeze({ 14522 blur: 0, 14523 'hue-rotate': 0, 14524 invert: 0, 14525 grayscale: 0, 14526 saturate: 100, 14527 sepia: 0, 14528 contrast: 100, 14529 brightness: 100 14530}); 14531var fontVariationDefaults = Object.freeze({ 14532 wght: 0, 14533 opsz: 0, 14534 wdth: 0, 14535 slnt: 0 14536}); 14537 14538var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { 14539 var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref9) { 14540 var type = _ref9.type; 14541 return type === filterType; 14542 }); 14543 14544 if (filter && filter.unit) { 14545 return filter.unit; 14546 } 14547 14548 switch (filterType) { 14549 case 'blur': 14550 return 'px'; 14551 14552 case 'hue-rotate': 14553 return 'deg'; 14554 14555 default: 14556 return '%'; 14557 } 14558}; 14559 14560var transformKeys = Object.keys(transformDefaults); 14561 14562function renderTransform(element, refState, actionState, actionItem, elementApi) { 14563 var newTransform = transformKeys.map(function (actionTypeId) { 14564 var defaults = transformDefaults[actionTypeId]; 14565 14566 var _ref10 = refState[actionTypeId] || {}, 14567 _ref10$xValue = _ref10.xValue, 14568 xValue = _ref10$xValue === void 0 ? defaults.xValue : _ref10$xValue, 14569 _ref10$yValue = _ref10.yValue, 14570 yValue = _ref10$yValue === void 0 ? defaults.yValue : _ref10$yValue, 14571 _ref10$zValue = _ref10.zValue, 14572 zValue = _ref10$zValue === void 0 ? defaults.zValue : _ref10$zValue, 14573 _ref10$xUnit = _ref10.xUnit, 14574 xUnit = _ref10$xUnit === void 0 ? '' : _ref10$xUnit, 14575 _ref10$yUnit = _ref10.yUnit, 14576 yUnit = _ref10$yUnit === void 0 ? '' : _ref10$yUnit, 14577 _ref10$zUnit = _ref10.zUnit, 14578 zUnit = _ref10$zUnit === void 0 ? '' : _ref10$zUnit; 14579 14580 switch (actionTypeId) { 14581 case TRANSFORM_MOVE: 14582 return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 14583 14584 case TRANSFORM_SCALE:
14585 return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 14586 14587 case TRANSFORM_ROTATE: 14588 return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); 14589 14590 case TRANSFORM_SKEW: 14591 return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); 14592 14593 default: 14594 return ''; 14595 } 14596 }).join(' '); 14597 var setStyle = elementApi.setStyle; 14598 addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 14599 setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d 14600 14601 if (hasDefined3dTransform(actionItem, actionState)) { 14602 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); 14603 } 14604} 14605 14606function renderFilter(element, actionState, actionItemConfig, elementApi) { 14607 var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { 14608 return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); 14609 }, ''); 14610 var setStyle = elementApi.setStyle; 14611 addWillChange(element, FILTER, elementApi); 14612 setStyle(element, FILTER, filterValue); 14613} 14614 14615function renderFontVariation(element, actionState, actionItemConfig, elementApi) { 14616 var fontVariationValue = (0, _reduce["default"])(actionState, function (result, value, type) { 14617 result.push("\"".concat(type, "\" ").concat(value)); 14618 return result; 14619 }, []).join(', '); 14620 var setStyle = elementApi.setStyle; 14621 addWillChange(element, FONT_VARIATION_SETTINGS, elementApi); 14622 setStyle(element, FONT_VARIATION_SETTINGS, fontVariationValue); 14623} 14624 14625function hasDefined3dTransform(_ref11, _ref12) { 14626 var actionTypeId = _ref11.actionTypeId; 14627 var xValue = _ref12.xValue, 14628 yValue = _ref12.yValue, 14629 zValue = _ref12.zValue; 14630 // TRANSLATE_Z 14631 return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z 14632 actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y 14633 actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); 14634} 14635 14636var paramCapture = '\\(([^)]+)\\)'; 14637var rgbValidRegex = /^rgb/; 14638var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); 14639 14640function getFirstMatch(regex, value) { 14641 var match = regex.exec(value); 14642 return match ? match[1] : ''; 14643} 14644 14645function parseColor(_ref13) { 14646 var element = _ref13.element, 14647 actionTypeId = _ref13.actionTypeId, 14648 computedStyle = _ref13.computedStyle, 14649 getStyle = _ref13.getStyle; 14650 var prop = colorStyleProps[actionTypeId]; 14651 var inlineValue = getStyle(element, prop); 14652 var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; 14653 var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); 14654 return { 14655 rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), 14656 gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), 14657 bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), 14658 aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) 14659 }; 14660} 14661
14662function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { 14663 var setStyle = elementApi.setStyle; 14664 14665 switch (actionItem.actionTypeId) { 14666 case STYLE_SIZE: 14667 { 14668 var _actionItem$config5 = actionItem.config, 14669 _actionItem$config5$w = _actionItem$config5.widthUnit, 14670 widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, 14671 _actionItem$config5$h = _actionItem$config5.heightUnit, 14672 heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; 14673 var widthValue = actionState.widthValue, 14674 heightValue = actionState.heightValue; 14675 14676 if (widthValue !== undefined) { 14677 if (widthUnit === AUTO) { 14678 widthUnit = 'px'; 14679 } 14680 14681 addWillChange(element, WIDTH, elementApi); 14682 setStyle(element, WIDTH, widthValue + widthUnit); 14683 } 14684 14685 if (heightValue !== undefined) { 14686 if (heightUnit === AUTO) { 14687 heightUnit = 'px'; 14688 } 14689 14690 addWillChange(element, HEIGHT, elementApi); 14691 setStyle(element, HEIGHT, heightValue + heightUnit); 14692 } 14693 14694 break; 14695 } 14696 14697 case STYLE_FILTER: 14698 { 14699 renderFilter(element, actionState, actionItem.config, elementApi); 14700 break; 14701 } 14702 14703 case STYLE_FONT_VARIATION: 14704 { 14705 renderFontVariation(element, actionState, actionItem.config, elementApi); 14706 break; 14707 } 14708 14709 case STYLE_BACKGROUND_COLOR: 14710 case STYLE_BORDER: 14711 case STYLE_TEXT_COLOR: 14712 { 14713 var prop = colorStyleProps[actionItem.actionTypeId]; 14714 var rValue = Math.round(actionState.rValue); 14715 var gValue = Math.round(actionState.gValue); 14716 var bValue = Math.round(actionState.bValue); 14717 var aValue = actionState.aValue; 14718 addWillChange(element, prop, elementApi); 14719 setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); 14720 break; 14721 } 14722 14723 default: 14724 { 14725 var _actionItem$config$un = actionItem.config.unit, 14726 unit = _actionItem$config$un === void 0 ? '' : _actionItem$config$un; 14727 addWillChange(element, styleProp, elementApi); 14728 setStyle(element, styleProp, actionState.value + unit); 14729 break; 14730 } 14731 } 14732} 14733 14734function renderGeneral(element, actionItem, elementApi) { 14735 var setStyle = elementApi.setStyle; 14736 14737 switch (actionItem.actionTypeId) { 14738 case GENERAL_DISPLAY: 14739 { 14740 var value = actionItem.config.value; 14741 14742 if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { 14743 setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); 14744 } else { 14745 setStyle(element, DISPLAY, value); 14746 } 14747 14748 return; 14749 } 14750 } 14751} 14752 14753function addWillChange(element, prop, elementApi) { 14754 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14755 return; 14756 } 14757 14758 var validProp = willChangeProps[prop]; 14759 14760 if (!validProp) { 14761 return; 14762 } 14763
14764 var getStyle = elementApi.getStyle, 14765 setStyle = elementApi.setStyle; 14766 var value = getStyle(element, WILL_CHANGE); 14767 14768 if (!value) { 14769 setStyle(element, WILL_CHANGE, validProp); 14770 return; 14771 } 14772 14773 var values = value.split(COMMA_DELIMITER).map(trim); 14774 14775 if (values.indexOf(validProp) === -1) { 14776 setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); 14777 } 14778} 14779 14780function removeWillChange(element, prop, elementApi) { 14781 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 14782 return; 14783 } 14784 14785 var validProp = willChangeProps[prop]; 14786 14787 if (!validProp) { 14788 return; 14789 } 14790 14791 var getStyle = elementApi.getStyle, 14792 setStyle = elementApi.setStyle; 14793 var value = getStyle(element, WILL_CHANGE); 14794 14795 if (!value || value.indexOf(validProp) === -1) { 14796 return; 14797 } 14798 14799 setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { 14800 return v !== validProp; 14801 }).join(COMMA_DELIMITER)); 14802} // $FlowFixMe 14803 14804 14805function clearAllStyles(_ref14) { 14806 var store = _ref14.store, 14807 elementApi = _ref14.elementApi; 14808 14809 var _store$getState = store.getState(), 14810 ixData = _store$getState.ixData; 14811 14812 var _ixData$events = ixData.events, 14813 events = _ixData$events === void 0 ? {} : _ixData$events, 14814 _ixData$actionLists = ixData.actionLists, 14815 actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; 14816 Object.keys(events).forEach(function (eventId) { 14817 var event = events[eventId]; 14818 var config = event.action.config; 14819 var actionListId = config.actionListId; 14820 var actionList = actionLists[actionListId]; 14821 14822 if (actionList) { 14823 clearActionListStyles({ 14824 actionList: actionList, 14825 event: event, 14826 elementApi: elementApi 14827 }); 14828 } 14829 }); 14830 Object.keys(actionLists).forEach(function (actionListId) { 14831 clearActionListStyles({ 14832 actionList: actionLists[actionListId], 14833 elementApi: elementApi 14834 }); 14835 }); 14836} // $FlowFixMe 14837 14838 14839function clearActionListStyles(_ref15) { 14840 var _ref15$actionList = _ref15.actionList, 14841 actionList = _ref15$actionList === void 0 ? {} : _ref15$actionList, 14842 event = _ref15.event, 14843 elementApi = _ref15.elementApi; 14844 var actionItemGroups = actionList.actionItemGroups, 14845 continuousParameterGroups = actionList.continuousParameterGroups; 14846 actionItemGroups && actionItemGroups.forEach(function (actionGroup) { 14847 clearActionGroupStyles({ 14848 actionGroup: actionGroup, 14849 event: event, 14850 elementApi: elementApi 14851 }); 14852 }); 14853 continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { 14854 var continuousActionGroups = paramGroup.continuousActionGroups; 14855 continuousActionGroups.forEach(function (actionGroup) { 14856 clearActionGroupStyles({ 14857 actionGroup: actionGroup, 14858 event: event, 14859 elementApi: elementApi 14860 }); 14861 }); 14862 }); 14863} 14864 14865function clearActionGroupStyles(_ref16) { 14866 var actionGroup = _ref16.actionGroup, 14867 event = _ref16.event, 14868 elementApi = _ref16.elementApi; 14869 var actionItems = actionGroup.actionItems; 14870 actionItems.forEach(function (_ref17) { 14871 var actionTypeId = _ref17.actionTypeId, 14872 config = _ref17.config; 14873 var clearElement; 14874 14875 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 14876 clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); 14877 } else { 14878 clearElement = processElementByType({ 14879 effect: clearStyleProp, 14880 actionTypeId: actionTypeId, 14881 elementApi: elementApi 14882 }); 14883 } 14884 14885 getAffectedElements({ 14886 config: config, 14887 event: event, 14888 elementApi: elementApi 14889 }
14889).forEach(clearElement); 14890 }); 14891} // $FlowFixMe 14892 14893 14894function cleanupHTMLElement(element, actionItem, elementApi) { 14895 var setStyle = elementApi.setStyle, 14896 getStyle = elementApi.getStyle; 14897 var actionTypeId = actionItem.actionTypeId; 14898 14899 if (actionTypeId === STYLE_SIZE) { 14900 var config = actionItem.config; 14901 14902 if (config.widthUnit === AUTO) { 14903 setStyle(element, WIDTH, ''); 14904 } 14905 14906 if (config.heightUnit === AUTO) { 14907 setStyle(element, HEIGHT, ''); 14908 } 14909 } 14910 14911 if (getStyle(element, WILL_CHANGE)) { 14912 processElementByType({ 14913 effect: removeWillChange, 14914 actionTypeId: actionTypeId, 14915 elementApi: elementApi 14916 })(element); 14917 } 14918} 14919 14920var processElementByType = function processElementByType(_ref18) { 14921 var effect = _ref18.effect, 14922 actionTypeId = _ref18.actionTypeId, 14923 elementApi = _ref18.elementApi; 14924 return function (element) { 14925 switch (actionTypeId) { 14926 case TRANSFORM_MOVE: 14927 case TRANSFORM_SCALE: 14928 case TRANSFORM_ROTATE: 14929 case TRANSFORM_SKEW: 14930 effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 14931 break; 14932 14933 case STYLE_FILTER: 14934 effect(element, FILTER, elementApi); 14935 break; 14936 14937 case STYLE_FONT_VARIATION: 14938 effect(element, FONT_VARIATION_SETTINGS, elementApi); 14939 break; 14940 14941 case STYLE_OPACITY: 14942 effect(element, OPACITY, elementApi); 14943 break; 14944 14945 case STYLE_SIZE: 14946 effect(element, WIDTH, elementApi); 14947 effect(element, HEIGHT, elementApi); 14948 break; 14949 14950 case STYLE_BACKGROUND_COLOR: 14951 case STYLE_BORDER: 14952 case STYLE_TEXT_COLOR: 14953 effect(element, colorStyleProps[actionTypeId], elementApi); 14954 break; 14955 14956 case GENERAL_DISPLAY: 14957 effect(element, DISPLAY, elementApi); 14958 break; 14959 } 14960 }; 14961}; 14962 14963function clearStyleProp(element, prop, elementApi) { 14964 var setStyle = elementApi.setStyle; 14965 removeWillChange(element, prop, elementApi); 14966 setStyle(element, prop, ''); // Clear transform-style: preserve-3d 14967 14968 if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { 14969 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); 14970 } 14971} // $FlowFixMe 14972 14973 14974function getMaxDurationItemIndex(actionItems) { 14975 var maxDuration = 0; 14976 var resultIndex = 0; 14977 actionItems.forEach(function (actionItem, index) { 14978 var config = actionItem.config; 14979 var total = config.delay + config.duration; 14980 14981 if (total >= maxDuration) { 14982 maxDuration = total; 14983 resultIndex = index; 14984 } 14985 }); 14986 return resultIndex; 14987} // $FlowFixMe 14988 14989 14990function getActionListProgress(actionList, instance) { 14991 var actionItemGroups = actionList.actionItemGroups, 14992 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; 14993 var instanceItem = instance.actionItem, 14994 _instance$verboseTime = instance.verboseTimeElapsed, 14995 verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; 14996 var totalDuration = 0; 14997 var elapsedDuration = 0; 14998 actionItemGroups.forEach(function (group, index) { 14999 if (useFirstGroupAsInitialState && index === 0) { 15000 return; 15001 } 15002 15003 var actionItems = group.actionItems; 15004 var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; 15005 var config = carrierItem.config, 15006 actionTypeId = carrierItem.actionTypeId; 15007 15008 if (instanceItem.id === carrierItem.id) { 15009 elapsedDuration = totalDuration + verboseTimeElapsed; 15010 } 15011 15012 var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; 15013 totalDuration += config.delay + duration; 15014 }); 15015 return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; 15016} // $FlowFixMe 15017 15018 15019function reduceListToGroup(_ref19) { 15020 var actionList = _ref19.actionList, 15021 actionItemId = _ref19.actionItemId, 15022 rawData = _ref19.rawData; 15023 var actionItemGroups = actionList.actionItemGroups, 15024 continuousParameterGroups = actionList.continuousParameterGroups; 15025 var newActionItems = []; 15026 15027 var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { 15028 newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { 15029 delay: 0, 15030 duration: 0 15031 })); 15032 return actionItem.id === actionItemId; 15033 }; 15034 15035 actionItemGroups && actionItemGroups.some(function (_ref20) { 15036 var actionItems = _ref20.actionItems; 15037 return actionItems.some(takeItemUntilMatch); 15038 }); 15039 continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { 15040 var continuousActionGroups = paramGroup.continuousActionGroups; 15041 return continuousActionGroups.some(function (_ref21) { 15042 var actionItems = _ref21.actionItems; 15043 return actionItems.some(takeItemUntilMatch); 15044 }); 15045 }); 15046 return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { 15047 id: actionList.id, 15048 actionItemGroups: [{ 15049 actionItems: newActionItems 15050 }] 15051 })); 15052} // $FlowFixMe 15053 15054 15055function shouldNamespaceEventParameter(eventTypeId, _ref23) { 15056 var basedOn = _ref23.basedOn; 15057 return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; 15058} 15059 15060function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { 15061 var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; 15062 return namespacedParameterId; 15063} // $FlowFixMe 15064 15065 15066function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { 15067 // During design mode, current media query key does not exist 15068 if (mediaQueryKey == null) { 15069 return true; 15070 } 15071 15072 return mediaQueries.indexOf(mediaQueryKey) !== -1; 15073} // $FlowFixMe 15074 15075 15076function mediaQueriesEqual(listA, listB) { 15077 return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); 15078} // $FlowFixMe 15079 15080 15081function stringifyTarget(target) { 15082 if (typeof target === 'string') { 15083 return target; 15084 } 15085 15086 var _target$id = target.id, 15087 id = _target$id === void 0 ? '' : _target$id, 15088 _target$selector = target.selector, 15089 selector = _target$selector === void 0 ? '' : _target$selector, 15090 _target$useEventTarge = target.useEventTarget, 15091 useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; 15092 return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; 15093} 15094 15095/***/ }), 15096/* 272 */
vendor: 9,324 bytes, lines 15097-15430
15097/***/ (function(module, exports) { 15098 15099/** 15100 * Checks `value` to determine whether a default value should be returned in 15101 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 15102 * or `undefined`. 15103 * 15104 * @static 15105 * @memberOf _ 15106 * @since 4.14.0 15107 * @category Util 15108 * @param {*} value The value to check. 15109 * @param {*} defaultValue The default value. 15110 * @returns {*} Returns the resolved value. 15111 * @example 15112 * 15113 * _.defaultTo(1, 10); 15114 * // => 1 15115 * 15116 * _.defaultTo(undefined, 10); 15117 * // => 10 15118 */ 15119function defaultTo(value, defaultValue) { 15120 return (value == null || value !== value) ? defaultValue : value; 15121} 15122 15123module.exports = defaultTo; 15124 15125 15126/***/ }), 15127/* 273 */ 15128/***/ (function(module, exports, __webpack_require__) { 15129 15130var arrayReduce = __webpack_require__(274), 15131 baseEach = __webpack_require__(121), 15132 baseIteratee = __webpack_require__(10), 15133 baseReduce = __webpack_require__(278), 15134 isArray = __webpack_require__(2); 15135 15136/** 15137 * Reduces `collection` to a value which is the accumulated result of running 15138 * each element in `collection` thru `iteratee`, where each successive 15139 * invocation is supplied the return value of the previous. If `accumulator` 15140 * is not given, the first element of `collection` is used as the initial 15141 * value. The iteratee is invoked with four arguments: 15142 * (accumulator, value, index|key, collection). 15143 * 15144 * Many lodash methods are guarded to work as iteratees for methods like 15145 * `_.reduce`, `_.reduceRight`, and `_.transform`. 15146 * 15147 * The guarded methods are: 15148 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 15149 * and `sortBy` 15150 * 15151 * @static 15152 * @memberOf _ 15153 * @since 0.1.0 15154 * @category Collection 15155 * @param {Array|Object} collection The collection to iterate over. 15156 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15157 * @param {*} [accumulator] The initial value. 15158 * @returns {*} Returns the accumulated value. 15159 * @see _.reduceRight 15160 * @example 15161 * 15162 * _.reduce([1, 2], function(sum, n) { 15163 * return sum + n; 15164 * }, 0); 15165 * // => 3 15166 * 15167 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 15168 * (result[value] || (result[value] = [])).push(key); 15169 * return result; 15170 * }, {}); 15171 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 15172 */ 15173function reduce(collection, iteratee, accumulator) { 15174 var func = isArray(collection) ? arrayReduce : baseReduce, 15175 initAccum = arguments.length < 3; 15176 15177 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 15178} 15179 15180module.exports = reduce; 15181 15182 15183/***/ }), 15184/* 274 */ 15185/***/ (function(module, exports) { 15186 15187/** 15188 * A specialized version of `_.reduce` for arrays without support for 15189 * iteratee shorthands. 15190 * 15191 * @private 15192 * @param {Array} [array] The array to iterate over. 15193 * @param {Function} iteratee The function invoked per iteration. 15194 * @param {*} [accumulator] The initial value. 15195 * @param {boolean} [initAccum] Specify using the first element of `array` as 15196 * the initial value. 15197 * @returns {*} Returns the accumulated value. 15198 */ 15199function arrayReduce(array, iteratee, accumulator, initAccum) { 15200 var index = -1, 15201 length = array == null ? 0 : array.length; 15202 15203 if (initAccum && length) { 15204 accumulator = array[++index]; 15205 } 15206 while (++index < length) { 15207 accumulator = iteratee(accumulator, array[index], index, array); 15208 } 15209 return accumulator; 15210} 15211 15212module.exports = arrayReduce; 15213 15214 15215/***/ }), 15216/* 275 */ 15217/***/ (function(module, exports, __webpack_require__) { 15218 15219var createBaseFor = __webpack_require__(276); 15220 15221/** 15222 * The base implementation of `baseForOwn` which iterates over `object` 15223 * properties returned by `keysFunc` and invokes `iteratee` for each property. 15224 * Iteratee functions may exit iteration early by explicitly returning `false`. 15225 * 15226 * @private 15227 * @param {Object} object The object to iterate over. 15228 * @param {Function} iteratee The function invoked per iteration. 15229 * @param {Function} keysFunc The function to get the keys of `object`. 15230 * @returns {Object} Returns `object`. 15231 */ 15232var baseFor = createBaseFor(); 15233 15234module.exports = baseFor; 15235 15236 15237/***/ }), 15238/* 276 */ 15239/***/ (function(module, exports) { 15240 15241/** 15242 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 15243 * 15244 * @private 15245 * @param {boolean} [fromRight] Specify iterating from right to left. 15246 * @returns {Function} Returns the new base function. 15247 */ 15248function createBaseFor(fromRight) { 15249 return function(object, iteratee, keysFunc) { 15250 var index = -1, 15251 iterable = Object(object), 15252 props = keysFunc(object), 15253 length = props.length; 15254 15255 while (length--) { 15256 var key = props[fromRight ? length : ++index]; 15257 if (iteratee(iterable[key], key, iterable) === false) { 15258 break; 15259 } 15260 } 15261 return object; 15262 }; 15263} 15264 15265module.exports = createBaseFor; 15266 15267 15268/***/ }), 15269/* 277 */ 15270/***/ (function(module, exports, __webpack_require__) { 15271 15272var isArrayLike = __webpack_require__(17); 15273 15274/** 15275 * Creates a `baseEach` or `baseEachRight` function. 15276 * 15277 * @private 15278 * @param {Function} eachFunc The function to iterate over a collection. 15279 * @param {boolean} [fromRight] Specify iterating from right to left. 15280 * @returns {Function} Returns the new base function. 15281 */ 15282function createBaseEach(eachFunc, fromRight) { 15283 return function(collection, iteratee) { 15284 if (collection == null) { 15285 return collection; 15286 } 15287 if (!isArrayLike(collection)) { 15288 return eachFunc(collection, iteratee); 15289 } 15290 var length = collection.length, 15291 index = fromRight ? length : -1, 15292 iterable = Object(collection); 15293 15294 while ((fromRight ? index-- : ++index < length)) { 15295 if (iteratee(iterable[index], index, iterable) === false) { 15296 break; 15297 } 15298 } 15299 return collection; 15300 }; 15301} 15302 15303module.exports = createBaseEach; 15304 15305 15306/***/ }), 15307/* 278 */ 15308/***/ (function(module, exports) { 15309 15310/** 15311 * The base implementation of `_.reduce` and `_.reduceRight`, without support 15312 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 15313 * 15314 * @private 15315 * @param {Array|Object} collection The collection to iterate over. 15316 * @param {Function} iteratee The function invoked per iteration. 15317 * @param {*} accumulator The initial value. 15318 * @param {boolean} initAccum Specify using the first or last element of 15319 * `collection` as the initial value. 15320 * @param {Function} eachFunc The function to iterate over `collection`. 15321 * @returns {*} Returns the accumulated value. 15322 */ 15323function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 15324 eachFunc(collection, function(value, index, collection) { 15325 accumulator = initAccum 15326 ? (initAccum = false, value) 15327 : iteratee(accumulator, value, index, collection); 15328 }); 15329 return accumulator; 15330} 15331 15332module.exports = baseReduce; 15333 15334 15335/***/ }), 15336/* 279 */ 15337/***/ (function(module, exports, __webpack_require__) { 15338 15339var createFind = __webpack_require__(96), 15340 findLastIndex = __webpack_require__(280); 15341 15342/** 15343 * This method is like `_.find` except that it iterates over elements of 15344 * `collection` from right to left. 15345 * 15346 * @static 15347 * @memberOf _ 15348 * @since 2.0.0 15349 * @category Collection 15350 * @param {Array|Object} collection The collection to inspect. 15351 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15352 * @param {number} [fromIndex=collection.length-1] The index to search from. 15353 * @returns {*} Returns the matched element, else `undefined`. 15354 * @example 15355 * 15356 * _.findLast([1, 2, 3, 4], function(n) { 15357 * return n % 2 == 1; 15358 * }); 15359 * // => 3 15360 */ 15361var findLast = createFind(findLastIndex); 15362 15363module.exports = findLast; 15364 15365 15366/***/ }), 15367/* 280 */ 15368/***/ (function(module, exports, __webpack_require__) { 15369 15370var baseFindIndex = __webpack_require__(114), 15371 baseIteratee = __webpack_require__(10), 15372 toInteger = __webpack_require__(115); 15373 15374/* Built-in method references for those with the same name as other `lodash` methods. */ 15375var nativeMax = Math.max, 15376 nativeMin = Math.min; 15377 15378/** 15379 * This method is like `_.findIndex` except that it iterates over elements 15380 * of `collection` from right to left. 15381 * 15382 * @static 15383 * @memberOf _ 15384 * @since 2.0.0 15385 * @category Array 15386 * @param {Array} array The array to inspect. 15387 * @param {Function} [predicate=_.identity] The function invoked per iteration. 15388 * @param {number} [fromIndex=array.length-1] The index to search from. 15389 * @returns {number} Returns the index of the found element, else `-1`. 15390 * @example 15391 * 15392 * var users = [ 15393 * { 'user': 'barney', 'active': true }, 15394 * { 'user': 'fred', 'active': false }, 15395 * { 'user': 'pebbles', 'active': false } 15396 * ]; 15397 * 15398 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 15399 * // => 2 15400 * 15401 * // The `_.matches` iteratee shorthand. 15402 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 15403 * // => 0 15404 * 15405 * // The `_.matchesProperty` iteratee shorthand. 15406 * _.findLastIndex(users, ['active', false]); 15407 * // => 2 15408 * 15409 * // The `_.property` iteratee shorthand. 15410 * _.findLastIndex(users, 'active'); 15411 * // => 0 15412 */ 15413function findLastIndex(array, predicate, fromIndex) { 15414 var length = array == null ? 0 : array.length; 15415 if (!length) { 15416 return -1; 15417 } 15418 var index = length - 1; 15419 if (fromIndex !== undefined) { 15420 index = toInteger(fromIndex); 15421 index = fromIndex < 0 15422 ? nativeMax(length + index, 0) 15423 : nativeMin(index, length - 1); 15424 } 15425 return baseFindIndex(array, baseIteratee(predicate, 3), index, true); 15426} 15427 15428module.exports = findLastIndex; 15429 15430
15431/***/ }), 15432/* 281 */ 15433/***/ (function(module, exports, __webpack_require__) { 15434 15435"use strict"; 15436 15437 15438var _interopRequireDefault = __webpack_require__(0); 15439 15440var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 15441 15442Object.defineProperty(exports, "__esModule", { 15443 value: true 15444}); 15445exports["default"] = void 0; // from https://github.com/acdlite/recompose/blob/master/src/packages/recompose/shallowEqual.js 15446 15447/** 15448 * Copyright (c) 2013-present, Facebook, Inc. 15449 * 15450 * This source code is licensed under the MIT license found in the 15451 * LICENSE file in the root directory of this source tree. 15452 * 15453 * @providesModule shallowEqual 15454 * @typechecks 15455 */ 15456 15457/* eslint-disable no-self-compare */ 15458 15459var hasOwnProperty = Object.prototype.hasOwnProperty; 15460/** 15461 * inlined Object.is polyfill to avoid requiring consumers ship their own 15462 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 15463 */ 15464 15465function is(x, y) { 15466 // SameValue algorithm 15467 if (x === y) { 15468 // Steps 1-5, 7-10 15469 // Steps 6.b-6.e: +0 != -0 15470 // Added the nonzero y check to make Flow happy, but it is redundant 15471 return x !== 0 || y !== 0 || 1 / x === 1 / y; 15472 } // Step 6.a: NaN == NaN 15473 15474 15475 return x !== x && y !== y; 15476} 15477/** 15478 * Performs equality by iterating through keys on an object and returning false 15479 * when any key has values which are not strictly equal between the arguments. 15480 * Returns true when the values of all keys are strictly equal. 15481 */ 15482 15483 15484function shallowEqual(objA, objB) { 15485 if (is(objA, objB)) { 15486 return true; 15487 } 15488 15489 if ((0, _typeof2["default"])(objA) !== 'object' || objA === null || (0, _typeof2["default"])(objB) !== 'object' || objB === null) { 15490 return false; 15491 } 15492 15493 var keysA = Object.keys(objA); 15494 var keysB = Object.keys(objB); 15495 15496 if (keysA.length !== keysB.length) { 15497 return false; 15498 } // Test for A's keys different from B. 15499 15500 15501 for (var i = 0; i < keysA.length; i++) { 15502 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 15503 return false; 15504 } 15505 } 15506 15507 return true; 15508} 15509 15510var _default = shallowEqual; 15511exports["default"] = _default; 15512 15513/***/ }), 15514/* 282 */ 15515/***/ (function(module, exports, __webpack_require__) { 15516 15517"use strict"; 15518 15519 15520Object.defineProperty(exports, "__esModule", { 15521 value: true 15522}); 15523exports.ixInstances = void 0; 15524 15525var _constants = __webpack_require__(4); 15526 15527var _shared = __webpack_require__(15); 15528 15529var _timm = __webpack_require__(22); 15530/* eslint-env browser */ 15531 15532 15533var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 15534 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 15535 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 15536 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 15537 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 15538 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 15539 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; 15540var _shared$IX2EasingUtil = _shared.IX2EasingUtils, 15541 optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, 15542 applyEasing = _shared$IX2EasingUtil.applyEasing, 15543 createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; 15544var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; 15545var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 15546 getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, 15547 getRenderType = _shared$IX2VanillaUti.getRenderType, 15548 getStyleProp = _shared$IX2VanillaUti.getStyleProp; 15549
15550var continuousInstance = function continuousInstance(state, action) { 15551 var lastPosition = state.position, 15552 parameterId = state.parameterId, 15553 actionGroups = state.actionGroups, 15554 destinationKeys = state.destinationKeys, 15555 smoothing = state.smoothing, 15556 restingValue = state.restingValue, 15557 actionTypeId = state.actionTypeId, 15558 customEasingFn = state.customEasingFn, 15559 skipMotion = state.skipMotion, 15560 skipToValue = state.skipToValue; 15561 var parameters = action.payload.parameters; 15562 var velocity = Math.max(1 - smoothing, 0.01); 15563 var paramValue = parameters[parameterId]; 15564 15565 if (paramValue == null) { 15566 velocity = 1; 15567 paramValue = restingValue; 15568 } 15569 15570 var nextPosition = Math.max(paramValue, 0) || 0; 15571 var positionDiff = optimizeFloat(nextPosition - lastPosition); 15572 var position = skipMotion ? skipToValue : optimizeFloat(lastPosition + positionDiff * velocity); 15573 var keyframePosition = position * 100; 15574 15575 if (position === lastPosition && state.current) { 15576 return state; 15577 } 15578 15579 var fromActionItem; 15580 var toActionItem; 15581 var positionOffset; 15582 var positionRange; 15583 15584 for (var i = 0, length = actionGroups.length; i < length; i++) { 15585 var _actionGroups$i = actionGroups[i], 15586 keyframe = _actionGroups$i.keyframe, 15587 actionItems = _actionGroups$i.actionItems; 15588 15589 if (i === 0) { 15590 fromActionItem = actionItems[0]; 15591 } 15592 15593 if (keyframePosition >= keyframe) { 15594 fromActionItem = actionItems[0]; 15595 var nextGroup = actionGroups[i + 1]; 15596 var hasNextItem = nextGroup && keyframePosition !== keyframe; 15597 toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; 15598 15599 if (hasNextItem) { 15600 positionOffset = keyframe / 100; 15601 positionRange = (nextGroup.keyframe - keyframe) / 100; 15602 } 15603 } 15604 } 15605 15606 var current = {}; 15607 15608 if (fromActionItem && !toActionItem) { 15609 for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { 15610 var key = destinationKeys[_i]; 15611 current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); 15612 } 15613 } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { 15614 var localPosition = (position - positionOffset) / positionRange; 15615 var easing = fromActionItem.config.easing; 15616 var eased = applyEasing(easing, localPosition, customEasingFn); 15617 15618 for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { 15619 var _key = destinationKeys[_i2]; 15620 var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); 15621 var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe â toVal and fromVal could potentially be null, need to update type higher to determine number 15622 15623 var diff = toVal - fromVal; // $FlowFixMe 15624 15625 var value = diff * eased + fromVal; 15626 current[_key] = value; 15627 } 15628 } 15629 15630 return (0, _timm.merge)(state, { 15631 position: position, 15632 current: current 15633 }); 15634}; 15635 15636var timedInstance = function timedInstance(state, action) { 15637 var _state = state, 15638 active = _state.active, 15639 origin = _state.origin, 15640 start = _state.start, 15641 immediate = _state.immediate, 15642 renderType = _state.renderType, 15643 verbose = _state.verbose, 15644 actionItem = _state.actionItem, 15645 destination = _state.destination, 15646 destinationKeys = _state.destinationKeys, 15647 pluginDuration = _state.pluginDuration, 15648 instanceDelay = _state.instanceDelay, 15649 customEasingFn = _state.customEasingFn, 15650 skipMotion = _state.skipMotion; 15651 var easing = actionItem.config.easing; 15652 var _actionItem$config = actionItem.config, 15653 duration = _actionItem$config.duration, 15654 delay = _actionItem$config.delay; 15655 15656 if (pluginDuration != null) { 15657 duration = pluginDuration; 15658 } 15659 15660 delay = instanceDelay != null ? instanceDelay : delay; 15661 15662 if (renderType === RENDER_GENERAL) { 15663 duration = 0; 15664 } else if (immediate || skipMotion) { 15665 duration = delay = 0; 15666 } 15667 15668 var now = action.payload.now; 15669 15670 if (active && origin) { 15671 var delta = now - (start + delay); 15672 15673 if (verbose) { 15674 var verboseDelta = now - start; 15675 var verboseDuration = duration + delay; 15676 var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); 15677 state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); 15678 } 15679 15680 if (delta < 0) { 15681 return state; 15682 } 15683 15684 var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); 15685 var eased = applyEasing(easing, position, customEasingFn); 15686 var newProps = {}; 15687 var current = null; 15688 15689 if (destinationKeys.length) { 15690 current = destinationKeys.reduce(function (result, key) { 15691 var destValue = destination[key]; 15692 var originVal = parseFloat(origin[key]) || 0; 15693 var diff = parseFloat(destValue) - originVal; 15694 var value = diff * eased + originVal; 15695 result[key] = value; 15696 return result; 15697 }, {}); 15698 } 15699 15700 newProps.current = current; 15701 newProps.position = position; 15702 15703 if (position === 1) { 15704 newProps.active = false;
15705 newProps.complete = true; 15706 } 15707 15708 return (0, _timm.merge)(state, newProps); 15709 } 15710 15711 return state; 15712}; 15713 15714var ixInstances = function ixInstances() { 15715 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 15716 var action = arguments.length > 1 ? arguments[1] : undefined; 15717 15718 switch (action.type) { 15719 case IX2_RAW_DATA_IMPORTED: 15720 { 15721 return action.payload.ixInstances || Object.freeze({}); 15722 } 15723 15724 case IX2_SESSION_STOPPED: 15725 { 15726 return Object.freeze({}); 15727 } 15728 15729 case IX2_INSTANCE_ADDED: 15730 { 15731 var _action$payload = action.payload, 15732 instanceId = _action$payload.instanceId, 15733 elementId = _action$payload.elementId, 15734 actionItem = _action$payload.actionItem, 15735 eventId = _action$payload.eventId, 15736 eventTarget = _action$payload.eventTarget, 15737 eventStateKey = _action$payload.eventStateKey, 15738 actionListId = _action$payload.actionListId, 15739 groupIndex = _action$payload.groupIndex, 15740 isCarrier = _action$payload.isCarrier, 15741 origin = _action$payload.origin, 15742 destination = _action$payload.destination, 15743 immediate = _action$payload.immediate, 15744 verbose = _action$payload.verbose, 15745 continuous = _action$payload.continuous, 15746 parameterId = _action$payload.parameterId, 15747 actionGroups = _action$payload.actionGroups, 15748 smoothing = _action$payload.smoothing, 15749 restingValue = _action$payload.restingValue, 15750 pluginInstance = _action$payload.pluginInstance, 15751 pluginDuration = _action$payload.pluginDuration, 15752 instanceDelay = _action$payload.instanceDelay, 15753 skipMotion = _action$payload.skipMotion, 15754 skipToValue = _action$payload.skipToValue; 15755 var actionTypeId = actionItem.actionTypeId; 15756 var renderType = getRenderType(actionTypeId); 15757 var styleProp = getStyleProp(renderType, actionTypeId); 15758 var destinationKeys = Object.keys(destination).filter(function (key) { 15759 return destination[key] != null; 15760 }); 15761 var easing = actionItem.config.easing; 15762 return (0, _timm.set)(state, instanceId, { 15763 id: instanceId, 15764 elementId: elementId, 15765 active: false, 15766 position: 0, 15767 start: 0, 15768 origin: origin, 15769 destination: destination, 15770 destinationKeys: destinationKeys, 15771 immediate: immediate, 15772 verbose: verbose, 15773 current: null, 15774 actionItem: actionItem, 15775 actionTypeId: actionTypeId, 15776 eventId: eventId, 15777 eventTarget: eventTarget, 15778 eventStateKey: eventStateKey, 15779 actionListId: actionListId, 15780 groupIndex: groupIndex, 15781 renderType: renderType, 15782 isCarrier: isCarrier, 15783 styleProp: styleProp, 15784 continuous: continuous, 15785 parameterId: parameterId, 15786 actionGroups: actionGroups, 15787 smoothing: smoothing, 15788 restingValue: restingValue, 15789 pluginInstance: pluginInstance, 15790 pluginDuration: pluginDuration, 15791 instanceDelay: instanceDelay, 15792 skipMotion: skipMotion, 15793 skipToValue: skipToValue, 15794 customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined 15795 }); 15796 } 15797 15798 case IX2_INSTANCE_STARTED: 15799 { 15800 var _action$payload2 = action.payload, 15801 _instanceId = _action$payload2.instanceId, 15802 time = _action$payload2.time; 15803 return (0, _timm.mergeIn)(state, [_instanceId], { 15804 active: true, 15805 complete: false, 15806 start: time 15807 }); 15808 } 15809 15810 case IX2_INSTANCE_REMOVED: 15811 { 15812 var _instanceId2 = action.payload.instanceId; 15813 15814 if (!state[_instanceId2]) { 15815 return state; 15816 } 15817 15818 var newState = {}; 15819 var keys = Object.keys(state); 15820 var length = keys.length; 15821 15822 for (var i = 0; i < length; i++) { 15823 var key = keys[i]; 15824 15825 if (key !== _instanceId2) { 15826 newState[key] = state[key]; 15827 } 15828 } 15829 15830 return newState; 15831 } 15832 15833 case IX2_ANIMATION_FRAME_CHANGED: 15834 { 15835 var _newState = state; 15836 15837 var _keys = Object.keys(state); 15838 15839 var _length3 = _keys.length; 15840 15841 for (var _i3 = 0; _i3 < _length3; _i3++) { 15842 var _key2 = _keys[_i3]; 15843 var instance = state[_key2]; 15844 var reducer = instance.continuous ? continuousInstance : timedInstance; 15845 _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); 15846 } 15847 15848 return _newState; 15849 } 15850 15851 default: 15852 { 15853 return state; 15854 } 15855 } 15856}; 15857 15858exports.ixInstances = ixInstances; 15859 15860/***/ }), 15861/* 283 */ 15862/***/ (function(module, exports, __webpack_require__) { 15863 15864"use strict"; 15865 15866 15867Object.defineProperty(exports, "__esModule", { 15868 value: true 15869}); 15870exports.ixParameters = void 0; 15871 15872var _constants = __webpack_require__(4); 15873 15874var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
15875 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 15876 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 15877 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore 15878 15879var ixParameters = function ixParameters() { 15880 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { 15881 /*mutable flat state*/ 15882 }; 15883 var action = arguments.length > 1 ? arguments[1] : undefined; 15884 15885 switch (action.type) { 15886 case IX2_RAW_DATA_IMPORTED: 15887 { 15888 return action.payload.ixParameters || { 15889 /*mutable flat state*/ 15890 }; 15891 } 15892 15893 case IX2_SESSION_STOPPED: 15894 { 15895 return { 15896 /*mutable flat state*/ 15897 }; 15898 } 15899 15900 case IX2_PARAMETER_CHANGED: 15901 { 15902 var _action$payload = action.payload, 15903 key = _action$payload.key, 15904 value = _action$payload.value; 15905 state[key] = value; 15906 return state; 15907 } 15908 15909 default: 15910 { 15911 return state; 15912 } 15913 } 15914}; 15915 15916exports.ixParameters = ixParameters; 15917 15918/***/ }), 15919/* 284 */ 15920/***/ (function(module, exports) { 15921 15922function _objectWithoutPropertiesLoose(source, excluded) { 15923 if (source == null) return {}; 15924 var target = {}; 15925 var sourceKeys = Object.keys(source); 15926 var key, i; 15927 15928 for (i = 0; i < sourceKeys.length; i++) { 15929 key = sourceKeys[i]; 15930 if (excluded.indexOf(key) >= 0) continue; 15931 target[key] = source[key]; 15932 } 15933 15934 return target; 15935} 15936 15937module.exports = _objectWithoutPropertiesLoose; 15938 15939/***/ }), 15940/* 285 */ 15941/***/ (function(module, exports, __webpack_require__) { 15942 15943var baseKeys = __webpack_require__(57), 15944 getTag = __webpack_require__(59), 15945 isArrayLike = __webpack_require__(17), 15946 isString = __webpack_require__(286), 15947 stringSize = __webpack_require__(287); 15948 15949/** `Object#toString` result references. */ 15950var mapTag = '[object Map]', 15951 setTag = '[object Set]'; 15952 15953/** 15954 * Gets the size of `collection` by returning its length for array-like 15955 * values or the number of own enumerable string keyed properties for objects. 15956 * 15957 * @static 15958 * @memberOf _ 15959 * @since 0.1.0 15960 * @category Collection 15961 * @param {Array|Object|string} collection The collection to inspect. 15962 * @returns {number} Returns the collection size. 15963 * @example 15964 * 15965 * _.size([1, 2, 3]); 15966 * // => 3 15967 * 15968 * _.size({ 'a': 1, 'b': 2 }); 15969 * // => 2 15970 * 15971 * _.size('pebbles'); 15972 * // => 7 15973 */ 15974function size(collection) { 15975 if (collection == null) { 15976 return 0; 15977 } 15978 if (isArrayLike(collection)) { 15979 return isString(collection) ? stringSize(collection) : collection.length; 15980 } 15981 var tag = getTag(collection); 15982 if (tag == mapTag || tag == setTag) { 15983 return collection.size; 15984 } 15985 return baseKeys(collection).length; 15986} 15987 15988module.exports = size; 15989 15990 15991/***/ }), 15992/* 286 */ 15993/***/ (function(module, exports, __webpack_require__) { 15994 15995var baseGetTag = __webpack_require__(16), 15996 isArray = __webpack_require__(2), 15997 isObjectLike = __webpack_require__(12); 15998 15999/** `Object#toString` result references. */ 16000var stringTag = '[object String]'; 16001 16002/** 16003 * Checks if `value` is classified as a `String` primitive or object. 16004 * 16005 * @static 16006 * @since 0.1.0 16007 * @memberOf _ 16008 * @category Lang 16009 * @param {*} value The value to check. 16010 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 16011 * @example 16012 * 16013 * _.isString('abc'); 16014 * // => true 16015 * 16016 * _.isString(1); 16017 * // => false 16018 */ 16019function isString(value) { 16020 return typeof value == 'string' || 16021 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 16022} 16023 16024module.exports = isString; 16025 16026 16027/***/ }), 16028/* 287 */ 16029/***/ (function(module, exports, __webpack_require__) { 16030 16031var asciiSize = __webpack_require__(288), 16032 hasUnicode = __webpack_require__(289), 16033 unicodeSize = __webpack_require__(290); 16034 16035/** 16036 * Gets the number of symbols in `string`. 16037 * 16038 * @private 16039 * @param {string} string The string to inspect. 16040 * @returns {number} Returns the string size. 16041 */ 16042function stringSize(string) { 16043 return hasUnicode(string) 16044 ? unicodeSize(string) 16045 : asciiSize(string); 16046} 16047 16048module.exports = stringSize; 16049 16050 16051/***/ }), 16052/* 288 */ 16053/***/ (function(module, exports, __webpack_require__) { 16054 16055var baseProperty = __webpack_require__(113); 16056 16057/** 16058 * Gets the size of an ASCII `string`. 16059 * 16060 * @private 16061 * @param {string} string The string inspect. 16062 * @returns {number} Returns the string size. 16063 */ 16064var asciiSize = baseProperty('length'); 16065 16066module.exports = asciiSize; 16067 16068 16069/***/ }), 16070/* 289 */
vendor: 2,921 bytes, lines 16071-16160
16071/***/ (function(module, exports) { 16072 16073/** Used to compose unicode character classes. */ 16074var rsAstralRange = '\\ud800-\\udfff', 16075 rsComboMarksRange = '\\u0300-\\u036f', 16076 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 16077 rsComboSymbolsRange = '\\u20d0-\\u20ff', 16078 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 16079 rsVarRange = '\\ufe0e\\ufe0f'; 16080 16081/** Used to compose unicode capture groups. */ 16082var rsZWJ = '\\u200d'; 16083 16084/** 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/). */ 16085var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 16086 16087/** 16088 * Checks if `string` contains Unicode symbols. 16089 * 16090 * @private 16091 * @param {string} string The string to inspect. 16092 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 16093 */ 16094function hasUnicode(string) { 16095 return reHasUnicode.test(string); 16096} 16097 16098module.exports = hasUnicode; 16099 16100 16101/***/ }), 16102/* 290 */ 16103/***/ (function(module, exports) { 16104 16105/** Used to compose unicode character classes. */ 16106var rsAstralRange = '\\ud800-\\udfff', 16107 rsComboMarksRange = '\\u0300-\\u036f', 16108 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 16109 rsComboSymbolsRange = '\\u20d0-\\u20ff', 16110 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 16111 rsVarRange = '\\ufe0e\\ufe0f'; 16112 16113/** Used to compose unicode capture groups. */ 16114var rsAstral = '[' + rsAstralRange + ']', 16115 rsCombo = '[' + rsComboRange + ']', 16116 rsFitz = '\\ud83c[\\udffb-\\udfff]', 16117 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 16118 rsNonAstral = '[^' + rsAstralRange + ']', 16119 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 16120 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 16121 rsZWJ = '\\u200d'; 16122 16123/** Used to compose unicode regexes. */ 16124var reOptMod = rsModifier + '?', 16125 rsOptVar = '[' + rsVarRange + ']?', 16126 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 16127 rsSeq = rsOptVar + reOptMod + rsOptJoin, 16128 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 16129 16130/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 16131var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 16132 16133/** 16134 * Gets the size of a Unicode `string`. 16135 * 16136 * @private 16137 * @param {string} string The string inspect. 16138 * @returns {number} Returns the string size. 16139 */ 16140function unicodeSize(string) { 16141 var result = reUnicode.lastIndex = 0; 16142 while (reUnicode.test(string)) { 16143 ++result; 16144 } 16145 return result; 16146} 16147 16148module.exports = unicodeSize; 16149 16150 16151/***/ }), 16152/* 291 */ 16153/***/ (function(module, exports, __webpack_require__) { 16154 16155var baseIteratee = __webpack_require__(10), 16156 negate = __webpack_require__(292), 16157 pickBy = __webpack_require__(293); 16158 16159/** 16160 * The opposite of `_.pickBy`;
16160 this method creates an object composed of 16161 * the own and inherited enumerable string keyed properties of `object` that 16162 * `predicate` doesn't return truthy for. The predicate is invoked with two 16163 * arguments: (value, key). 16164 * 16165 * @static 16166 * @memberOf _ 16167 * @since 4.0.0 16168 * @category Object 16169 * @param {Object} object The source object. 16170 * @param {Function} [predicate=_.identity] The function invoked per property. 16171 * @returns {Object} Returns the new object. 16172 * @example 16173 * 16174 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 16175 * 16176 * _.omitBy(object, _.isNumber); 16177 * // => { 'b': '2' } 16178 */ 16179function omitBy(object, predicate) { 16180 return pickBy(object, negate(baseIteratee(predicate))); 16181} 16182 16183module.exports = omitBy; 16184 16185 16186/***/ }), 16187/* 292 */ 16188/***/ (function(module, exports) { 16189 16190/** Error message constants. */ 16191var FUNC_ERROR_TEXT = 'Expected a function'; 16192 16193/** 16194 * Creates a function that negates the result of the predicate `func`. The 16195 * `func` predicate is invoked with the `this` binding and arguments of the 16196 * created function. 16197 * 16198 * @static 16199 * @memberOf _ 16200 * @since 3.0.0 16201 * @category Function 16202 * @param {Function} predicate The predicate to negate. 16203 * @returns {Function} Returns the new negated function. 16204 * @example 16205 * 16206 * function isEven(n) { 16207 * return n % 2 == 0; 16208 * } 16209 * 16210 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 16211 * // => [1, 3, 5] 16212 */ 16213function negate(predicate) { 16214 if (typeof predicate != 'function') { 16215 throw new TypeError(FUNC_ERROR_TEXT); 16216 } 16217 return function() { 16218 var args = arguments; 16219 switch (args.length) { 16220 case 0: return !predicate.call(this); 16221 case 1: return !predicate.call(this, args[0]); 16222 case 2: return !predicate.call(this, args[0], args[1]); 16223 case 3: return !predicate.call(this, args[0], args[1], args[2]); 16224 } 16225 return !predicate.apply(this, args); 16226 }; 16227} 16228 16229module.exports = negate; 16230 16231 16232/***/ }), 16233/* 293 */ 16234/***/ (function(module, exports, __webpack_require__) { 16235 16236var arrayMap = __webpack_require__(112), 16237 baseIteratee = __webpack_require__(10), 16238 basePickBy = __webpack_require__(294), 16239 getAllKeysIn = __webpack_require__(297); 16240 16241/**
16242 * Creates an object composed of the `object` properties `predicate` returns 16243 * truthy for. The predicate is invoked with two arguments: (value, key). 16244 * 16245 * @static 16246 * @memberOf _ 16247 * @since 4.0.0 16248 * @category Object 16249 * @param {Object} object The source object. 16250 * @param {Function} [predicate=_.identity] The function invoked per property. 16251 * @returns {Object} Returns the new object. 16252 * @example 16253 * 16254 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 16255 * 16256 * _.pickBy(object, _.isNumber); 16257 * // => { 'a': 1, 'c': 3 } 16258 */ 16259function pickBy(object, predicate) { 16260 if (object == null) { 16261 return {}; 16262 } 16263 var props = arrayMap(getAllKeysIn(object), function(prop) { 16264 return [prop]; 16265 }); 16266 predicate = baseIteratee(predicate); 16267 return basePickBy(object, props, function(value, path) { 16268 return predicate(value, path[0]); 16269 }); 16270} 16271 16272module.exports = pickBy; 16273 16274 16275/***/ }), 16276/* 294 */ 16277/***/ (function(module, exports, __webpack_require__) { 16278 16279var baseGet = __webpack_require__(61), 16280 baseSet = __webpack_require__(295), 16281 castPath = __webpack_require__(37); 16282 16283/** 16284 * The base implementation of `_.pickBy` without support for iteratee shorthands. 16285 * 16286 * @private 16287 * @param {Object} object The source object. 16288 * @param {string[]} paths The property paths to pick. 16289 * @param {Function} predicate The function invoked per property. 16290 * @returns {Object} Returns the new object. 16291 */ 16292function basePickBy(object, paths, predicate) { 16293 var index = -1, 16294 length = paths.length, 16295 result = {}; 16296 16297 while (++index < length) { 16298 var path = paths[index], 16299 value = baseGet(object, path); 16300 16301 if (predicate(value, path)) { 16302 baseSet(result, castPath(path, object), value); 16303 } 16304 } 16305 return result; 16306} 16307 16308module.exports = basePickBy; 16309 16310 16311/***/ }), 16312/* 295 */ 16313/***/ (function(module, exports, __webpack_require__) { 16314 16315var assignValue = __webpack_require__(296), 16316 castPath = __webpack_require__(37), 16317 isIndex = __webpack_require__(54), 16318 isObject = __webpack_require__(8), 16319 toKey = __webpack_require__(24); 16320 16321/** 16322 * The base implementation of `_.set`. 16323 * 16324 * @private 16325 * @param {Object} object The object to modify. 16326 * @param {Array|string} path The path of the property to set. 16327 * @param {*} value The value to set. 16328 * @param {Function} [customizer] The function to customize path creation. 16329 * @returns {Object} Returns `object`. 16330 */ 16331function baseSet(object, path, value, customizer) { 16332 if (!isObject(object)) { 16333 return object; 16334 } 16335 path = castPath(path, object); 16336 16337 var index = -1, 16338 length = path.length, 16339 lastIndex = length - 1, 16340 nested = object; 16341 16342 while (nested != null && ++index < length) { 16343 var key = toKey(path[index]), 16344 newValue = value; 16345 16346 if (key === '__proto__' || key === 'constructor' || key === 'prototype') { 16347 return object; 16348 } 16349 16350 if (index != lastIndex) { 16351 var objValue = nested[key]; 16352 newValue = customizer ? customizer(objValue, key, nested) : undefined; 16353 if (newValue === undefined) { 16354 newValue = isObject(objValue) 16355 ? objValue 16356 : (isIndex(path[index + 1]) ? [] : {}); 16357 } 16358 } 16359 assignValue(nested, key, newValue); 16360 nested = nested[key]; 16361 } 16362 return object; 16363} 16364 16365module.exports = baseSet; 16366 16367 16368/***/ }), 16369/* 296 */ 16370/***/ (function(module, exports, __webpack_require__) { 16371 16372var baseAssignValue = __webpack_require__(124), 16373 eq = __webpack_require__(49); 16374 16375/** Used for built-in method references. */ 16376var objectProto = Object.prototype; 16377 16378/** Used to check objects for own properties. */ 16379var hasOwnProperty = objectProto.hasOwnProperty; 16380 16381/** 16382 * Assigns `value` to `key` of `object` if the existing value is not equivalent 16383 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 16384 * for equality comparisons. 16385 * 16386 * @private 16387 * @param {Object} object The object to modify. 16388 * @param {string} key The key of the property to assign. 16389 * @param {*} value The value to assign. 16390 */ 16391function assignValue(object, key, value) { 16392 var objValue = object[key]; 16393 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 16394 (value === undefined && !(key in object))) { 16395 baseAssignValue(object, key, value); 16396 } 16397} 16398 16399module.exports = assignValue; 16400 16401 16402/***/ }), 16403/* 297 */ 16404/***/ (function(module, exports, __webpack_require__) { 16405 16406var baseGetAllKeys = __webpack_require__(103), 16407 getSymbolsIn = __webpack_require__(298), 16408 keysIn = __webpack_require__(300); 16409 16410/** 16411 * Creates an array of own and inherited enumerable property names and 16412 * symbols of `object`. 16413 * 16414 * @private 16415 * @param {Object} object The object to query. 16416 * @returns {Array} Returns the array of property names and symbols. 16417 */ 16418function getAllKeysIn(object) { 16419 return baseGetAllKeys(object, keysIn, getSymbolsIn); 16420} 16421 16422module.exports = getAllKeysIn; 16423 16424 16425/***/ }), 16426/* 298 */ 16427/***/ (function(module, exports, __webpack_require__) { 16428 16429var arrayPush = __webpack_require__(52), 16430 getPrototype = __webpack_require__(299), 16431 getSymbols = __webpack_require__(104), 16432 stubArray = __webpack_require__(105); 16433 16434/* Built-in method references for those with the same name as other `lodash` methods. */ 16435var nativeGetSymbols = Object.getOwnPropertySymbols; 16436 16437/** 16438 * Creates an array of the own and inherited enumerable symbols of `object`. 16439 * 16440 * @private 16441 * @param {Object} object The object to query. 16442 * @returns {Array} Returns the array of symbols. 16443 */ 16444var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 16445 var result = []; 16446 while (object) {
vendor: 8,847 bytes, lines 16447-16805
16447 arrayPush(result, getSymbols(object)); 16448 object = getPrototype(object); 16449 } 16450 return result; 16451}; 16452 16453module.exports = getSymbolsIn; 16454 16455 16456/***/ }), 16457/* 299 */ 16458/***/ (function(module, exports, __webpack_require__) { 16459 16460var overArg = __webpack_require__(108); 16461 16462/** Built-in value references. */ 16463var getPrototype = overArg(Object.getPrototypeOf, Object); 16464 16465module.exports = getPrototype; 16466 16467 16468/***/ }), 16469/* 300 */ 16470/***/ (function(module, exports, __webpack_require__) { 16471 16472var arrayLikeKeys = __webpack_require__(106), 16473 baseKeysIn = __webpack_require__(301), 16474 isArrayLike = __webpack_require__(17); 16475 16476/** 16477 * Creates an array of the own and inherited enumerable property names of `object`. 16478 * 16479 * **Note:** Non-object values are coerced to objects. 16480 * 16481 * @static 16482 * @memberOf _ 16483 * @since 3.0.0 16484 * @category Object 16485 * @param {Object} object The object to query. 16486 * @returns {Array} Returns the array of property names. 16487 * @example 16488 * 16489 * function Foo() { 16490 * this.a = 1; 16491 * this.b = 2; 16492 * } 16493 * 16494 * Foo.prototype.c = 3; 16495 * 16496 * _.keysIn(new Foo); 16497 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 16498 */ 16499function keysIn(object) { 16500 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 16501} 16502 16503module.exports = keysIn; 16504 16505 16506/***/ }), 16507/* 301 */ 16508/***/ (function(module, exports, __webpack_require__) { 16509 16510var isObject = __webpack_require__(8), 16511 isPrototype = __webpack_require__(58), 16512 nativeKeysIn = __webpack_require__(302); 16513 16514/** Used for built-in method references. */ 16515var objectProto = Object.prototype; 16516 16517/** Used to check objects for own properties. */ 16518var hasOwnProperty = objectProto.hasOwnProperty; 16519 16520/** 16521 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 16522 * 16523 * @private 16524 * @param {Object} object The object to query. 16525 * @returns {Array} Returns the array of property names. 16526 */ 16527function baseKeysIn(object) { 16528 if (!isObject(object)) { 16529 return nativeKeysIn(object); 16530 } 16531 var isProto = isPrototype(object), 16532 result = []; 16533 16534 for (var key in object) { 16535 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 16536 result.push(key); 16537 } 16538 } 16539 return result; 16540} 16541 16542module.exports = baseKeysIn; 16543 16544 16545/***/ }), 16546/* 302 */ 16547/***/ (function(module, exports) { 16548 16549/** 16550 * This function is like 16551 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 16552 * except that it includes inherited enumerable properties. 16553 * 16554 * @private 16555 * @param {Object} object The object to query. 16556 * @returns {Array} Returns the array of property names. 16557 */ 16558function nativeKeysIn(object) { 16559 var result = []; 16560 if (object != null) { 16561 for (var key in Object(object)) { 16562 result.push(key); 16563 } 16564 } 16565 return result; 16566} 16567 16568module.exports = nativeKeysIn; 16569 16570 16571/***/ }), 16572/* 303 */ 16573/***/ (function(module, exports, __webpack_require__) { 16574 16575var baseKeys = __webpack_require__(57), 16576 getTag = __webpack_require__(59), 16577 isArguments = __webpack_require__(36), 16578 isArray = __webpack_require__(2), 16579 isArrayLike = __webpack_require__(17), 16580 isBuffer = __webpack_require__(53), 16581 isPrototype = __webpack_require__(58), 16582 isTypedArray = __webpack_require__(55); 16583 16584/** `Object#toString` result references. */ 16585var mapTag = '[object Map]', 16586 setTag = '[object Set]'; 16587 16588/** Used for built-in method references. */ 16589var objectProto = Object.prototype; 16590 16591/** Used to check objects for own properties. */ 16592var hasOwnProperty = objectProto.hasOwnProperty; 16593 16594/** 16595 * Checks if `value` is an empty object, collection, map, or set. 16596 * 16597 * Objects are considered empty if they have no own enumerable string keyed 16598 * properties. 16599 * 16600 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 16601 * jQuery-like collections are considered empty if they have a `length` of `0`. 16602 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 16603 * 16604 * @static 16605 * @memberOf _ 16606 * @since 0.1.0 16607 * @category Lang 16608 * @param {*} value The value to check. 16609 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 16610 * @example 16611 * 16612 * _.isEmpty(null); 16613 * // => true 16614 * 16615 * _.isEmpty(true); 16616 * // => true 16617 * 16618 * _.isEmpty(1); 16619 * // => true 16620 * 16621 * _.isEmpty([1, 2, 3]); 16622 * // => false 16623 * 16624 * _.isEmpty({ 'a': 1 }); 16625 * // => false 16626 */ 16627function isEmpty(value) { 16628 if (value == null) { 16629 return true; 16630 } 16631 if (isArrayLike(value) && 16632 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 16633 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 16634 return !value.length; 16635 } 16636 var tag = getTag(value); 16637 if (tag == mapTag || tag == setTag) { 16638 return !value.size; 16639 } 16640 if (isPrototype(value)) { 16641 return !baseKeys(value).length; 16642 } 16643 for (var key in value) { 16644 if (hasOwnProperty.call(value, key)) { 16645 return false; 16646 } 16647 } 16648 return true; 16649} 16650 16651module.exports = isEmpty; 16652 16653 16654/***/ }), 16655/* 304 */ 16656/***/ (function(module, exports, __webpack_require__) { 16657 16658var baseAssignValue = __webpack_require__(124), 16659 baseForOwn = __webpack_require__(122), 16660 baseIteratee = __webpack_require__(10); 16661 16662/** 16663 * Creates an object with the same keys as `object` and values generated 16664 * by running each own enumerable string keyed property of `object` thru 16665 * `iteratee`. The iteratee is invoked with three arguments: 16666 * (value, key, object). 16667 * 16668 * @static 16669 * @memberOf _ 16670 * @since 2.4.0 16671 * @category Object 16672 * @param {Object} object The object to iterate over. 16673 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 16674 * @returns {Object} Returns the new mapped object. 16675 * @see _.mapKeys 16676 * @example 16677 * 16678 * var users = { 16679 * 'fred': { 'user': 'fred', 'age': 40 }, 16680 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 16681 * }; 16682 * 16683 * _.mapValues(users, function(o) { return o.age; }); 16684 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 16685 * 16686 * // The `_.property` iteratee shorthand. 16687 * _.mapValues(users, 'age'); 16688 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 16689 */ 16690function mapValues(object, iteratee) { 16691 var result = {}; 16692 iteratee = baseIteratee(iteratee, 3); 16693 16694 baseForOwn(object, function(value, key, object) { 16695 baseAssignValue(result, key, iteratee(value, key, object)); 16696 }); 16697 return result; 16698} 16699 16700module.exports = mapValues; 16701 16702 16703/***/ }), 16704/* 305 */ 16705/***/ (function(module, exports, __webpack_require__) { 16706 16707var arrayEach = __webpack_require__(306), 16708 baseEach = __webpack_require__(121), 16709 castFunction = __webpack_require__(307), 16710 isArray = __webpack_require__(2); 16711 16712/** 16713 * Iterates over elements of `collection` and invokes `iteratee` for each element. 16714 * The iteratee is invoked with three arguments: (value, index|key, collection). 16715 * Iteratee functions may exit iteration early by explicitly returning `false`. 16716 * 16717 * **Note:** As with other "Collections" methods, objects with a "length" 16718 * property are iterated like arrays. To avoid this behavior use `_.forIn` 16719 * or `_.forOwn` for object iteration. 16720 * 16721 * @static 16722 * @memberOf _ 16723 * @since 0.1.0 16724 * @alias each 16725 * @category Collection 16726 * @param {Array|Object} collection The collection to iterate over. 16727 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 16728 * @returns {Array|Object} Returns `collection`. 16729 * @see _.forEachRight 16730 * @example 16731 * 16732 * _.forEach([1, 2], function(value) { 16733 * console.log(value); 16734 * }); 16735 * // => Logs `1` then `2`. 16736 * 16737 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 16738 * console.log(key); 16739 * }); 16740 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 16741 */ 16742function forEach(collection, iteratee) { 16743 var func = isArray(collection) ? arrayEach : baseEach; 16744 return func(collection, castFunction(iteratee)); 16745} 16746 16747module.exports = forEach; 16748 16749 16750/***/ }), 16751/* 306 */ 16752/***/ (function(module, exports) { 16753 16754/** 16755 * A specialized version of `_.forEach` for arrays without support for 16756 * iteratee shorthands. 16757 * 16758 * @private 16759 * @param {Array} [array] The array to iterate over. 16760 * @param {Function} iteratee The function invoked per iteration. 16761 * @returns {Array} Returns `array`. 16762 */ 16763function arrayEach(array, iteratee) { 16764 var index = -1, 16765 length = array == null ? 0 : array.length; 16766 16767 while (++index < length) { 16768 if (iteratee(array[index], index, array) === false) { 16769 break; 16770 } 16771 } 16772 return array; 16773} 16774 16775module.exports = arrayEach; 16776 16777 16778/***/ }), 16779/* 307 */ 16780/***/ (function(module, exports, __webpack_require__) { 16781 16782var identity = __webpack_require__(63); 16783 16784/** 16785 * Casts `value` to `identity` if it's not a function. 16786 * 16787 * @private 16788 * @param {*} value The value to inspect. 16789 * @returns {Function} Returns cast function. 16790 */ 16791function castFunction(value) { 16792 return typeof value == 'function' ? value : identity; 16793} 16794 16795module.exports = castFunction; 16796 16797 16798/***/ }), 16799/* 308 */ 16800/***/ (function(module, exports, __webpack_require__) { 16801 16802var debounce = __webpack_require__(309), 16803 isObject = __webpack_require__(8); 16804 16805/** Error message constants. */
vendor: 9,976 bytes, lines 16806-17120
16806var FUNC_ERROR_TEXT = 'Expected a function'; 16807 16808/** 16809 * Creates a throttled function that only invokes `func` at most once per 16810 * every `wait` milliseconds. The throttled function comes with a `cancel` 16811 * method to cancel delayed `func` invocations and a `flush` method to 16812 * immediately invoke them. Provide `options` to indicate whether `func` 16813 * should be invoked on the leading and/or trailing edge of the `wait` 16814 * timeout. The `func` is invoked with the last arguments provided to the 16815 * throttled function. Subsequent calls to the throttled function return the 16816 * result of the last `func` invocation. 16817 * 16818 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16819 * invoked on the trailing edge of the timeout only if the throttled function 16820 * is invoked more than once during the `wait` timeout. 16821 * 16822 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16823 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16824 * 16825 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16826 * for details over the differences between `_.throttle` and `_.debounce`. 16827 * 16828 * @static 16829 * @memberOf _ 16830 * @since 0.1.0 16831 * @category Function 16832 * @param {Function} func The function to throttle. 16833 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 16834 * @param {Object} [options={}] The options object. 16835 * @param {boolean} [options.leading=true] 16836 * Specify invoking on the leading edge of the timeout. 16837 * @param {boolean} [options.trailing=true] 16838 * Specify invoking on the trailing edge of the timeout. 16839 * @returns {Function} Returns the new throttled function. 16840 * @example 16841 * 16842 * // Avoid excessively updating the position while scrolling. 16843 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 16844 * 16845 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 16846 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 16847 * jQuery(element).on('click', throttled); 16848 * 16849 * // Cancel the trailing throttled invocation. 16850 * jQuery(window).on('popstate', throttled.cancel); 16851 */ 16852function throttle(func, wait, options) { 16853 var leading = true, 16854 trailing = true; 16855 16856 if (typeof func != 'function') { 16857 throw new TypeError(FUNC_ERROR_TEXT); 16858 } 16859 if (isObject(options)) { 16860 leading = 'leading' in options ? !!options.leading : leading; 16861 trailing = 'trailing' in options ? !!options.trailing : trailing; 16862 } 16863 return debounce(func, wait, { 16864 'leading': leading, 16865 'maxWait': wait, 16866 'trailing': trailing 16867 }); 16868} 16869 16870module.exports = throttle; 16871 16872 16873/***/ }), 16874/* 309 */ 16875/***/ (function(module, exports, __webpack_require__) { 16876 16877var isObject = __webpack_require__(8), 16878 now = __webpack_require__(310), 16879 toNumber = __webpack_require__(64); 16880 16881/** Error message constants. */ 16882var FUNC_ERROR_TEXT = 'Expected a function'; 16883 16884/* Built-in method references for those with the same name as other `lodash` methods. */ 16885var nativeMax = Math.max, 16886 nativeMin = Math.min; 16887 16888/** 16889 * Creates a debounced function that delays invoking `func` until after `wait` 16890 * milliseconds have elapsed since the last time the debounced function was 16891 * invoked. The debounced function comes with a `cancel` method to cancel 16892 * delayed `func` invocations and a `flush` method to immediately invoke them. 16893 * Provide `options` to indicate whether `func` should be invoked on the 16894 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 16895 * with the last arguments provided to the debounced function. Subsequent 16896 * calls to the debounced function return the result of the last `func` 16897 * invocation. 16898 * 16899 * **Note:** If `leading` and `trailing` options are `true`, `func` is 16900 * invoked on the trailing edge of the timeout only if the debounced function 16901 * is invoked more than once during the `wait` timeout. 16902 * 16903 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 16904 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 16905 * 16906 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 16907 * for details over the differences between `_.debounce` and `_.throttle`. 16908 * 16909 * @static 16910 * @memberOf _ 16911 * @since 0.1.0 16912 * @category Function 16913 * @param {Function} func The function to debounce. 16914 * @param {number} [wait=0] The number of milliseconds to delay. 16915 * @param {Object} [options={}] The options object. 16916 * @param {boolean} [options.leading=false] 16917 * Specify invoking on the leading edge of the timeout. 16918 * @param {number} [options.maxWait] 16919 * The maximum time `func` is allowed to be delayed before it's invoked. 16920 * @param {boolean} [options.trailing=true] 16921 * Specify invoking on the trailing edge of the timeout. 16922 * @returns {Function} Returns the new debounced function. 16923 * @example 16924 * 16925 * // Avoid costly calculations while the window size is in flux. 16926 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 16927 * 16928 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 16929 * jQuery(element).on('click', _.debounce(sendMail, 300, { 16930 * 'leading': true, 16931 * 'trailing': false 16932 * })); 16933 * 16934 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 16935 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 16936 * var source = new EventSource('/stream'); 16937 * jQuery(source).on('message', debounced); 16938 * 16939 * // Cancel the trailing debounced invocation. 16940 * jQuery(window).on('popstate', debounced.cancel); 16941 */ 16942function debounce(func, wait, options) { 16943 var lastArgs, 16944 lastThis, 16945 maxWait, 16946 result, 16947 timerId, 16948 lastCallTime, 16949 lastInvokeTime = 0, 16950 leading = false, 16951 maxing = false, 16952 trailing = true; 16953 16954 if (typeof func != 'function') { 16955 throw new TypeError(FUNC_ERROR_TEXT); 16956 } 16957 wait = toNumber(wait) || 0; 16958 if (isObject(options)) { 16959 leading = !!options.leading; 16960 maxing = 'maxWait' in options; 16961 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 16962 trailing = 'trailing' in options ? !!options.trailing : trailing; 16963 } 16964 16965 function invokeFunc(time) { 16966 var args = lastArgs, 16967 thisArg = lastThis; 16968 16969 lastArgs = lastThis = undefined; 16970 lastInvokeTime = time; 16971 result = func.apply(thisArg, args); 16972 return result; 16973 } 16974 16975 function leadingEdge(time) { 16976 // Reset any `maxWait` timer. 16977 lastInvokeTime = time; 16978 // Start the timer for the trailing edge. 16979 timerId = setTimeout(timerExpired, wait); 16980 // Invoke the leading edge. 16981 return leading ? invokeFunc(time) : result; 16982 } 16983 16984 function remainingWait(time) { 16985 var timeSinceLastCall = time - lastCallTime, 16986 timeSinceLastInvoke = time - lastInvokeTime, 16987 timeWaiting = wait - timeSinceLastCall; 16988 16989 return maxing 16990 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 16991 : timeWaiting; 16992 } 16993 16994 function shouldInvoke(time) { 16995 var timeSinceLastCall = time - lastCallTime, 16996 timeSinceLastInvoke = time - lastInvokeTime; 16997 16998 // Either this is the first call, activity has stopped and we're at the 16999 // trailing edge, the system time has gone backwards and we're treating 17000 // it as the trailing edge, or we've hit the `maxWait` limit. 17001 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 17002 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 17003 } 17004 17005 function timerExpired() { 17006 var time = now(); 17007 if (shouldInvoke(time)) { 17008 return trailingEdge(time); 17009 } 17010 // Restart the timer. 17011 timerId = setTimeout(timerExpired, remainingWait(time)); 17012 } 17013 17014 function trailingEdge(time) { 17015 timerId = undefined; 17016 17017 // Only invoke if we have `lastArgs` which means `func` has been 17018 // debounced at least once. 17019 if (trailing && lastArgs) { 17020 return invokeFunc(time); 17021 } 17022 lastArgs = lastThis = undefined; 17023 return result; 17024 } 17025 17026 function cancel() { 17027 if (timerId !== undefined) { 17028 clearTimeout(timerId); 17029 } 17030 lastInvokeTime = 0; 17031 lastArgs = lastCallTime = lastThis = timerId = undefined; 17032 } 17033 17034 function flush() { 17035 return timerId === undefined ? result : trailingEdge(now()); 17036 } 17037 17038 function debounced() { 17039 var time = now(), 17040 isInvoking = shouldInvoke(time); 17041 17042 lastArgs = arguments; 17043 lastThis = this; 17044 lastCallTime = time; 17045 17046 if (isInvoking) { 17047 if (timerId === undefined) { 17048 return leadingEdge(lastCallTime); 17049 } 17050 if (maxing) { 17051 // Handle invocations in a tight loop. 17052 clearTimeout(timerId); 17053 timerId = setTimeout(timerExpired, wait); 17054 return invokeFunc(lastCallTime); 17055 } 17056 } 17057 if (timerId === undefined) { 17058 timerId = setTimeout(timerExpired, wait); 17059 } 17060 return result; 17061 } 17062 debounced.cancel = cancel; 17063 debounced.flush = flush; 17064 return debounced; 17065} 17066 17067module.exports = debounce; 17068 17069 17070/***/ }), 17071/* 310 */ 17072/***/ (function(module, exports, __webpack_require__) { 17073 17074var root = __webpack_require__(6); 17075 17076/** 17077 * Gets the timestamp of the number of milliseconds that have elapsed since 17078 * the Unix epoch (1 January 1970 00:00:00 UTC). 17079 * 17080 * @static 17081 * @memberOf _ 17082 * @since 2.4.0 17083 * @category Date 17084 * @returns {number} Returns the timestamp. 17085 * @example 17086 * 17087 * _.defer(function(stamp) { 17088 * console.log(_.now() - stamp); 17089 * }, _.now()); 17090 * // => Logs the number of milliseconds it took for the deferred invocation. 17091 */ 17092var now = function() { 17093 return root.Date.now(); 17094}; 17095 17096module.exports = now; 17097 17098 17099/***/ }), 17100/* 311 */ 17101/***/ (function(module, exports, __webpack_require__) { 17102 17103"use strict"; 17104 17105 17106var _interopRequireDefault = __webpack_require__(0); 17107 17108var _typeof2 = _interopRequireDefault(__webpack_require__(13)); 17109 17110Object.defineProperty(exports, "__esModule", { 17111 value: true 17112}); 17113exports.setStyle = setStyle; 17114exports.getStyle = getStyle; 17115exports.getProperty = getProperty; 17116exports.matchSelector = matchSelector; 17117exports.getQuerySelector = getQuerySelector; 17118exports.getValidDocument = getValidDocument; 17119exports.queryDocument = queryDocument; 17120exports.elementContains = elementContains;
17121exports.isSiblingNode = isSiblingNode; 17122exports.getChildElements = getChildElements; 17123exports.getSiblingElements = getSiblingElements; 17124exports.getRefType = getRefType; 17125exports.getClosestElement = void 0; 17126 17127var _shared = __webpack_require__(15); 17128 17129var _constants = __webpack_require__(4); 17130/* eslint-env browser */ 17131 17132 17133var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; 17134var _constants$IX2EngineC = _constants.IX2EngineConstants, 17135 IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, 17136 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 17137 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 17138 WF_PAGE = _constants$IX2EngineC.WF_PAGE; 17139 17140function setStyle(element, prop, value) { 17141 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17142 element.style[prop] = value; 17143} 17144 17145function getStyle(element, prop) { 17146 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17147 return element.style[prop]; 17148} 17149 17150function getProperty(element, prop) { 17151 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 17152 return element[prop]; 17153} 17154 17155function matchSelector(selector) { 17156 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 17157 return function (element) { 17158 return element[ELEMENT_MATCHES](selector); 17159 }; 17160} 17161 17162function getQuerySelector(_ref) { 17163 var id = _ref.id, 17164 selector = _ref.selector; 17165 17166 if (id) { 17167 var nodeId = id; 17168 17169 if (id.indexOf(IX2_ID_DELIMITER) !== -1) { 17170 var pair = id.split(IX2_ID_DELIMITER); 17171 var pageId = pair[0]; 17172 nodeId = pair[1]; // Short circuit query if we're on the wrong page 17173 // $FlowIgnore â if documentElement is null crash 17174 17175 if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { 17176 return null; 17177 } 17178 } 17179 17180 return "[data-w-id=\"".concat(nodeId, "\"], [data-w-id^=\"").concat(nodeId, "_instance\"]"); 17181 } 17182 17183 return selector; 17184} 17185 17186function getValidDocument(pageId) { 17187 if (pageId == null || // $FlowIgnore â if documentElement is null crash 17188 pageId === document.documentElement.getAttribute(WF_PAGE)) { 17189 return document; 17190 } 17191 17192 return null; 17193} 17194 17195function queryDocument(baseSelector, descendantSelector) { 17196 return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); 17197} 17198 17199function elementContains(parent, child) { 17200 return parent.contains(child); 17201} 17202 17203function isSiblingNode(a, b) { 17204 return a !== b && a.parentNode === b.parentNode; 17205} 17206 17207function getChildElements(sourceElements) { 17208 var childElements = []; 17209 17210 for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { 17211 var children = sourceElements[i].children; 17212 var childCount = children.length; 17213 17214 if (!childCount) { 17215 continue; 17216 } 17217 17218 for (var j = 0; j < childCount; j++) { 17219 childElements.push(children[j]); 17220 } 17221 } 17222 17223 return childElements; 17224} // $FlowFixMe 17225 17226 17227function getSiblingElements() { 17228 var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 17229 var elements = []; 17230 var parentCache = []; 17231 17232 for (var i = 0, length = sourceElements.length; i < length; i++) { 17233 var parentNode = sourceElements[i].parentNode; 17234 17235 if (!parentNode || !parentNode.children || !parentNode.children.length) { 17236 continue; 17237 } 17238 17239 if (parentCache.indexOf(parentNode) !== -1) { 17240 continue; 17241 } 17242 17243 parentCache.push(parentNode); 17244 var el = parentNode.firstElementChild; 17245 17246 while (el != null) { 17247 if (sourceElements.indexOf(el) === -1) { 17248 elements.push(el); 17249 } 17250 17251 el = el.nextElementSibling; 17252 } 17253 } 17254 17255 return elements; 17256} 17257 17258var getClosestElement = Element.prototype.closest ? function (element, selector) { 17259 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 17260 if (!document.documentElement.contains(element)) { 17261 return null; 17262 } 17263 17264 return element.closest(selector); 17265} : function (element, selector) { 17266 // $FlowIgnore â if documentElement is null crash 17267 if (!document.documentElement.contains(element)) { 17268 return null; 17269 } 17270 17271 var el = element; 17272 17273 do { 17274 // $FlowIgnore â if documentElement is null crash 17275 if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { 17276 return el; 17277 } 17278 17279 el = el.parentNode; 17280 } while (el != null); 17281 17282 return null; 17283}; 17284exports.getClosestElement = getClosestElement; 17285 17286function getRefType(ref) { 17287 if (ref != null && (0, _typeof2["default"])(ref) == 'object') { 17288 return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; 17289 } 17290 17291 return null; 17292} 17293 17294/***/ }), 17295/* 312 */ 17296/***/ (function(module, exports, __webpack_require__) { 17297 17298"use strict"; 17299 17300 17301var _interopRequireDefault2 = __webpack_require__(0); 17302 17303var _defineProperty2 = _interopRequireDefault2(__webpack_require__(21)); 17304 17305var _typeof2 = _interopRequireDefault2(__webpack_require__(13)); 17306 17307var _default2; 17308 17309var _interopRequireDefault = __webpack_require__(0); 17310 17311Object.defineProperty(exports, "__esModule", { 17312 value: true 17313}); 17314exports["default"] = void 0; 17315 17316var _extends2 = _interopRequireDefault(__webpack_require__(30)); 17317 17318var _flow = _interopRequireDefault(__webpack_require__(313)); 17319 17320var _get = _interopRequireDefault(__webpack_require__(60)); 17321 17322var _clamp = _interopRequireDefault(__webpack_require__(332)); 17323 17324var _constants = __webpack_require__(4); 17325 17326var _IX2VanillaEngine = __webpack_require__(123); 17327 17328var _IX2EngineActions = __webpack_require__(65); 17329 17330var _shared = __webpack_require__(15); 17331/* eslint-env browser */ 17332 17333 17334var _constants$EventTypeC = _constants.EventTypeConsts, 17335 MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, 17336 MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, 17337 MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, 17338 MOUSE_UP = _constants$EventTypeC.MOUSE_UP, 17339 MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, 17340 MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, 17341 DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, 17342 DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, 17343 SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, 17344 SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, 17345 TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, 17346 TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, 17347 NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, 17348 NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, 17349 MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, 17350 PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, 17351 SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW,
17352 SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, 17353 PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, 17354 SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, 17355 PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, 17356 ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, 17357 ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, 17358 PAGE_START = _constants$EventTypeC.PAGE_START, 17359 PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; 17360var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; 17361var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; 17362var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; 17363var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; 17364 17365var composableFilter = function composableFilter(predicate) { 17366 return function (options) { 17367 if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { 17368 return true; 17369 } 17370 17371 return options; 17372 }; 17373}; 17374 17375var isElement = composableFilter(function (_ref) { 17376 var element = _ref.element, 17377 nativeEvent = _ref.nativeEvent; 17378 return element === nativeEvent.target; 17379}); 17380var containsElement = composableFilter(function (_ref2) { 17381 var element = _ref2.element, 17382 nativeEvent = _ref2.nativeEvent; 17383 return element.contains(nativeEvent.target); 17384}); 17385var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); 17386 17387var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { 17388 if (autoStopEventId) { 17389 var _store$getState = store.getState(), 17390 ixData = _store$getState.ixData; 17391 17392 var events = ixData.events; 17393 var eventToStop = events[autoStopEventId]; 17394 17395 if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { 17396 return eventToStop; 17397 } 17398 } 17399 17400 return null; 17401}; 17402 17403var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { 17404 var store = _ref3.store, 17405 event = _ref3.event; 17406 var eventAction = event.action; 17407 var autoStopEventId = eventAction.config.autoStopEventId; 17408 return Boolean(getAutoStopEvent(store, autoStopEventId)); 17409}; 17410 17411var actionGroupCreator = function actionGroupCreator(_ref4, state) { 17412 var store = _ref4.store, 17413 event = _ref4.event, 17414 element = _ref4.element, 17415 eventStateKey = _ref4.eventStateKey; 17416 var eventAction = event.action, 17417 eventId = event.id; 17418 var _eventAction$config = eventAction.config, 17419 actionListId = _eventAction$config.actionListId, 17420 autoStopEventId = _eventAction$config.autoStopEventId; 17421 var eventToStop = getAutoStopEvent(store, autoStopEventId); 17422 17423 if (eventToStop) { 17424 (0, _IX2VanillaEngine.stopActionGroup)({ 17425 store: store, 17426 eventId: autoStopEventId, 17427 eventTarget: element, 17428 eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], 17429 actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') 17430 }); 17431 } 17432 17433 (0, _IX2VanillaEngine.stopActionGroup)({ 17434 store: store, 17435 eventId: eventId, 17436 eventTarget: element, 17437 eventStateKey: eventStateKey, 17438 actionListId: actionListId 17439 }); 17440 (0, _IX2VanillaEngine.startActionGroup)({ 17441 store: store, 17442 eventId: eventId, 17443 eventTarget: element, 17444 eventStateKey: eventStateKey, 17445 actionListId: actionListId 17446 }); 17447 return state; 17448}; // $FlowFixMe 17449 17450 17451var withFilter = function withFilter(filter, handler) { 17452 return function (options, state) { 17453 return (// $FlowFixMe 17454 filter(options, state) === true ? handler(options, state) : state 17455 ); 17456 }; 17457}; 17458 17459var baseActionGroupOptions = { 17460 handler: withFilter(isOrContainsElement, actionGroupCreator) 17461}; 17462var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { 17463 types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') 17464}); 17465var SCROLL_EVENT_TYPES = [{ 17466 target: window, 17467 types: 'resize orientationchange', 17468 throttle: true 17469}, { 17470 target: document, 17471 types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', 17472 throttle: true 17473}]; 17474var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; 17475var baseScrollActionGroupOptions = { 17476 types: SCROLL_EVENT_TYPES 17477}; 17478var AUTO_STOP_DISABLED_EVENTS = { 17479 PAGE_START: PAGE_START, 17480 PAGE_FINISH: PAGE_FINISH 17481}; 17482 17483var getDocumentState = function () { 17484 var supportOffset = window.pageXOffset !== undefined; 17485 var isCSS1Compat = document.compatMode === 'CSS1Compat'; 17486 var rootElement = isCSS1Compat ? document.documentElement : document.body; 17487 return function () { 17488 return { 17489 // $FlowFixMe 17490 scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, 17491 // $FlowFixMe 17492 scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, 17493 // required to remove elasticity in Safari scrolling. 17494 stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe 17495 supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe 17496 rootElement.scrollHeight - window.innerHeight), 17497 // $FlowFixMe 17498 scrollWidth: rootElement.scrollWidth, 17499 // $FlowFixMe 17500 scrollHeight: rootElement.scrollHeight, 17501 // $FlowFixMe 17502 clientWidth: rootElement.clientWidth, 17503 // $FlowFixMe 17504 clientHeight: rootElement.clientHeight, 17505 innerWidth: window.innerWidth, 17506 innerHeight: window.innerHeight 17507 }; 17508 }; 17509}(); 17510 17511var areBoxesIntersecting = function areBoxesIntersecting(a, b) { 17512 return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); 17513}; 17514 17515var isElementHovered = function isElementHovered(_ref5) { 17516 var element = _ref5.element, 17517 nativeEvent = _ref5.nativeEvent; 17518 var type = nativeEvent.type, 17519 target = nativeEvent.target, 17520 relatedTarget = nativeEvent.relatedTarget; 17521 var containsTarget = element.contains(target); 17522 17523 if (type === 'mouseover' && containsTarget) { 17524 return true; 17525 } 17526 17527 var containsRelated = element.contains(relatedTarget); 17528 17529 if (type === 'mouseout' && containsTarget && containsRelated) { 17530 return true; 17531 } 17532 17533 return false;
17534}; 17535 17536var isElementVisible = function isElementVisible(options) { 17537 var element = options.element, 17538 config = options.event.config; 17539 17540 var _getDocumentState = getDocumentState(), 17541 clientWidth = _getDocumentState.clientWidth, 17542 clientHeight = _getDocumentState.clientHeight; 17543 17544 var scrollOffsetValue = config.scrollOffsetValue; 17545 var scrollOffsetUnit = config.scrollOffsetUnit; 17546 var isPX = scrollOffsetUnit === 'PX'; 17547 var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; 17548 return areBoxesIntersecting(element.getBoundingClientRect(), { 17549 left: 0, 17550 top: offsetPadding, 17551 right: clientWidth, 17552 bottom: clientHeight - offsetPadding 17553 }); 17554}; 17555 17556var whenComponentActiveChange = function whenComponentActiveChange(handler) { 17557 return function (options, oldState) { 17558 var type = options.nativeEvent.type; // prettier-ignore 17559 17560 var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; 17561 var newState = (0, _extends2["default"])({}, oldState, { 17562 isActive: isActive 17563 }); 17564 17565 if (!oldState || newState.isActive !== oldState.isActive) { 17566 return handler(options, newState) || newState; 17567 } 17568 17569 return newState; 17570 }; 17571}; 17572 17573var whenElementHoverChange = function whenElementHoverChange(handler) { 17574 return function (options, oldState) { 17575 var newState = { 17576 elementHovered: isElementHovered(options) 17577 }; 17578 17579 if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { 17580 return handler(options, newState) || newState; 17581 } 17582 17583 return newState; 17584 }; 17585}; // $FlowFixMe 17586 17587 17588var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { 17589 return function (options, oldState) { 17590 var newState = (0, _extends2["default"])({}, oldState, { 17591 elementVisible: isElementVisible(options) 17592 }); 17593 17594 if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { 17595 return handler(options, newState) || newState; 17596 } 17597 17598 return newState; 17599 }; 17600}; // $FlowFixMe 17601 17602 17603var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { 17604 return function (options) { 17605 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 17606 17607 var _getDocumentState2 = getDocumentState(), 17608 scrollTop = _getDocumentState2.stiffScrollTop, 17609 scrollHeight = _getDocumentState2.scrollHeight, 17610 innerHeight = _getDocumentState2.innerHeight; 17611 17612 var _options$event = options.event, 17613 config = _options$event.config, 17614 eventTypeId = _options$event.eventTypeId; 17615 var scrollOffsetValue = config.scrollOffsetValue, 17616 scrollOffsetUnit = config.scrollOffsetUnit; 17617 var isPX = scrollOffsetUnit === 'PX'; 17618 var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. 17619 17620 var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change 17621 17622 if (oldState && oldState.percentTop === percentTop) { 17623 return oldState; 17624 } 17625 17626 var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; 17627 var scrollingDown; 17628 var scrollDirectionChanged; 17629 var anchorTop = 0; 17630 17631 if (oldState) { 17632 scrollingDown = percentTop > oldState.percentTop; 17633 scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; 17634 anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; 17635 } 17636 17637 var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; 17638 var newState = (0, _extends2["default"])({}, oldState, { 17639 percentTop: percentTop, 17640 inBounds: inBounds, 17641 anchorTop: anchorTop, 17642 scrollingDown: scrollingDown 17643 }); 17644 17645 if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { 17646 return handler(options, newState) || newState; 17647 } 17648 17649 return newState; 17650 }; 17651}; 17652 17653var pointIntersects = function pointIntersects(point, rect) { 17654 return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; 17655}; 17656 17657var whenPageLoadFinish = function whenPageLoadFinish(handler) { 17658 return function (options, oldState) { 17659 var newState = { 17660 finished: document.readyState === 'complete' 17661 }; 17662 17663 if (newState.finished && !(oldState && oldState.finshed)) { 17664 handler(options); 17665 } 17666 17667 return newState; 17668 }; 17669}; 17670 17671var whenPageLoadStart = function whenPageLoadStart(handler) { 17672 return function (options, oldState) { 17673 var newState = { 17674 started: true 17675 }; 17676 17677 if (!oldState) { 17678 handler(options); 17679 } 17680 17681 return newState; 17682 }; 17683}; 17684 17685var whenClickCountChange = function whenClickCountChange(handler) { 17686 return function (options) { 17687 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17688 clickCount: 0 17689 }; 17690 var newState = { 17691 clickCount: oldState.clickCount % 2 + 1 17692 }; 17693 17694 if (newState.clickCount !== oldState.clickCount) { 17695 return handler(options, newState) || newState; 17696 } 17697 17698 return newState; 17699 }; 17700}; 17701 17702var getComponentActiveOptions = function getComponentActiveOptions() { 17703 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 17704 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 17705 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 17706 return state.isActive ? baseActionGroupOptions.handler(options, state) : state; 17707 })) 17708 }); 17709}; 17710 17711var getComponentInactiveOptions = function getComponentInactiveOptions() { 17712 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 17713 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 17714 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 17715 return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; 17716 })) 17717 }); 17718}; 17719 17720var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17721 handler: whenElementVisibiltyChange(function (options, state) { 17722 var elementVisible = state.elementVisible; 17723 var event = options.event, 17724 store = options.store; 17725 17726 var _store$getState2 = store.getState(), 17727 ixData = _store$getState2.ixData; 17728 17729 var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types 17730 // are registered. 17731 17732 if (!events[event.action.config.autoStopEventId] && state.triggered) { 17733 return state; 17734 } 17735 17736 if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { 17737 actionGroupCreator(options); 17738 return (0, _extends2["default"])({}, state, { 17739 triggered: true 17740 }); 17741 } else { 17742 return state; 17743 } 17744 }) 17745}); 17746var MOUSE_OUT_ROUND_THRESHOLD = 0.05; 17747 17748var _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, { 17749 types: 'ecommerce-cart-open', 17750 handler: withFilter(isOrContainsElement, actionGroupCreator) 17751}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { 17752 types: 'ecommerce-cart-close', 17753 handler: withFilter(isOrContainsElement, actionGroupCreator) 17754}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { 17755 types: 'click', 17756 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { 17757 var clickCount = _ref6.clickCount; 17758 17759 if (hasAutoStopEvent(options)) { 17760 clickCount === 1 && actionGroupCreator(options); 17761 } else { 17762 actionGroupCreator(options); 17763 } 17764 })) 17765}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { 17766 types: 'click', 17767 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { 17768 var clickCount = _ref7.clickCount; 17769 17770 if (clickCount === 2) { 17771 actionGroupCreator(options); 17772 } 17773 })) 17774}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { 17775 types: 'mousedown' 17776})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { 17777 types: 'mouseup' 17778})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { 17779 types: MOUSE_OVER_OUT_TYPES, 17780 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 17781 if (state.elementHovered) { 17782 actionGroupCreator(options); 17783 } 17784 })) 17785}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { 17786 types: MOUSE_OVER_OUT_TYPES, 17787 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 17788 if (!state.elementHovered) { 17789 actionGroupCreator(options); 17790 } 17791 })) 17792}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { 17793 types: 'mousemove mouseout scroll', 17794 handler: function handler( // $FlowFixMe 17795 _ref8) { 17796 var store = _ref8.store, 17797 element = _ref8.element, 17798 eventConfig = _ref8.eventConfig, 17799 nativeEvent = _ref8.nativeEvent, 17800 eventStateKey = _ref8.eventStateKey; 17801 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17802 clientX: 0, 17803 clientY: 0, 17804 pageX: 0, 17805 pageY: 0 17806 }; 17807 var basedOn = eventConfig.basedOn, 17808 selectedAxis = eventConfig.selectedAxis, 17809 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17810 reverse = eventConfig.reverse, 17811 _eventConfig$restingS = eventConfig.restingState, 17812 restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; 17813 var _nativeEvent$clientX = nativeEvent.clientX, 17814 clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, 17815 _nativeEvent$clientY = nativeEvent.clientY, 17816 clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY,
17817 _nativeEvent$pageX = nativeEvent.pageX, 17818 pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, 17819 _nativeEvent$pageY = nativeEvent.pageY, 17820 pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; 17821 var isXAxis = selectedAxis === 'X_AXIS'; 17822 var isMouseOut = nativeEvent.type === 'mouseout'; 17823 var value = restingState / 100; 17824 var namespacedParameterId = continuousParameterGroupId; 17825 var elementHovered = false; 17826 17827 switch (basedOn) { 17828 case _constants.EventBasedOn.VIEWPORT: 17829 { 17830 value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; 17831 break; 17832 } 17833 17834 case _constants.EventBasedOn.PAGE: 17835 { 17836 var _getDocumentState3 = getDocumentState(), 17837 scrollLeft = _getDocumentState3.scrollLeft, 17838 scrollTop = _getDocumentState3.scrollTop, 17839 scrollWidth = _getDocumentState3.scrollWidth, 17840 scrollHeight = _getDocumentState3.scrollHeight; 17841 17842 value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; 17843 break; 17844 } 17845 17846 case _constants.EventBasedOn.ELEMENT: 17847 default: 17848 { 17849 namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 17850 var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target 17851 17852 if (isMouseEvent && isOrContainsElement({ 17853 element: element, 17854 nativeEvent: nativeEvent 17855 }) !== true) { 17856 break; 17857 } 17858 17859 var rect = element.getBoundingClientRect(); 17860 var left = rect.left, 17861 top = rect.top, 17862 width = rect.width, 17863 height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state 17864 // against the target element's rect 17865 17866 if (!isMouseEvent && !pointIntersects({ 17867 left: clientX, 17868 top: clientY 17869 }, rect)) { 17870 break; 17871 } 17872 17873 elementHovered = true; 17874 value = isXAxis ? (clientX - left) / width : (clientY - top) / height; 17875 break; 17876 } 17877 } // cover case where the event is a mouse out, but the value is not quite at 100% 17878 17879 17880 if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { 17881 value = Math.round(value); 17882 } // Only update based on element if the mouse is moving over or has just left the element 17883 17884 17885 if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe 17886 elementHovered !== state.elementHovered) { 17887 value = reverse ? 1 - value : value; 17888 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); 17889 } 17890 17891 return { 17892 elementHovered: elementHovered, 17893 clientX: clientX, 17894 clientY: clientY, 17895 pageX: pageX, 17896 pageY: pageY 17897 }; 17898 } 17899}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { 17900 types: SCROLL_EVENT_TYPES, 17901 // $FlowFixMe 17902 handler: function handler(_ref9) { 17903 var store = _ref9.store, 17904 eventConfig = _ref9.eventConfig; 17905 var continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17906 reverse = eventConfig.reverse; 17907 17908 var _getDocumentState4 = getDocumentState(), 17909 scrollTop = _getDocumentState4.scrollTop, 17910 scrollHeight = _getDocumentState4.scrollHeight, 17911 clientHeight = _getDocumentState4.clientHeight; 17912 17913 var value = scrollTop / (scrollHeight - clientHeight); 17914 value = reverse ? 1 - value : value; 17915 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 17916 } 17917}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { 17918 types: SCROLL_EVENT_TYPES, 17919 handler: function handler( // $FlowFixMe 17920 _ref10) { 17921 var element = _ref10.element, 17922 store = _ref10.store, 17923 eventConfig = _ref10.eventConfig, 17924 eventStateKey = _ref10.eventStateKey; 17925 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 17926 scrollPercent: 0 17927 }; 17928 17929 var _getDocumentState5 = getDocumentState(), 17930 scrollLeft = _getDocumentState5.scrollLeft, 17931 scrollTop = _getDocumentState5.scrollTop, 17932 scrollWidth = _getDocumentState5.scrollWidth, 17933 scrollHeight = _getDocumentState5.scrollHeight, 17934 visibleHeight = _getDocumentState5.clientHeight; 17935 17936 var basedOn = eventConfig.basedOn, 17937 selectedAxis = eventConfig.selectedAxis, 17938 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 17939 startsEntering = eventConfig.startsEntering, 17940 startsExiting = eventConfig.startsExiting, 17941 addEndOffset = eventConfig.addEndOffset, 17942 addStartOffset = eventConfig.addStartOffset, 17943 _eventConfig$addOffse = eventConfig.addOffsetValue, 17944 addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, 17945 _eventConfig$endOffse = eventConfig.endOffsetValue, 17946 endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; 17947 var isXAxis = selectedAxis === 'X_AXIS'; 17948 17949 if (basedOn === _constants.EventBasedOn.VIEWPORT) { 17950 var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; 17951 17952 if (value !== state.scrollPercent) { 17953 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 17954 } 17955 17956 return { 17957 scrollPercent: value 17958 }; 17959 } else { 17960 var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 17961 var elementRect = element.getBoundingClientRect(); 17962 var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; 17963 var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type 17964 17965 offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; 17966 offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; 17967 var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); 17968 var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; 17969 var offsetHeight = offsetElementBottom - offsetElementTop; 17970 var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); 17971 var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); 17972 var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; 17973 17974 if (fixedScrollPerc !== state.scrollPercent) { 17975 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); 17976 } 17977 17978 return { 17979 scrollPercent: fixedScrollPerc 17980 }; 17981 } 17982 } 17983}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_V
17983IEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17984 handler: whenScrollDirectionChange(function (options, state) { 17985 if (state.scrollingDown) { 17986 actionGroupCreator(options); 17987 } 17988 }) 17989})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17990 handler: whenScrollDirectionChange(function (options, state) { 17991 if (!state.scrollingDown) { 17992 actionGroupCreator(options); 17993 } 17994 }) 17995})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { 17996 types: 'readystatechange IX2_PAGE_UPDATE', 17997 handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) 17998}), (0, _defineProperty2["default"])(_default2, PAGE_START, { 17999 types: 'readystatechange IX2_PAGE_UPDATE', 18000 handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) 18001}), _default2); 18002 18003exports["default"] = _default; 18004 18005/***/ }), 18006/* 313 */ 18007/***/ (function(module, exports, __webpack_require__) { 18008
vendor: 4,744 bytes, lines 18009-18188
18009var createFlow = __webpack_require__(314); 18010 18011/** 18012 * Creates a function that returns the result of invoking the given functions 18013 * with the `this` binding of the created function, where each successive 18014 * invocation is supplied the return value of the previous. 18015 * 18016 * @static 18017 * @memberOf _ 18018 * @since 3.0.0 18019 * @category Util 18020 * @param {...(Function|Function[])} [funcs] The functions to invoke. 18021 * @returns {Function} Returns the new composite function. 18022 * @see _.flowRight 18023 * @example 18024 * 18025 * function square(n) { 18026 * return n * n; 18027 * } 18028 * 18029 * var addSquare = _.flow([_.add, square]); 18030 * addSquare(1, 2); 18031 * // => 9 18032 */ 18033var flow = createFlow(); 18034 18035module.exports = flow; 18036 18037 18038/***/ }), 18039/* 314 */ 18040/***/ (function(module, exports, __webpack_require__) { 18041 18042var LodashWrapper = __webpack_require__(66), 18043 flatRest = __webpack_require__(315), 18044 getData = __webpack_require__(127), 18045 getFuncName = __webpack_require__(128), 18046 isArray = __webpack_require__(2), 18047 isLaziable = __webpack_require__(328); 18048 18049/** Error message constants. */ 18050var FUNC_ERROR_TEXT = 'Expected a function'; 18051 18052/** Used to compose bitmasks for function metadata. */ 18053var WRAP_CURRY_FLAG = 8, 18054 WRAP_PARTIAL_FLAG = 32, 18055 WRAP_ARY_FLAG = 128, 18056 WRAP_REARG_FLAG = 256; 18057 18058/** 18059 * Creates a `_.flow` or `_.flowRight` function. 18060 * 18061 * @private 18062 * @param {boolean} [fromRight] Specify iterating from right to left. 18063 * @returns {Function} Returns the new flow function. 18064 */ 18065function createFlow(fromRight) { 18066 return flatRest(function(funcs) { 18067 var length = funcs.length, 18068 index = length, 18069 prereq = LodashWrapper.prototype.thru; 18070 18071 if (fromRight) { 18072 funcs.reverse(); 18073 } 18074 while (index--) { 18075 var func = funcs[index]; 18076 if (typeof func != 'function') { 18077 throw new TypeError(FUNC_ERROR_TEXT); 18078 } 18079 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 18080 var wrapper = new LodashWrapper([], true); 18081 } 18082 } 18083 index = wrapper ? index : length; 18084 while (++index < length) { 18085 func = funcs[index]; 18086 18087 var funcName = getFuncName(func), 18088 data = funcName == 'wrapper' ? getData(func) : undefined; 18089 18090 if (data && isLaziable(data[0]) && 18091 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 18092 !data[4].length && data[9] == 1 18093 ) { 18094 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 18095 } else { 18096 wrapper = (func.length == 1 && isLaziable(func)) 18097 ? wrapper[funcName]() 18098 : wrapper.thru(func); 18099 } 18100 } 18101 return function() { 18102 var args = arguments, 18103 value = args[0]; 18104 18105 if (wrapper && args.length == 1 && isArray(value)) { 18106 return wrapper.plant(value).value(); 18107 } 18108 var index = 0, 18109 result = length ? funcs[index].apply(this, args) : value; 18110 18111 while (++index < length) { 18112 result = funcs[index].call(this, result); 18113 } 18114 return result; 18115 }; 18116 }); 18117} 18118 18119module.exports = createFlow; 18120 18121 18122/***/ }), 18123/* 315 */ 18124/***/ (function(module, exports, __webpack_require__) { 18125 18126var flatten = __webpack_require__(316), 18127 overRest = __webpack_require__(319), 18128 setToString = __webpack_require__(321); 18129 18130/** 18131 * A specialized version of `baseRest` which flattens the rest array. 18132 * 18133 * @private 18134 * @param {Function} func The function to apply a rest parameter to. 18135 * @returns {Function} Returns the new function. 18136 */ 18137function flatRest(func) { 18138 return setToString(overRest(func, undefined, flatten), func + ''); 18139} 18140 18141module.exports = flatRest; 18142 18143 18144/***/ }), 18145/* 316 */ 18146/***/ (function(module, exports, __webpack_require__) { 18147 18148var baseFlatten = __webpack_require__(317); 18149 18150/** 18151 * Flattens `array` a single level deep. 18152 * 18153 * @static 18154 * @memberOf _ 18155 * @since 0.1.0 18156 * @category Array 18157 * @param {Array} array The array to flatten. 18158 * @returns {Array} Returns the new flattened array. 18159 * @example 18160 * 18161 * _.flatten([1, [2, [3, [4]], 5]]); 18162 * // => [1, 2, [3, [4]], 5] 18163 */ 18164function flatten(array) { 18165 var length = array == null ? 0 : array.length; 18166 return length ? baseFlatten(array, 1) : []; 18167} 18168 18169module.exports = flatten; 18170 18171 18172/***/ }), 18173/* 317 */ 18174/***/ (function(module, exports, __webpack_require__) { 18175 18176var arrayPush = __webpack_require__(52), 18177 isFlattenable = __webpack_require__(318); 18178 18179/** 18180 * The base implementation of `_.flatten` with support for restricting flattening. 18181 * 18182 * @private 18183 * @param {Array} array The array to flatten. 18184 * @param {number} depth The maximum recursion depth. 18185 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 18186 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 18187 * @param {Array} [result=[]] The initial result value. 18188 * @returns {Array} Returns the new flattened array.
vendor: 4,491 bytes, lines 18189-18360
18189 */ 18190function baseFlatten(array, depth, predicate, isStrict, result) { 18191 var index = -1, 18192 length = array.length; 18193 18194 predicate || (predicate = isFlattenable); 18195 result || (result = []); 18196 18197 while (++index < length) { 18198 var value = array[index]; 18199 if (depth > 0 && predicate(value)) { 18200 if (depth > 1) { 18201 // Recursively flatten arrays (susceptible to call stack limits). 18202 baseFlatten(value, depth - 1, predicate, isStrict, result); 18203 } else { 18204 arrayPush(result, value); 18205 } 18206 } else if (!isStrict) { 18207 result[result.length] = value; 18208 } 18209 } 18210 return result; 18211} 18212 18213module.exports = baseFlatten; 18214 18215 18216/***/ }), 18217/* 318 */ 18218/***/ (function(module, exports, __webpack_require__) { 18219 18220var Symbol = __webpack_require__(23), 18221 isArguments = __webpack_require__(36), 18222 isArray = __webpack_require__(2); 18223 18224/** Built-in value references. */ 18225var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; 18226 18227/** 18228 * Checks if `value` is a flattenable `arguments` object or array. 18229 * 18230 * @private 18231 * @param {*} value The value to check. 18232 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 18233 */ 18234function isFlattenable(value) { 18235 return isArray(value) || isArguments(value) || 18236 !!(spreadableSymbol && value && value[spreadableSymbol]); 18237} 18238 18239module.exports = isFlattenable; 18240 18241 18242/***/ }), 18243/* 319 */ 18244/***/ (function(module, exports, __webpack_require__) { 18245 18246var apply = __webpack_require__(320); 18247 18248/* Built-in method references for those with the same name as other `lodash` methods. */ 18249var nativeMax = Math.max; 18250 18251/** 18252 * A specialized version of `baseRest` which transforms the rest array. 18253 * 18254 * @private 18255 * @param {Function} func The function to apply a rest parameter to. 18256 * @param {number} [start=func.length-1] The start position of the rest parameter. 18257 * @param {Function} transform The rest array transform. 18258 * @returns {Function} Returns the new function. 18259 */ 18260function overRest(func, start, transform) { 18261 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 18262 return function() { 18263 var args = arguments, 18264 index = -1, 18265 length = nativeMax(args.length - start, 0), 18266 array = Array(length); 18267 18268 while (++index < length) { 18269 array[index] = args[start + index]; 18270 } 18271 index = -1; 18272 var otherArgs = Array(start + 1); 18273 while (++index < start) { 18274 otherArgs[index] = args[index]; 18275 } 18276 otherArgs[start] = transform(array); 18277 return apply(func, this, otherArgs); 18278 }; 18279} 18280 18281module.exports = overRest; 18282 18283 18284/***/ }), 18285/* 320 */ 18286/***/ (function(module, exports) { 18287 18288/** 18289 * A faster alternative to `Function#apply`, this function invokes `func` 18290 * with the `this` binding of `thisArg` and the arguments of `args`. 18291 * 18292 * @private 18293 * @param {Function} func The function to invoke. 18294 * @param {*} thisArg The `this` binding of `func`. 18295 * @param {Array} args The arguments to invoke `func` with. 18296 * @returns {*} Returns the result of `func`. 18297 */ 18298function apply(func, thisArg, args) { 18299 switch (args.length) { 18300 case 0: return func.call(thisArg); 18301 case 1: return func.call(thisArg, args[0]); 18302 case 2: return func.call(thisArg, args[0], args[1]); 18303 case 3: return func.call(thisArg, args[0], args[1], args[2]); 18304 } 18305 return func.apply(thisArg, args); 18306} 18307 18308module.exports = apply; 18309 18310 18311/***/ }), 18312/* 321 */ 18313/***/ (function(module, exports, __webpack_require__) { 18314 18315var baseSetToString = __webpack_require__(322), 18316 shortOut = __webpack_require__(324); 18317 18318/** 18319 * Sets the `toString` method of `func` to return `string`. 18320 * 18321 * @private 18322 * @param {Function} func The function to modify. 18323 * @param {Function} string The `toString` result. 18324 * @returns {Function} Returns `func`. 18325 */ 18326var setToString = shortOut(baseSetToString); 18327 18328module.exports = setToString; 18329 18330 18331/***/ }), 18332/* 322 */ 18333/***/ (function(module, exports, __webpack_require__) { 18334 18335var constant = __webpack_require__(323), 18336 defineProperty = __webpack_require__(125), 18337 identity = __webpack_require__(63); 18338 18339/** 18340 * The base implementation of `setToString` without support for hot loop shorting. 18341 * 18342 * @private 18343 * @param {Function} func The function to modify. 18344 * @param {Function} string The `toString` result. 18345 * @returns {Function} Returns `func`. 18346 */ 18347var baseSetToString = !defineProperty ? identity : function(func, string) { 18348 return defineProperty(func, 'toString', { 18349 'configurable': true, 18350 'enumerable': false, 18351 'value': constant(string), 18352 'writable': true 18353 }); 18354}; 18355 18356module.exports = baseSetToString; 18357 18358 18359/***/ }), 18360/* 323 */
vendor: 7,235 bytes, lines 18361-18594
18361/***/ (function(module, exports) { 18362 18363/** 18364 * Creates a function that returns `value`. 18365 * 18366 * @static 18367 * @memberOf _ 18368 * @since 2.4.0 18369 * @category Util 18370 * @param {*} value The value to return from the new function. 18371 * @returns {Function} Returns the new constant function. 18372 * @example 18373 * 18374 * var objects = _.times(2, _.constant({ 'a': 1 })); 18375 * 18376 * console.log(objects); 18377 * // => [{ 'a': 1 }, { 'a': 1 }] 18378 * 18379 * console.log(objects[0] === objects[1]); 18380 * // => true 18381 */ 18382function constant(value) { 18383 return function() { 18384 return value; 18385 }; 18386} 18387 18388module.exports = constant; 18389 18390 18391/***/ }), 18392/* 324 */ 18393/***/ (function(module, exports) { 18394 18395/** Used to detect hot functions by number of calls within a span of milliseconds. */ 18396var HOT_COUNT = 800, 18397 HOT_SPAN = 16; 18398 18399/* Built-in method references for those with the same name as other `lodash` methods. */ 18400var nativeNow = Date.now; 18401 18402/** 18403 * Creates a function that'll short out and invoke `identity` instead 18404 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 18405 * milliseconds. 18406 * 18407 * @private 18408 * @param {Function} func The function to restrict. 18409 * @returns {Function} Returns the new shortable function. 18410 */ 18411function shortOut(func) { 18412 var count = 0, 18413 lastCalled = 0; 18414 18415 return function() { 18416 var stamp = nativeNow(), 18417 remaining = HOT_SPAN - (stamp - lastCalled); 18418 18419 lastCalled = stamp; 18420 if (remaining > 0) { 18421 if (++count >= HOT_COUNT) { 18422 return arguments[0]; 18423 } 18424 } else { 18425 count = 0; 18426 } 18427 return func.apply(undefined, arguments); 18428 }; 18429} 18430 18431module.exports = shortOut; 18432 18433 18434/***/ }), 18435/* 325 */ 18436/***/ (function(module, exports, __webpack_require__) { 18437 18438var WeakMap = __webpack_require__(109); 18439 18440/** Used to store function metadata. */ 18441var metaMap = WeakMap && new WeakMap; 18442 18443module.exports = metaMap; 18444 18445 18446/***/ }), 18447/* 326 */ 18448/***/ (function(module, exports) { 18449 18450/** 18451 * This method returns `undefined`. 18452 * 18453 * @static 18454 * @memberOf _ 18455 * @since 2.3.0 18456 * @category Util 18457 * @example 18458 * 18459 * _.times(2, _.noop); 18460 * // => [undefined, undefined] 18461 */ 18462function noop() { 18463 // No operation performed. 18464} 18465 18466module.exports = noop; 18467 18468 18469/***/ }), 18470/* 327 */ 18471/***/ (function(module, exports) { 18472 18473/** Used to lookup unminified function names. */ 18474var realNames = {}; 18475 18476module.exports = realNames; 18477 18478 18479/***/ }), 18480/* 328 */ 18481/***/ (function(module, exports, __webpack_require__) { 18482 18483var LazyWrapper = __webpack_require__(68), 18484 getData = __webpack_require__(127), 18485 getFuncName = __webpack_require__(128), 18486 lodash = __webpack_require__(329); 18487 18488/** 18489 * Checks if `func` has a lazy counterpart. 18490 * 18491 * @private 18492 * @param {Function} func The function to check. 18493 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 18494 * else `false`. 18495 */ 18496function isLaziable(func) { 18497 var funcName = getFuncName(func), 18498 other = lodash[funcName]; 18499 18500 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 18501 return false; 18502 } 18503 if (func === other) { 18504 return true; 18505 } 18506 var data = getData(other); 18507 return !!data && func === data[0]; 18508} 18509 18510module.exports = isLaziable; 18511 18512 18513/***/ }), 18514/* 329 */ 18515/***/ (function(module, exports, __webpack_require__) { 18516 18517var LazyWrapper = __webpack_require__(68), 18518 LodashWrapper = __webpack_require__(66), 18519 baseLodash = __webpack_require__(67), 18520 isArray = __webpack_require__(2), 18521 isObjectLike = __webpack_require__(12), 18522 wrapperClone = __webpack_require__(330); 18523 18524/** Used for built-in method references. */ 18525var objectProto = Object.prototype; 18526 18527/** Used to check objects for own properties. */ 18528var hasOwnProperty = objectProto.hasOwnProperty; 18529 18530/** 18531 * Creates a `lodash` object which wraps `value` to enable implicit method 18532 * chain sequences. Methods that operate on and return arrays, collections, 18533 * and functions can be chained together. Methods that retrieve a single value 18534 * or may return a primitive value will automatically end the chain sequence 18535 * and return the unwrapped value. Otherwise, the value must be unwrapped 18536 * with `_#value`. 18537 * 18538 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 18539 * enabled using `_.chain`. 18540 * 18541 * The execution of chained methods is lazy, that is, it's deferred until 18542 * `_#value` is implicitly or explicitly called. 18543 * 18544 * Lazy evaluation allows several methods to support shortcut fusion. 18545 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 18546 * the creation of intermediate arrays and can greatly reduce the number of 18547 * iteratee executions. Sections of a chain sequence qualify for shortcut 18548 * fusion if the section is applied to an array and iteratees accept only 18549 * one argument. The heuristic for whether a section qualifies for shortcut 18550 * fusion is subject to change. 18551 * 18552 * Chaining is supported in custom builds as long as the `_#value` method is 18553 * directly or indirectly included in the build. 18554 * 18555 * In addition to lodash methods, wrappers have `Array` and `String` methods. 18556 * 18557 * The wrapper `Array` methods are: 18558 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 18559 * 18560 * The wrapper `String` methods are: 18561 * `replace` and `split` 18562 * 18563 * The wrapper methods that support shortcut fusion are: 18564 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 18565 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 18566 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 18567 * 18568 * The chainable wrapper methods are: 18569 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 18570 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 18571 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 18572 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 18573 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 18574 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 18575 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 18576 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 18577 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 18578 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 18579 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 18580 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 18581 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 18582 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 18583 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 18584 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 18585 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 18586 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 18587 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 18588 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 18589 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 18590 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 18591 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 18592 * `zipObject`, `zipObjectDeep`, and `zipWith` 18593 * 18594 * The wrapper methods that are **not** chainable by default are:
18595 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 18596 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 18597 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 18598 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 18599 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 18600 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 18601 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 18602 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 18603 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 18604 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 18605 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 18606 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 18607 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 18608 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 18609 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 18610 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 18611 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 18612 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 18613 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 18614 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 18615 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 18616 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 18617 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 18618 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 18619 * `upperFirst`, `value`, and `words` 18620 * 18621 * @name _ 18622 * @constructor 18623 * @category Seq 18624 * @param {*} value The value to wrap in a `lodash` instance. 18625 * @returns {Object} Returns the new `lodash` wrapper instance. 18626 * @example 18627 * 18628 * function square(n) { 18629 * return n * n; 18630 * } 18631 * 18632 * var wrapped = _([1, 2, 3]); 18633 * 18634 * // Returns an unwrapped value. 18635 * wrapped.reduce(_.add); 18636 * // => 6 18637 * 18638 * // Returns a wrapped value. 18639 * var squares = wrapped.map(square); 18640 * 18641 * _.isArray(squares); 18642 * // => false 18643 * 18644 * _.isArray(squares.value()); 18645 * // => true 18646 */ 18647function lodash(value) { 18648 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 18649 if (value instanceof LodashWrapper) { 18650 return value; 18651 } 18652 if (hasOwnProperty.call(value, '__wrapped__')) { 18653 return wrapperClone(value); 18654 } 18655 } 18656 return new LodashWrapper(value); 18657} 18658 18659// Ensure wrappers are instances of `baseLodash`. 18660lodash.prototype = baseLodash.prototype; 18661lodash.prototype.constructor = lodash; 18662 18663module.exports = lodash; 18664 18665 18666/***/ }), 18667/* 330 */ 18668/***/ (function(module, exports, __webpack_require__) { 18669 18670var LazyWrapper = __webpack_require__(68), 18671 LodashWrapper = __webpack_require__(66), 18672 copyArray = __webpack_require__(331); 18673 18674/** 18675 * Creates a clone of `wrapper`. 18676 * 18677 * @private 18678 * @param {Object} wrapper The wrapper to clone. 18679 * @returns {Object} Returns the cloned wrapper. 18680 */ 18681function wrapperClone(wrapper) { 18682 if (wrapper instanceof LazyWrapper) { 18683 return wrapper.clone(); 18684 } 18685 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 18686 result.__actions__ = copyArray(wrapper.__actions__); 18687 result.__index__ = wrapper.__index__; 18688 result.__values__ = wrapper.__values__; 18689 return result; 18690} 18691 18692module.exports = wrapperClone; 18693 18694 18695/***/ }), 18696/* 331 */ 18697/***/ (function(module, exports) { 18698 18699/** 18700 * Copies the values of `source` to `array`. 18701 * 18702 * @private 18703 * @param {Array} source The array to copy values from. 18704 * @param {Array} [array=[]] The array to copy values to. 18705 * @returns {Array} Returns `array`. 18706 */ 18707function copyArray(source, array) { 18708 var index = -1, 18709 length = source.length; 18710 18711 array || (array = Array(length)); 18712 while (++index < length) { 18713 array[index] = source[index]; 18714 } 18715 return array; 18716} 18717 18718module.exports = copyArray; 18719 18720 18721/***/ }), 18722/* 332 */ 18723/***/ (function(module, exports, __webpack_require__) { 18724 18725var baseClamp = __webpack_require__(333),
18726 toNumber = __webpack_require__(64); 18727 18728/** 18729 * Clamps `number` within the inclusive `lower` and `upper` bounds. 18730 * 18731 * @static 18732 * @memberOf _ 18733 * @since 4.0.0 18734 * @category Number 18735 * @param {number} number The number to clamp. 18736 * @param {number} [lower] The lower bound. 18737 * @param {number} upper The upper bound. 18738 * @returns {number} Returns the clamped number. 18739 * @example 18740 * 18741 * _.clamp(-10, -5, 5); 18742 * // => -5 18743 * 18744 * _.clamp(10, -5, 5); 18745 * // => 5 18746 */ 18747function clamp(number, lower, upper) { 18748 if (upper === undefined) { 18749 upper = lower; 18750 lower = undefined; 18751 } 18752 if (upper !== undefined) { 18753 upper = toNumber(upper); 18754 upper = upper === upper ? upper : 0; 18755 } 18756 if (lower !== undefined) { 18757 lower = toNumber(lower); 18758 lower = lower === lower ? lower : 0; 18759 } 18760 return baseClamp(toNumber(number), lower, upper); 18761} 18762 18763module.exports = clamp; 18764 18765 18766/***/ }), 18767/* 333 */ 18768/***/ (function(module, exports) { 18769 18770/** 18771 * The base implementation of `_.clamp` which doesn't coerce arguments. 18772 * 18773 * @private 18774 * @param {number} number The number to clamp. 18775 * @param {number} [lower] The lower bound. 18776 * @param {number} upper The upper bound. 18777 * @returns {number} Returns the clamped number. 18778 */ 18779function baseClamp(number, lower, upper) { 18780 if (number === number) { 18781 if (upper !== undefined) { 18782 number = number <= upper ? number : upper; 18783 } 18784 if (lower !== undefined) { 18785 number = number >= lower ? number : lower; 18786 } 18787 } 18788 return number; 18789} 18790 18791module.exports = baseClamp; 18792 18793 18794/***/ }), 18795/* 334 */ 18796/***/ (function(module, exports, __webpack_require__) { 18797 18798"use strict"; 18799 // @wf-will-never-add-flow-to-this-file 18800 18801/* globals window, document */ 18802 18803/* eslint-disable no-var */ 18804 18805/** 18806 * Webflow: Auto-select links to current page or section 18807 */ 18808 18809var Webflow = __webpack_require__(3); 18810 18811Webflow.define('links', module.exports = function ($, _) { 18812 var api = {}; 18813 var $win = $(window); 18814 var designer; 18815 var inApp = Webflow.env(); 18816 var location = window.location; 18817 var tempLink = document.createElement('a'); 18818 var linkCurrent = 'w--current'; 18819 var indexPage = /index\.(html|php)$/; 18820 var dirList = /\/$/; 18821 var anchors; 18822 var slug; // ----------------------------------- 18823 // Module methods 18824 18825 api.ready = api.design = api.preview = init; // ----------------------------------- 18826 // Private methods 18827 18828 function init() { 18829 designer = inApp && Webflow.env('design'); 18830 slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors 18831 18832 Webflow.scroll.off(scroll); 18833 anchors = []; // Test all links for a selectable href 18834 18835 var links = document.links; 18836 18837 for (var i = 0; i < links.length; ++i) { 18838 select(links[i]); 18839 } // Listen for scroll if any anchors exist 18840 18841 18842 if (anchors.length) { 18843 Webflow.scroll.on(scroll); 18844 scroll(); 18845 } 18846 } 18847 18848 function select(link) { 18849 var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); 18850 tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes 18851 18852 if (href.indexOf(':') >= 0) { 18853 return; 18854 } 18855 18856 var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page 18857 18858 if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { 18859 // Ignore any hrefs with Google Translate type hash 18860 // Example: jQuery can't parse $('#googtrans(en|es)') 18861 // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 18862 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { 18863 return; 18864 } 18865 18866 var $section = $(tempLink.hash); 18867 $section.length && anchors.push({ 18868 link: $link, 18869 sec: $section, 18870 active: false 18871 }); 18872 return; 18873 } // Ignore empty # links 18874 18875 18876 if (href === '#' || href === '') { 18877 return; 18878 } // Determine whether the link should be selected 18879 18880 18881 var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); 18882 setClass($link, linkCurrent, match); 18883 } 18884 18885 function scroll() { 18886 var viewTop = $win.scrollTop(); 18887 var viewHeight = $win.height(); // Check each anchor for a section in view 18888 18889 _.each(anchors, function (anchor) { 18890 var $link = anchor.link; 18891 var $section = anchor.sec; 18892 var top = $section.offset().top; 18893 var height = $section.outerHeight(); 18894 var offset = viewHeight * 0.5; 18895 var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; 18896 18897 if (anchor.active === active) { 18898 return; 18899 } 18900 18901 anchor.active = active; 18902 setClass($link, linkCurrent, active); 18903 }); 18904 } 18905 18906 function setClass($elem, className, add) { 18907 var exists = $elem.hasClass(className); 18908 18909 if (add && exists) { 18910 return; 18911 } 18912 18913 if (!add && !exists) { 18914 return; 18915 } 18916 18917 add ? $elem.addClass(className) : $elem.removeClass(className); 18918 } // Export module 18919 18920 18921 return api; 18922}); 18923 18924/***/ }), 18925/* 335 */ 18926/***/ (function(module, exports, __webpack_require__) { 18927 18928"use strict"; 18929 // @wf-will-never-add-flow-to-this-file 18930 18931/* globals window, document */ 18932 18933/* eslint-disable no-var */ 18934 18935/** 18936 * Webflow: Smooth scroll 18937 */ 18938 18939var Webflow = __webpack_require__(3); 18940 18941Webflow.define('scroll', module.exports = function ($) { 18942 /** 18943 * A collection of namespaced events found in this module.
18944 * Namespaced events encapsulate our code, and make it safer and easier 18945 * for designers to apply custom code overrides. 18946 * @see https://api.jquery.com/on/#event-names 18947 * @typedef {Object.<string>} NamespacedEventsCollection 18948 */ 18949 var NS_EVENTS = { 18950 WF_CLICK_EMPTY: 'click.wf-empty-link', 18951 WF_CLICK_SCROLL: 'click.wf-scroll' 18952 }; 18953 var loc = window.location; 18954 var history = inIframe() ? null : window.history; 18955 var $win = $(window); 18956 var $doc = $(document); 18957 var $body = $(document.body); 18958 18959 var animate = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { 18960 window.setTimeout(fn, 15); 18961 }; 18962 18963 var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; 18964 var headerSelector = 'header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'; 18965 var emptyHrefSelector = 'a[href="#"]'; 18966 /** 18967 * Select only links whose href: 18968 * - contains a # 18969 * - is not one of our namespaced TabLink elements 18970 * - is not _only_ a # 18971 */ 18972 18973 var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; 18974 var scrollTargetOutlineCSS = '.wf-force-outline-none[tabindex="-1"]:focus{outline:none;}'; 18975 var focusStylesEl = document.createElement('style'); 18976 focusStylesEl.appendChild(document.createTextNode(scrollTargetOutlineCSS)); 18977 18978 function inIframe() { 18979 try { 18980 return Boolean(window.frameElement); 18981 } catch (e) { 18982 return true; 18983 } 18984 } 18985 18986 var validHash = /^#[a-zA-Z0-9][\w:.-]*$/; 18987 /** 18988 * Determine if link navigates to current page 18989 * @param {HTMLAnchorElement} link 18990 */ 18991 18992 function linksToCurrentPage(link) { 18993 return validHash.test(link.hash) && link.host + link.pathname === loc.host + loc.pathname; 18994 } 18995 /** 18996 * Check if the designer has indicated that this page should 18997 * have no scroll animation, or if the end user has set 18998 * prefers-reduced-motion in their OS 18999 */ 19000 19001 19002 var reducedMotionMediaQuery = typeof window.matchMedia === 'function' && window.matchMedia('(prefers-reduced-motion: reduce)'); 19003 19004 function reducedMotionEnabled() { 19005 return document.body.getAttribute('data-wf-scroll-motion') === 'none' || reducedMotionMediaQuery.matches; 19006 } 19007 19008 function setFocusable($el, action) { 19009 var initialTabindex; 19010 19011 switch (action) { 19012 case 'add': 19013 initialTabindex = $el.attr('tabindex'); 19014 19015 if (initialTabindex) { 19016 $el.attr('data-wf-tabindex-swap', initialTabindex); 19017 } else { 19018 $el.attr('tabindex', '-1'); 19019 } 19020 19021 break; 19022 19023 case 'remove': 19024 initialTabindex = $el.attr('data-wf-tabindex-swap'); 19025 19026 if (initialTabindex) { 19027 $el.attr('tabindex', initialTabindex); 19028 $el.removeAttr('data-wf-tabindex-swap'); 19029 } else { 19030 $el.removeAttr('tabindex'); 19031 } 19032 19033 break; 19034 } 19035 19036 $el.toggleClass('wf-force-outline-none', action === 'add'); 19037 } 19038 /** 19039 * Determine if we should execute custom scroll 19040 */ 19041 19042 19043 function validateScroll(evt) { 19044 var target = evt.currentTarget; 19045 19046 if ( // Bail if in Designer 19047 Webflow.env('design') || // Ignore links being used by jQuery mobile 19048 window.$.mobile && /(?:^|\s)ui-link(?:$|\s)/.test(target.className)) { 19049 return; 19050 } 19051 19052 var hash = linksToCurrentPage(target) ? target.hash : ''; 19053 if (hash === '') return; 19054 var $el = $(hash); 19055 19056 if (!$el.length) { 19057 return; 19058 } 19059 19060 if (evt) { 19061 evt.preventDefault(); 19062 evt.stopPropagation(); 19063 } 19064 19065 updateHistory(hash, evt); 19066 window.setTimeout(function () { 19067 scroll($el, function setFocus() { 19068 setFocusable($el, 'add'); 19069 $el.get(0).focus({ 19070 preventScroll: true 19071 }); 19072 setFocusable($el, 'remove'); 19073 }); 19074 }, evt ? 0 : 300); 19075 } 19076 19077 function updateHistory(hash) { 19078 // Push new history state 19079 if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. 19080 !(Webflow.env.chrome && loc.protocol === 'file:')) { 19081 var oldHash = history.state && history.state.hash; 19082 19083 if (oldHash !== hash) { 19084 history.pushState({ 19085 hash: hash 19086 }, '', hash); 19087 } 19088 } 19089 } 19090 19091 function scroll($targetEl, cb) { 19092 var start = $win.scrollTop(); 19093 var end = calculateScrollEndPosition($targetEl); 19094 if (start === end) return; 19095 var duration = calculateScrollDuration($targetEl, start, end); 19096 var clock = Date.now(); 19097 19098 var step = function step() {
19099 var elapsed = Date.now() - clock; 19100 window.scroll(0, getY(start, end, elapsed, duration)); 19101 19102 if (elapsed <= duration) { 19103 animate(step); 19104 } else if (typeof cb === 'function') { 19105 cb(); 19106 } 19107 }; 19108 19109 animate(step); 19110 } 19111 19112 function calculateScrollEndPosition($targetEl) { 19113 // If a fixed header exists, offset for the height 19114 var $header = $(headerSelector); 19115 var offsetY = $header.css('position') === 'fixed' ? $header.outerHeight() : 0; 19116 var end = $targetEl.offset().top - offsetY; // If specified, scroll so that the element ends up in the middle of the viewport 19117 19118 if ($targetEl.data('scroll') === 'mid') { 19119 var available = $win.height() - offsetY; 19120 var elHeight = $targetEl.outerHeight(); 19121 19122 if (elHeight < available) { 19123 end -= Math.round((available - elHeight) / 2); 19124 } 19125 } 19126 19127 return end; 19128 } 19129 19130 function calculateScrollDuration($targetEl, start, end) { 19131 if (reducedMotionEnabled()) return 0; 19132 var mult = 1; // Check for custom time multiplier on the body and the scroll target 19133 19134 $body.add($targetEl).each(function (_, el) { 19135 var time = parseFloat(el.getAttribute('data-scroll-time')); 19136 19137 if (!isNaN(time) && time >= 0) { 19138 mult = time; 19139 } 19140 }); 19141 return (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; 19142 } 19143 19144 function getY(start, end, elapsed, duration) { 19145 if (elapsed > duration) { 19146 return end; 19147 } 19148 19149 return start + (end - start) * ease(elapsed / duration); 19150 } 19151 19152 function ease(t) { 19153 return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 19154 } 19155 19156 function ready() { 19157 var WF_CLICK_EMPTY = NS_EVENTS.WF_CLICK_EMPTY, 19158 WF_CLICK_SCROLL = NS_EVENTS.WF_CLICK_SCROLL; 19159 $doc.on(WF_CLICK_SCROLL, localHrefSelector, validateScroll); 19160 /** 19161 * Prevent empty hash links from triggering scroll. 19162 * Legacy feature to preserve: use the default "#" link 19163 * to trigger an interaction, and do not want the page 19164 * to scroll to the top. 19165 */ 19166 19167 $doc.on(WF_CLICK_EMPTY, emptyHrefSelector, function (e) { 19168 e.preventDefault(); 19169 }); 19170 document.head.insertBefore(focusStylesEl, document.head.firstChild); 19171 } // Export module 19172 19173 19174 return { 19175 ready: ready 19176 }; 19177}); 19178 19179/***/ }), 19180/* 336 */ 19181/***/ (function(module, exports, __webpack_require__) { 19182 19183"use strict"; 19184 // @wf-will-never-add-flow-to-this-file 19185 19186/* globals document, window */ 19187 19188/* eslint-disable no-var */ 19189 19190/** 19191 * Webflow: Touch events 19192 * Supports legacy 'tap' event 19193 * Adds a 'swipe' event to desktop and mobile 19194 */ 19195 19196var Webflow = __webpack_require__(3); 19197 19198Webflow.define('touch', module.exports = function ($) { 19199 var api = {}; 19200 var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' 19201 19202 $.event.special.tap = { 19203 bindType: 'click', 19204 delegateType: 'click' 19205 }; 19206 19207 api.init = function (el) { 19208 el = typeof el === 'string' ? $(el).get(0) : el; 19209 return el ? new Touch(el) : null; 19210 }; 19211 19212 function Touch(el) { 19213 var active = false; 19214 var useTouch = false; 19215 var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); 19216 var startX; 19217 var lastX; 19218 el.addEventListener('touchstart', start, false); 19219 el.addEventListener('touchmove', move, false); 19220 el.addEventListener('touchend', end, false); 19221 el.addEventListener('touchcancel', cancel, false); 19222 el.addEventListener('mousedown', start, false); 19223 el.addEventListener('mousemove', move, false); 19224 el.addEventListener('mouseup', end, false); 19225 el.addEventListener('mouseout', cancel, false); 19226 19227 function start(evt) { 19228 // We donât handle multi-touch events yet. 19229 var touches = evt.touches; 19230 19231 if (touches && touches.length > 1) { 19232 return; 19233 } 19234 19235 active = true; 19236 19237 if (touches) { 19238 useTouch = true; 19239 startX = touches[0].clientX; 19240 } else { 19241 startX = evt.clientX; 19242 } 19243 19244 lastX = startX; 19245 } 19246 19247 function move(evt) { 19248 if (!active) { 19249 return; 19250 } 19251 19252 if (useTouch && evt.type === 'mousemove') { 19253 evt.preventDefault(); 19254 evt.stopPropagation(); 19255 return; 19256 } 19257 19258 var touches = evt.touches; 19259 var x = touches ? touches[0].clientX : evt.clientX; 19260 var velocityX = x - lastX; 19261 lastX = x; // Allow swipes while pointer is down, but prevent them during text selection 19262 19263 if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { 19264 triggerEvent('swipe', evt, { 19265 direction: velocityX > 0 ? 'right' : 'left' 19266 }); 19267 cancel(); 19268 } 19269 } 19270 19271 function end(evt) { 19272 if (!active) { 19273 return; 19274 } 19275 19276 active = false;
19277 19278 if (useTouch && evt.type === 'mouseup') { 19279 evt.preventDefault(); 19280 evt.stopPropagation(); 19281 useTouch = false; 19282 return; 19283 } 19284 } 19285 19286 function cancel() { 19287 active = false; 19288 } 19289 19290 function destroy() { 19291 el.removeEventListener('touchstart', start, false); 19292 el.removeEventListener('touchmove', move, false); 19293 el.removeEventListener('touchend', end, false); 19294 el.removeEventListener('touchcancel', cancel, false); 19295 el.removeEventListener('mousedown', start, false); 19296 el.removeEventListener('mousemove', move, false); 19297 el.removeEventListener('mouseup', end, false); 19298 el.removeEventListener('mouseout', cancel, false); 19299 el = null; 19300 } // Public instance methods 19301 19302 19303 this.destroy = destroy; 19304 } // Wrap native event to supoprt preventdefault + stopPropagation 19305 19306 19307 function triggerEvent(type, evt, data) { 19308 var newEvent = $.Event(type, { 19309 originalEvent: evt 19310 }); 19311 $(evt.target).trigger(newEvent, data); 19312 } // Listen for touch events on all nodes by default. 19313 19314 19315 api.instance = api.init(document); // Export module 19316 19317 return api; 19318}); 19319 19320/***/ }), 19321/* 337 */ 19322/***/ (function(module, exports, __webpack_require__) { 19323 19324"use strict"; 19325 // @wf-will-never-add-flow-to-this-file 19326 19327/* globals window, document */ 19328 19329/* eslint-disable no-var */ 19330 19331/** 19332 * Webflow: Dropdown component 19333 */ 19334 19335var Webflow = __webpack_require__(3); 19336 19337var IXEvents = __webpack_require__(39); 19338 19339var KEY_CODES = { 19340 ARROW_LEFT: 37, 19341 ARROW_UP: 38, 19342 ARROW_RIGHT: 39, 19343 ARROW_DOWN: 40, 19344 ESCAPE: 27, 19345 SPACE: 32, 19346 ENTER: 13, 19347 HOME: 36, 19348 END: 35 19349}; 19350var FORCE_CLOSE = true; 19351/** 19352 * This pattern matches links that begin with a `#` AND have some alphanumeric 19353 * characters after it, including also hyphens and underscores 19354 * 19355 * Matches: 19356 * #foo 19357 * #999 19358 * #foo-bar_baz 19359 * 19360 * Does not match: 19361 * # 19362 */ 19363 19364var INTERNAL_PAGE_LINK_HASHES_PATTERN = /^#[a-zA-Z0-9\-_]+$/; 19365Webflow.define('dropdown', module.exports = function ($, _) { 19366 var debounce = _.debounce; 19367 var api = {}; 19368 var inApp = Webflow.env(); 19369 var inPreview = false; 19370 var inDesigner; 19371 var touch = Webflow.env.touch; 19372 var namespace = '.w-dropdown'; 19373 var openStateClassName = 'w--open'; 19374 var ix = IXEvents.triggers; 19375 var defaultZIndex = 900; // @dropdown-depth 19376 19377 var focusOutEvent = 'focusout' + namespace; 19378 var keydownEvent = 'keydown' + namespace; 19379 var mouseEnterEvent = 'mouseenter' + namespace; 19380 var mouseMoveEvent = 'mousemove' + namespace; 19381 var mouseLeaveEvent = 'mouseleave' + namespace; 19382 var mouseUpEvent = (touch ? 'click' : 'mouseup') + namespace; 19383 var closeEvent = 'w-close' + namespace; 19384 var settingEvent = 'setting' + namespace; 19385 var $doc = $(document); 19386 var $dropdowns; // ----------------------------------- 19387 // Module methods 19388 19389 api.ready = init; 19390 19391 api.design = function () { 19392 // Close all when returning from preview 19393 if (inPreview) { 19394 closeAll(); 19395 } 19396 19397 inPreview = false; 19398 init(); 19399 }; 19400 19401 api.preview = function () { 19402 inPreview = true; 19403 init(); 19404 }; // ----------------------------------- 19405 // Private methods 19406 19407 19408 function init() { 19409 inDesigner = inApp && Webflow.env('design'); // Find all instances on the page 19410 19411 $dropdowns = $doc.find(namespace); 19412 $dropdowns.each(build); 19413 } 19414 19415 function build(i, el) { 19416 var $el = $(el); // Store state in data 19417 19418 var data = $.data(el, namespace); 19419 19420 if (!data) { 19421 data = $.data(el, namespace, { 19422 open: false, 19423 el: $el, 19424 config: {}, 19425 selectedIdx: -1 19426 }); 19427 } 19428 19429 data.toggle = data.el.children('.w-dropdown-toggle'); 19430 data.list = data.el.children('.w-dropdown-list'); 19431 data.links = data.list.find('a:not(.w-dropdown .w-dropdown a)'); 19432 data.complete = complete(data); 19433 data.mouseLeave = makeMouseLeaveHandler(data); 19434 data.mouseUpOutside = outside(data); 19435 data.mouseMoveOutside = moveOutside(data); // Set config from data attributes 19436 19437 configure(data); // Store the IDs of the toggle button & list 19438 19439 var toggleId = data.toggle.attr('id'); 19440 var listId = data.list.attr('id'); // If user did not provide toggle ID, set it 19441 19442 if (!toggleId) { 19443 toggleId = 'w-dropdown-toggle-' + i; 19444 } // If user did not provide list ID, set it 19445 19446 19447 if (!listId) { 19448 listId = 'w-dropdown-list-' + i; 19449 } // Add attributes to toggle element 19450 19451 19452 data.toggle.attr('id', toggleId); 19453 data.toggle.attr('aria-controls', listId); 19454 data.toggle.attr('aria-haspopup', 'menu'); 19455 data.toggle.attr('aria-expanded', 'false'); // Hide toggle icon from ATs 19456 19457 data.toggle.find('.w-icon-dropdown-toggle').attr('aria-hidden', 'true'); // If toggle element is not a button 19458 19459 if (data.toggle.prop('tagName') !== 'BUTTON') { 19460 // Give it an appropriate role 19461 data.toggle.attr('role', 'button'); // And give it a tabindex if user has not provided one 19462 19463 if (!data.toggle.attr('tabindex')) { 19464 data.toggle.attr('tabindex', '0'); 19465 } 19466 } // Add attributes to list element 19467 19468 19469 data.list.attr('id', listId); 19470 data.list.attr('aria-labelledby', toggleId); 19471 data.links.each(function (idx, link) { 19472 /** 19473 * In macOS Safari, links don't take focus on click unless they have 19474 * a tabindex. Without this, the dropdown will break. 19475 * @see https://gist.github.com/cvrebert/68659d0333a578d75372 19476 */ 19477 if (!link.hasAttribute('tabindex')) link.setAttribute('tabindex', '0'); // We want to close the drop down if the href links somewhere internally 19478 // to the page 19479 19480 if (INTERNAL_PAGE_LINK_HASHES_PATTERN.test(link.hash)) { 19481 link.addEventListener('click', close.bind(null, data)); 19482 } 19483 }); // Remove old events 19484 19485 data.el.off(namespace); 19486 data.toggle.off(namespace); 19487 19488 if (data.nav) { 19489 data.nav.off(namespace); 19490 } 19491 19492 var initialToggler = makeToggler(data, FORCE_CLOSE); 19493 19494 if (inDesigner) { 19495 data.el.on(settingEvent, makeSettingEventHandler(data)); 19496 } 19497 19498 if (!inDesigner) { 19499 // Close in preview mode and clean the data.hovering state 19500 if (inApp) { 19501 data.hovering = false;
19502 close(data); 19503 } 19504 19505 if (data.config.hover) { 19506 data.toggle.on(mouseEnterEvent, makeMouseEnterHandler(data)); 19507 } 19508 19509 data.el.on(closeEvent, initialToggler); 19510 data.el.on(keydownEvent, makeDropdownKeydownHandler(data)); 19511 data.el.on(focusOutEvent, makeDropdownFocusOutHandler(data)); 19512 data.toggle.on(mouseUpEvent, initialToggler); 19513 data.toggle.on(keydownEvent, makeToggleKeydownHandler(data)); 19514 data.nav = data.el.closest('.w-nav'); 19515 data.nav.on(closeEvent, initialToggler); 19516 } 19517 } 19518 /** 19519 * Mutate the data object with a new config property 19520 */ 19521 19522 19523 function configure(data) { 19524 // Determine if z-index should be managed 19525 var zIndex = Number(data.el.css('z-index')); 19526 data.manageZ = zIndex === defaultZIndex || zIndex === defaultZIndex + 1; 19527 data.config = { 19528 hover: data.el.attr('data-hover') === 'true' && !touch, 19529 delay: data.el.attr('data-delay') 19530 }; 19531 } 19532 19533 function makeSettingEventHandler(data) { 19534 return function (evt, options) { 19535 options = options || {}; 19536 configure(data); 19537 options.open === true && open(data, true); 19538 options.open === false && close(data, { 19539 immediate: true 19540 }); 19541 }; 19542 } 19543 19544 function makeToggler(data, forceClose) { 19545 return debounce(function (evt) { 19546 if (data.open || evt && evt.type === 'w-close') { 19547 return close(data, { 19548 forceClose: forceClose 19549 }); 19550 } 19551 19552 open(data); 19553 }); 19554 } 19555 19556 function open(data) { 19557 if (data.open) { 19558 return; 19559 } 19560 19561 closeOthers(data); 19562 data.open = true; 19563 data.list.addClass(openStateClassName); 19564 data.toggle.addClass(openStateClassName); 19565 data.toggle.attr('aria-expanded', 'true'); // ARIA 19566 19567 ix.intro(0, data.el[0]); 19568 Webflow.redraw.up(); // Increase z-index to keep above other managed dropdowns 19569 19570 data.manageZ && data.el.css('z-index', defaultZIndex + 1); // Listen for click outside events 19571 19572 var isEditor = Webflow.env('editor'); 19573 19574 if (!inDesigner) { 19575 $doc.on(mouseUpEvent, data.mouseUpOutside); 19576 } 19577 19578 if (data.hovering && !isEditor) { 19579 data.el.on(mouseLeaveEvent, data.mouseLeave); 19580 } 19581 19582 if (data.hovering && isEditor) { 19583 $doc.on(mouseMoveEvent, data.mouseMoveOutside); 19584 } // Clear previous delay 19585 19586 19587 window.clearTimeout(data.delayId); 19588 } 19589 19590 function close(data) { 19591 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 19592 immediate = _ref.immediate, 19593 forceClose = _ref.forceClose; 19594 19595 if (!data.open) { 19596 return; 19597 } // Do not close hover-based menus if currently hovering 19598 19599 19600 if (data.config.hover && data.hovering && !forceClose) { 19601 return; 19602 } 19603 19604 data.toggle.attr('aria-expanded', 'false'); 19605 data.open = false; 19606 var config = data.config; 19607 ix.outro(0, data.el[0]); // Stop listening for click outside events 19608 19609 $doc.off(mouseUpEvent, data.mouseUpOutside); 19610 $doc.off(mouseMoveEvent, data.mouseMoveOutside); 19611 data.el.off(mouseLeaveEvent, data.mouseLeave); // Clear previous delay 19612 19613 window.clearTimeout(data.delayId); // Skip delay during immediate 19614 19615 if (!config.delay || immediate) { 19616 return data.complete(); 19617 } // Optionally wait for delay before close 19618 19619 19620 data.delayId = window.setTimeout(data.complete, config.delay); 19621 } 19622 19623 function closeAll() { 19624 $doc.find(namespace).each(function (i, el) { 19625 $(el).triggerHandler(closeEvent); 19626 }); 19627 } 19628 19629 function closeOthers(data) { 19630 var self = data.el[0]; 19631 $dropdowns.each(function (i, other) { 19632 var $other = $(other); 19633 19634 if ($other.is(self) || $other.has(self).length) { 19635 return; 19636 } 19637 19638 $other.triggerHandler(closeEvent); 19639 }); 19640 } 19641 19642 function outside(data) { 19643 // Unbind previous click handler if it exists 19644 if (data.mouseUpOutside) { 19645 $doc.off(mouseUpEvent, data.mouseUpOutside); 19646 } // Close menu when clicked outside 19647 19648 19649 return debounce(function (evt) { 19650 if (!data.open) { 19651 return; 19652 } 19653 19654 var $target = $(evt.target); 19655 19656 if ($target.closest('.w-dropdown-toggle').length) { 19657 return; 19658 } 19659 19660 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 19661 var isEditor = Webflow.env('editor'); 19662 19663 if (isEventOutsideDropdowns) { 19664 if (isEditor) { 19665 var isEventOnDetachedSvg = $target.parents().length === 1 && $target.parents('svg').length === 1; 19666 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 19667 19668 if (isEventOnDetachedSvg || isEventOnHoverControls) { 19669 return; 19670 } 19671 } 19672 19673 close(data); 19674 } 19675 }); 19676 } 19677 19678 function complete(data) { 19679 return function () { 19680 data.list.removeClass(openStateClassName); 19681 data.toggle.removeClass(openStateClassName); // Reset z-index for managed dropdowns 19682 19683 data.manageZ && data.el.css('z-index', ''); 19684 }; 19685 } 19686 19687 function makeMouseEnterHandler(data) { 19688 return function () { 19689 data.hovering = true; 19690 open(data); 19691 }; 19692 } 19693 19694 function makeMouseLeaveHandler(data) { 19695 return function () { 19696 data.hovering = false; // We do not want the list to close upon mouseleave 19697 // if one of the links has focus 19698 19699 if (!data.links.is(':focus')) { 19700 close(data); 19701 } 19702 }; 19703 } 19704 19705 function moveOutside(data) { 19706 return debounce(function (evt) { 19707 if (!data.open) { 19708 return; 19709 } 19710 19711 var $target = $(evt.target); 19712 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 19713 19714 if (isEventOutsideDropdowns) { 19715 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 19716 var isEventOnHoverToolbar = $target.parents('.w-editor-bem-RTToolbar').length; 19717 var $editorOverlay = $('.w-editor-bem-EditorOverlay'); 19718 var isDropdownInEdition = $editorOverlay.find('.w-editor-edit-outline').length || $editorOverlay.find('.w-editor-bem-RTToolbar').length; 19719 19720 if (isEventOnHoverControls || isEventOnHoverToolbar || isDropdownInEdition) { 19721 return; 19722 } 19723 19724 data.hovering = false;
19725 close(data); 19726 } 19727 }); 19728 } 19729 19730 function makeDropdownKeydownHandler(data) { 19731 return function (evt) { 19732 // Don't respond to keyboard in designer or if the list is not open 19733 if (inDesigner || !data.open) { 19734 return; 19735 } // Realign selectedIdx with the menu item that is currently in focus. 19736 // We need this because we do not track the `Tab` key activity! 19737 19738 19739 data.selectedIdx = data.links.index(document.activeElement); // Evaluate item-selection logic 19740 19741 switch (evt.keyCode) { 19742 case KEY_CODES.HOME: 19743 { 19744 if (!data.open) return; 19745 data.selectedIdx = 0; 19746 focusSelectedLink(data); 19747 return evt.preventDefault(); 19748 } 19749 19750 case KEY_CODES.END: 19751 { 19752 if (!data.open) return; 19753 data.selectedIdx = data.links.length - 1; 19754 focusSelectedLink(data); 19755 return evt.preventDefault(); 19756 } 19757 19758 case KEY_CODES.ESCAPE: 19759 { 19760 close(data); 19761 data.toggle.focus(); 19762 return evt.stopPropagation(); 19763 } 19764 19765 case KEY_CODES.ARROW_RIGHT: 19766 case KEY_CODES.ARROW_DOWN: 19767 { 19768 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 19769 focusSelectedLink(data); 19770 return evt.preventDefault(); 19771 } 19772 19773 case KEY_CODES.ARROW_LEFT: 19774 case KEY_CODES.ARROW_UP: 19775 { 19776 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 19777 focusSelectedLink(data); 19778 return evt.preventDefault(); 19779 } 19780 } 19781 }; 19782 } 19783 19784 function focusSelectedLink(data) { 19785 if (data.links[data.selectedIdx]) { 19786 data.links[data.selectedIdx].focus(); 19787 } 19788 } 19789 19790 function makeToggleKeydownHandler(data) { 19791 // We want to close immediately 19792 // if interacting via keyboard 19793 var toggler = makeToggler(data, FORCE_CLOSE); 19794 return function (evt) { 19795 if (inDesigner) return; // If the menu is not open, we don't want 19796 // the up or Down arrows to do anything 19797 19798 if (!data.open) { 19799 switch (evt.keyCode) { 19800 case KEY_CODES.ARROW_UP: 19801 case KEY_CODES.ARROW_DOWN: 19802 { 19803 return evt.stopPropagation(); 19804 } 19805 } 19806 } 19807 19808 switch (evt.keyCode) { 19809 case KEY_CODES.SPACE: 19810 case KEY_CODES.ENTER: 19811 { 19812 toggler(); 19813 evt.stopPropagation(); 19814 return evt.preventDefault(); 19815 } 19816 } 19817 }; 19818 } 19819 19820 function makeDropdownFocusOutHandler(data) { 19821 return debounce(function (evt) { 19822 var relatedTarget = evt.relatedTarget, 19823 target = evt.target; 19824 var menuEl = data.el[0]; 19825 /** 19826 * Close menu 19827 * With focusout events, the `relatedTarget` is the element that will next receive focus. 19828 * @see: https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent/relatedTarget 19829 */ 19830 19831 var menuContainsFocus = menuEl.contains(relatedTarget) || menuEl.contains(target); 19832 19833 if (!menuContainsFocus) { 19834 close(data); 19835 } 19836 19837 return evt.stopPropagation(); 19838 }); 19839 } // Export module 19840 19841 19842 return api; 19843}); 19844 19845/***/ }), 19846/* 338 */ 19847/***/ (function(module, exports, __webpack_require__) { 19848 19849"use strict"; 19850 // @wf-will-never-add-flow-to-this-file 19851 19852/* globals 19853 window, 19854 document, 19855 FormData, 19856 WEBFLOW_FORM_API_HOST, 19857 WEBFLOW_FORM_OLDIE_HOST 19858*/ 19859 19860/* eslint-disable no-var */ 19861 19862/** 19863 * Webflow: Forms 19864 */ 19865 19866var _interopRequireDefault = __webpack_require__(0); 19867 19868var _slicedToArray2 = _interopRequireDefault(__webpack_require__(339)); 19869 19870var Webflow = __webpack_require__(3); 19871 19872Webflow.define('forms', module.exports = function ($, _) { 19873 var api = {}; 19874 var $doc = $(document); 19875 var $forms; 19876 var loc = window.location; 19877 var retro = window.XDomainRequest && !window.atob; 19878 var namespace = '.w-form'; 19879 var siteId; 19880 var emailField = /e(-)?mail/i; 19881 var emailValue = /^\S+@\S+$/; 19882 var alert = window.alert; 19883 var inApp = Webflow.env(); 19884 var listening; 19885 var formUrl; 19886 var signFileUrl; // MailChimp domains: list-manage.com + mirrors 19887 19888 var chimpRegex = /list-manage[1-9]?.com/i; 19889 19890 var disconnected = _.debounce(function () { 19891 alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); 19892 }, 100); 19893 19894 api.ready = api.design = api.preview = function () { 19895 // Init forms 19896 init(); // Wire document events on published site only once 19897 19898 if (!inApp && !listening) { 19899 addListeners(); 19900 } 19901 }; 19902
19903 function init() { 19904 siteId = $('html').attr('data-wf-site'); 19905 formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit 19906 19907 if (retro && formUrl.indexOf("https://webflow.com") >= 0) { 19908 formUrl = formUrl.replace("https://webflow.com", "https://formdata.webflow.com"); 19909 } 19910 19911 signFileUrl = "".concat(formUrl, "/signFile"); 19912 $forms = $(namespace + ' form'); 19913 19914 if (!$forms.length) { 19915 return; 19916 } 19917 19918 $forms.each(build); 19919 } 19920 19921 function build(i, el) { 19922 // Store form state using namespace 19923 var $el = $(el); 19924 var data = $.data(el, namespace); 19925 19926 if (!data) { 19927 data = $.data(el, namespace, { 19928 form: $el 19929 }); 19930 } // data.form 19931 19932 19933 reset(data); 19934 var wrap = $el.closest('div.w-form'); 19935 data.done = wrap.find('> .w-form-done'); 19936 data.fail = wrap.find('> .w-form-fail'); 19937 data.fileUploads = wrap.find('.w-file-upload'); 19938 data.fileUploads.each(function (j) { 19939 initFileUpload(j, data); 19940 }); // Accessiblity fixes 19941 19942 var formName = data.form.attr('aria-label') || data.form.attr('data-name') || 'Form'; 19943 19944 if (!data.done.attr('aria-label')) { 19945 data.form.attr('aria-label', formName); 19946 } 19947 19948 data.done.attr('tabindex', '-1'); 19949 data.done.attr('role', 'region'); 19950 19951 if (!data.done.attr('aria-label')) { 19952 data.done.attr('aria-label', formName + ' success'); 19953 } 19954 19955 data.fail.attr('tabindex', '-1'); 19956 data.fail.attr('role', 'region'); 19957 19958 if (!data.fail.attr('aria-label')) { 19959 data.fail.attr('aria-label', formName + ' failure'); 19960 } 19961 19962 var action = data.action = $el.attr('action'); 19963 data.handler = null; 19964 data.redirect = $el.attr('data-redirect'); // MailChimp form 19965 19966 if (chimpRegex.test(action)) { 19967 data.handler = submitMailChimp; 19968 return; 19969 } // Custom form action 19970 19971 19972 if (action) { 19973 return; 19974 } // Webflow forms for hosting accounts 19975 19976 19977 if (siteId) { 19978 data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; 19979 return; 19980 } // Alert for disconnected Webflow forms 19981 19982 19983 disconnected(); 19984 } 19985 19986 function addListeners() { 19987 listening = true; // Handle form submission for Webflow forms 19988 19989 $doc.on('submit', namespace + ' form', function (evt) { 19990 var data = $.data(this, namespace); 19991 19992 if (data.handler) { 19993 data.evt = evt; 19994 data.handler(data); 19995 } 19996 }); // handle checked ui for custom checkbox and radio button 19997 19998 var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; 19999 var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; 20000 var CHECKED_CLASS = 'w--redirected-checked'; 20001 var FOCUSED_CLASS = 'w--redirected-focus'; 20002 var FOCUSED_VISIBLE_CLASS = 'w--redirected-focus-visible'; 20003 var focusVisibleSelectors = ':focus-visible, [data-wf-focus-visible]'; 20004 var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; 20005 $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { 20006 $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); 20007 }); 20008 $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { 20009 $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { 20010 return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); 20011 }); 20012 var $target = $(evt.target); 20013 20014 if (!$target.hasClass('w-radio-input')) { 20015 $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); 20016 } 20017 }); 20018 CUSTOM_CONTROLS.forEach(function (_ref) { 20019 var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), 20020 controlType = _ref2[0], 20021 customControlClassName = _ref2[1]; 20022 20023 $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 20024 $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); 20025 $(evt.target).filter(focusVisibleSelectors).siblings(customControlClassName).addClass(FOCUSED_VISIBLE_CLASS); 20026 }); 20027 $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 20028 $(evt.target).siblings(customControlClassName).removeClass("".concat(FOCUSED_CLASS, " ").concat(FOCUSED_VISIBLE_CLASS)); 20029 }); 20030 }); 20031 } // Reset data common to all submit handlers 20032 20033 20034 function reset(data) { 20035 var btn = data.btn = data.form.find(':input[type="submit"]'); 20036 data.wait = data.btn.attr('data-wait') || null; 20037 data.success = false;
20038 btn.prop('disabled', false); 20039 data.label && btn.val(data.label); 20040 } // Disable submit button 20041 20042 20043 function disableBtn(data) { 20044 var btn = data.btn; 20045 var wait = data.wait; 20046 btn.prop('disabled', true); // Show wait text and store previous label 20047 20048 if (wait) { 20049 data.label = btn.val(); 20050 btn.val(wait); 20051 } 20052 } // Find form fields, validate, and set value pairs 20053 20054 20055 function findFields(form, result) { 20056 var status = null; 20057 result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas 20058 20059 form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { 20060 var field = $(el); 20061 var type = field.attr('type'); 20062 var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); 20063 var value = field.val(); 20064 20065 if (type === 'checkbox') { 20066 value = field.is(':checked'); 20067 } else if (type === 'radio') { 20068 // Radio group value already processed 20069 if (result[name] === null || typeof result[name] === 'string') { 20070 return; 20071 } 20072 20073 value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; 20074 } 20075 20076 if (typeof value === 'string') { 20077 value = $.trim(value); 20078 } 20079 20080 result[name] = value; 20081 status = status || getStatus(field, type, name, value); 20082 }); 20083 return status; 20084 } 20085 20086 function findFileUploads(form) { 20087 var result = {}; 20088 form.find(':input[type="file"]').each(function (i, el) { 20089 var field = $(el); 20090 var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); 20091 var value = field.attr('data-value'); 20092 20093 if (typeof value === 'string') { 20094 value = $.trim(value); 20095 } 20096 20097 result[name] = value; 20098 }); 20099 return result; 20100 } 20101 20102 var trackingCookieNameMap = { 20103 _mkto_trk: 'marketo' // __hstc: 'hubspot', 20104 20105 }; 20106 20107 function collectEnterpriseTrackingCookies() { 20108 var cookies = document.cookie.split('; ').reduce(function (acc, cookie) { 20109 var splitCookie = cookie.split('='); 20110 var name = splitCookie[0]; 20111 20112 if (name in trackingCookieNameMap) { 20113 var mappedName = trackingCookieNameMap[name]; 20114 var value = splitCookie.slice(1).join('='); 20115 acc[mappedName] = value; 20116 } 20117 20118 return acc; 20119 }, {}); 20120 return cookies; 20121 } 20122 20123 function getStatus(field, type, name, value) { 20124 var status = null; 20125 20126 if (type === 'password') { 20127 status = 'Passwords cannot be submitted.'; 20128 } else if (field.attr('required')) { 20129 if (!value) { 20130 status = 'Please fill out the required field: ' + name; 20131 } else if (emailField.test(field.attr('type'))) { 20132 if (!emailValue.test(value)) { 20133 status = 'Please enter a valid email address for: ' + name; 20134 } 20135 } 20136 } else if (name === 'g-recaptcha-response' && !value) { 20137 status = 'Please confirm youâre not a robot.'; 20138 } 20139 20140 return status; 20141 } 20142 20143 function exportedSubmitWebflow(data) { 20144 preventDefault(data); 20145 afterSubmit(data); 20146 } 20147 /* WEBFLOW_HOSTED_BLOCK:START */ 20148 // Submit form to Webflow 20149 20150 20151 function hostedSubmitWebflow(data) { 20152 reset(data); 20153 var form = data.form; 20154 var payload = { 20155 name: form.attr('data-name') || form.attr('name') || 'Untitled Form', 20156 source: loc.href, 20157 test: Webflow.env(), 20158 fields: {}, 20159 fileUploads: {}, 20160 dolphin: /pass[\s-_]?(word|code)|secret|login|credentials/i.test(form.html()), 20161 trackingCookies: collectEnterpriseTrackingCookies() 20162 }; 20163 var wfFlow = form.attr('data-wf-flow'); 20164 20165 if (wfFlow) { 20166 payload.wfFlow = wfFlow; 20167 } 20168 20169 preventDefault(data); // Find & populate all fields 20170 20171 var status = findFields(form, payload.fields); 20172 20173 if (status) { 20174 return alert(status); 20175 } 20176 20177 payload.fileUploads = findFileUploads(form); // Disable submit button 20178 20179 disableBtn(data); // Read site ID 20180 // NOTE: If this site is exported, the HTML tag must retain the data-wf-site attribute for forms to work 20181 20182 if (!siteId) { 20183 afterSubmit(data); 20184 return; 20185 } 20186 20187 $.ajax({ 20188 url: formUrl, 20189 type: 'POST', 20190 data: payload, 20191 dataType: 'json', 20192 crossDomain: true 20193 }).done(function (response) { 20194 if (response && response.code === 200) { 20195 data.success = true; 20196 } 20197 20198 afterSubmit(data); 20199 }).fail(function () { 20200 afterSubmit(data); 20201 }); 20202 } 20203 /* WEBFLOW_HOSTED_BLOCK:END */ 20204 // Submit form to MailChimp 20205 20206 20207 function submitMailChimp(data) { 20208 reset(data); 20209 var form = data.form; 20210 var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead 20211 20212 if (/^https/.test(loc.href) && !/^https/.test(data.action)) { 20213 form.attr('method', 'post'); 20214 return; 20215 } 20216 20217 preventDefault(data); // Find & populate all fields 20218 20219 var status = findFields(form, payload); 20220 20221 if (status) { 20222 return alert(status); 20223 } // Disable submit button 20224 20225 20226 disableBtn(data); // Use special format for MailChimp params 20227 20228 var fullName; 20229 20230 _.each(payload, function (value, key) { 20231 if (emailField.test(key)) { 20232 payload.EMAIL = value; 20233 } 20234 20235 if (/^((full[ _-]?)?name)$/i.test(key)) { 20236 fullName = value; 20237 } 20238 20239 if (/^(first[ _-]?name)$/i.test(key)) { 20240 payload.FNAME = value; 20241 } 20242 20243 if (/^(last[ _-]?name)$/i.test(key)) { 20244 payload.LNAME = value; 20245 } 20246 }); 20247 20248 if (fullName && !payload.FNAME) { 20249 fullName = fullName.split(' '); 20250 payload.FNAME = fullName[0]; 20251 payload.LNAME = payload.LNAME || fullName[1]; 20252 } // Use the (undocumented) MailChimp jsonp api 20253 20254 20255 var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups 20256 20257 var userId = url.indexOf('u=') + 2; 20258 userId = url.substring(userId, url.indexOf('&', userId)); 20259 var listId = url.indexOf('id=') + 3; 20260 listId = url.substring(listId, url.indexOf('&', listId)); 20261 payload['b_' + userId + '_' + listId] = ''; 20262 $.ajax({ 20263 url: url, 20264 data: payload, 20265 dataType: 'jsonp' 20266 }).done(function (resp) { 20267 data.success = resp.result === 'success' || /already/.test(resp.msg); 20268 20269 if (!data.success) { 20270 console.info('MailChimp error: ' + resp.msg); 20271 } 20272 20273 afterSubmit(data); 20274 }).fail(function () { 20275 afterSubmit(data); 20276 }); 20277 } // Common callback which runs after all Ajax submissions 20278 20279 20280 function afterSubmit(data) { 20281 var form = data.form; 20282 var redirect = data.redirect; 20283 var success = data.success; // Redirect to a success url if defined 20284 20285 if (success && redirect) { 20286 Webflow.location(redirect); 20287 return; 20288 } // Show or hide status divs 20289 20290 20291 data.done.toggle(success); 20292 data.fail.toggle(!success); 20293 20294 if (success) { 20295 data.done.focus(); 20296 } else { 20297 data.fail.focus(); 20298 } // Hide form on success 20299 20300 20301 form.toggle(!success); // Reset data and enable submit button 20302 20303 reset(data); 20304 } 20305 20306 function preventDefault(data) { 20307 data.evt && data.evt.preventDefault(); 20308 data.evt = null; 20309 } 20310 20311 function initFileUpload(i, form) { 20312 if (!form.fileUploads || !form.fileUploads[i]) { 20313 return; 20314 } 20315 20316 var file; 20317 var $el = $(form.fileUploads[i]); 20318 var $defaultWrap = $el.find('> .w-file-upload-default'); 20319 var $uploadingWrap = $el.find('> .w-file-upload-uploading'); 20320 var $successWrap = $el.find('> .w-file-upload-success'); 20321 var $errorWrap = $el.find('> .w-file-upload-error'); 20322 var $input = $defaultWrap.find('.w-file-upload-input'); 20323 var $label = $defaultWrap.find('.w-file-upload-label'); 20324 var $labelChildren = $label.children(); 20325 var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); 20326 var $fileEl = $successWrap.find('.w-file-upload-file'); 20327 var $removeEl = $successWrap.find('.w-file-remove-link'); 20328 var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); 20329 var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); 20330 var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); 20331 var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); // Accessiblity fixes 20332 // The file upload Input is not stylable by the designer, so we are 20333 // going to pretend the Label is the input. ¯\_(ã)_/¯ 20334 20335 if (!inApp) { 20336 $label.on('click keydown', function (e) { 20337 if (e.type === 'keydown' && e.which !== 13 && e.which !== 32) { 20338 return; 20339 } 20340 20341 e.preventDefault(); 20342 $input.click(); 20343 }); 20344 } // Both of these are added through CSS 20345 20346 20347 $label.find('.w-icon-file-upload-icon').attr('aria-hidden', 'true'); 20348 $removeEl.find('.w-icon-file-upload-remove').attr('aria-hidden', 'true'); 20349 20350 if (!inApp) { 20351 $removeEl.on('click keydown', function (e) { 20352 if (e.type === 'keydown') { 20353 if (e.which !== 13 && e.which !== 32) { 20354 return; 20355 } 20356 20357 e.preventDefault(); 20358 } 20359 20360 $input.removeAttr('data-value'); 20361 $input.val(''); 20362 $fileNameEl.html(''); 20363 $defaultWrap.toggle(true); 20364 $successWrap.toggle(false); 20365 $label.focus(); 20366 }); 20367 $input.on('change', function (e) { 20368 file = e.target && e.target.files && e.target.files[0]; 20369 20370 if (!file) { 20371 return; 20372 } // Show uploading 20373 20374 20375 $defaultWrap.toggle(false); 20376 $errorWrap.toggle(false); 20377 $uploadingWrap.toggle(true); 20378 $uploadingWrap.focus(); // Set filename 20379 20380 $fileNameEl.text(file.name); // Disable submit button 20381 20382 if (!isUploading()) { 20383 disableBtn(form); 20384 } 20385 20386 form.fileUploads[i].uploading = true; 20387 signFile(file, afterSign); 20388 }); // Setting input width 1px and height equal label 20389 // This is so the browser required error will show up 20390 20391 var height = $label.outerHeight(); 20392 $input.height(height); 20393 $input.width(1); 20394 } else { 20395 $input.on('click', function (e) { 20396 e.preventDefault(); 20397 }); 20398 $label.on('click', function (e) { 20399 e.preventDefault(); 20400 }); 20401 $labelChildren.on('click', function (e) { 20402 e.preventDefault(); 20403 }); 20404 } 20405 20406 function parseError(err) { 20407 var errorMsg = err.responseJSON && err.responseJSON.msg; 20408 var userError = genericErrMsg; 20409 20410 if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { 20411 userError = typeErrMsg; 20412 } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { 20413 userError = sizeErrMsg; 20414 } 20415 20416 $errorMsgEl.text(userError); 20417 $input.removeAttr('data-value'); 20418 $input.val(''); 20419 $uploadingWrap.toggle(false); 20420 $defaultWrap.toggle(true); 20421 $errorWrap.toggle(true); 20422 $errorWrap.focus(); 20423 form.fileUploads[i].uploading = false;
20424 20425 if (!isUploading()) { 20426 reset(form); 20427 } 20428 } 20429 20430 function afterSign(err, data) { 20431 if (err) { 20432 return parseError(err); 20433 } 20434 20435 var fileName = data.fileName; 20436 var postData = data.postData; 20437 var fileId = data.fileId; 20438 var s3Url = data.s3Url; 20439 $input.attr('data-value', fileId); 20440 uploadS3(s3Url, postData, file, fileName, afterUpload); 20441 } 20442 20443 function afterUpload(err) { 20444 if (err) { 20445 return parseError(err); 20446 } // Show success 20447 20448 20449 $uploadingWrap.toggle(false); 20450 $successWrap.css('display', 'inline-block'); 20451 $successWrap.focus(); 20452 form.fileUploads[i].uploading = false; 20453 20454 if (!isUploading()) { 20455 reset(form); 20456 } 20457 } 20458 20459 function isUploading() { 20460 var uploads = form.fileUploads && form.fileUploads.toArray() || []; 20461 return uploads.some(function (value) { 20462 return value.uploading; 20463 }); 20464 } 20465 } 20466 20467 function signFile(file, cb) { 20468 var payload = new URLSearchParams({ 20469 name: file.name, 20470 size: file.size 20471 }); 20472 $.ajax({ 20473 type: 'GET', 20474 url: "".concat(signFileUrl, "?").concat(payload), 20475 crossDomain: true 20476 }).done(function (data) { 20477 cb(null, data); 20478 }).fail(function (err) { 20479 cb(err); 20480 }); 20481 } 20482 20483 function uploadS3(url, data, file, fileName, cb) { 20484 var formData = new FormData(); 20485 20486 for (var k in data) { 20487 formData.append(k, data[k]); 20488 } 20489 20490 formData.append('file', file, fileName); 20491 $.ajax({ 20492 type: 'POST', 20493 url: url, 20494 data: formData, 20495 processData: false, 20496 contentType: false 20497 }).done(function () { 20498 cb(null); 20499 }).fail(function (err) { 20500 cb(err); 20501 }); 20502 } // Export module 20503 20504 20505 return api; 20506}); 20507 20508/***/ }), 20509/* 339 */ 20510/***/ (function(module, exports, __webpack_require__) { 20511 20512var arrayWithHoles = __webpack_require__(340); 20513 20514var iterableToArrayLimit = __webpack_require__(341); 20515 20516var nonIterableRest = __webpack_require__(342); 20517 20518function _slicedToArray(arr, i) { 20519 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); 20520} 20521 20522module.exports = _slicedToArray; 20523 20524/***/ }), 20525/* 340 */ 20526/***/ (function(module, exports) { 20527 20528function _arrayWithHoles(arr) { 20529 if (Array.isArray(arr)) return arr; 20530} 20531 20532module.exports = _arrayWithHoles; 20533 20534/***/ }), 20535/* 341 */ 20536/***/ (function(module, exports) { 20537 20538function _iterableToArrayLimit(arr, i) { 20539 var _arr = []; 20540 var _n = true; 20541 var _d = false; 20542 var _e = undefined; 20543 20544 try { 20545 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 20546 _arr.push(_s.value); 20547 20548 if (i && _arr.length === i) break; 20549 } 20550 } catch (err) { 20551 _d = true; 20552 _e = err; 20553 } finally { 20554 try { 20555 if (!_n && _i["return"] != null) _i["return"](); 20556 } finally { 20557 if (_d) throw _e; 20558 } 20559 } 20560 20561 return _arr; 20562} 20563 20564module.exports = _iterableToArrayLimit; 20565 20566/***/ }), 20567/* 342 */ 20568/***/ (function(module, exports) { 20569 20570function _nonIterableRest() { 20571 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 20572} 20573 20574module.exports = _nonIterableRest; 20575 20576/***/ }), 20577/* 343 */ 20578/***/ (function(module, exports, __webpack_require__) { 20579 20580"use strict"; 20581 // @wf-will-never-add-flow-to-this-file 20582 20583/* globals window, document */ 20584 20585/* eslint-disable no-var */ 20586 20587/** 20588 * Webflow: Navbar component 20589 */ 20590 20591var Webflow = __webpack_require__(3); 20592 20593var IXEvents = __webpack_require__(39); 20594 20595var KEY_CODES = { 20596 ARROW_LEFT: 37, 20597 ARROW_UP: 38, 20598 ARROW_RIGHT: 39, 20599 ARROW_DOWN: 40, 20600 ESCAPE: 27, 20601 SPACE: 32, 20602 ENTER: 13, 20603 HOME: 36, 20604 END: 35 20605}; 20606Webflow.define('navbar', module.exports = function ($, _) { 20607 var api = {}; 20608 var tram = $.tram; 20609 var $win = $(window); 20610 var $doc = $(document); 20611 var debounce = _.debounce; 20612 var $body; 20613 var $navbars; 20614 var designer; 20615 var inEditor; 20616 var inApp = Webflow.env(); 20617 var overlay = '<div class="w-nav-overlay" data-wf-ignore />'; 20618 var namespace = '.w-nav'; 20619 var navbarOpenedButton = 'w--open'; 20620 var navbarOpenedDropdown = 'w--nav-dropdown-open'; 20621 var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; 20622 var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; 20623 var navbarOpenedLink = 'w--nav-link-open'; 20624 var ix = IXEvents.triggers; 20625 var menuSibling = $(); // ----------------------------------- 20626 // Module methods 20627 20628 api.ready = api.design = api.preview = init; 20629 20630 api.destroy = function () { 20631 menuSibling = $(); 20632 removeListeners(); 20633 20634 if ($navbars && $navbars.length) { 20635 $navbars.each(teardown); 20636 } 20637 }; // ----------------------------------- 20638 // Private methods 20639 20640
20641 function init() { 20642 designer = inApp && Webflow.env('design'); 20643 inEditor = Webflow.env('editor'); 20644 $body = $(document.body); // Find all instances on the page 20645 20646 $navbars = $doc.find(namespace); 20647 20648 if (!$navbars.length) { 20649 return; 20650 } 20651 20652 $navbars.each(build); // Wire events 20653 20654 removeListeners(); 20655 addListeners(); 20656 } 20657 20658 function removeListeners() { 20659 Webflow.resize.off(resizeAll); 20660 } 20661 20662 function addListeners() { 20663 Webflow.resize.on(resizeAll); 20664 } 20665 20666 function resizeAll() { 20667 $navbars.each(resize); 20668 } 20669 20670 function build(i, el) { 20671 var $el = $(el); // Store state in data 20672 20673 var data = $.data(el, namespace); 20674 20675 if (!data) { 20676 data = $.data(el, namespace, { 20677 open: false, 20678 el: $el, 20679 config: {}, 20680 selectedIdx: -1 20681 }); 20682 } 20683 20684 data.menu = $el.find('.w-nav-menu'); 20685 data.links = data.menu.find('.w-nav-link'); 20686 data.dropdowns = data.menu.find('.w-dropdown'); 20687 data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); 20688 data.dropdownList = data.menu.find('.w-dropdown-list'); 20689 data.button = $el.find('.w-nav-button'); 20690 data.container = $el.find('.w-container'); 20691 data.overlayContainerId = 'w-nav-overlay-' + i; 20692 data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the 20693 // default setting, then add an aria-label 20694 20695 var navBrandLink = $el.find('.w-nav-brand'); 20696 20697 if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { 20698 navBrandLink.attr('aria-label', 'home'); 20699 } // VoiceOver bug, when items that disallow user selection are focused 20700 // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ã)_/¯ 20701 20702 20703 data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element 20704 20705 if (data.button.attr('aria-label') == null) { 20706 data.button.attr('aria-label', 'menu'); 20707 } 20708 20709 data.button.attr('role', 'button'); 20710 data.button.attr('tabindex', '0'); 20711 data.button.attr('aria-controls', data.overlayContainerId); 20712 data.button.attr('aria-haspopup', 'menu'); 20713 data.button.attr('aria-expanded', 'false'); // Remove old events 20714 20715 data.el.off(namespace); 20716 data.button.off(namespace); 20717 data.menu.off(namespace); // Set config from data attributes 20718 20719 configure(data); // Add events based on mode 20720 20721 if (designer) { 20722 removeOverlay(data); 20723 data.el.on('setting' + namespace, handler(data)); 20724 } else { 20725 addOverlay(data); 20726 data.button.on('click' + namespace, toggle(data)); 20727 data.menu.on('click' + namespace, 'a', navigate(data)); 20728 data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); 20729 data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); 20730 } // Trigger initial resize 20731 20732 20733 resize(i, el); 20734 } 20735 20736 function teardown(i, el) { 20737 var data = $.data(el, namespace); 20738 20739 if (data) { 20740 removeOverlay(data); 20741 $.removeData(el, namespace); 20742 } 20743 } 20744 20745 function removeOverlay(data) { 20746 if (!data.overlay) { 20747 return; 20748 } 20749 20750 close(data, true); 20751 data.overlay.remove(); 20752 data.overlay = null; 20753 } 20754 20755 function addOverlay(data) { 20756 if (data.overlay) { 20757 return; 20758 } 20759 20760 data.overlay = $(overlay).appendTo(data.el); 20761 data.overlay.attr('id', data.overlayContainerId); 20762 data.parent = data.menu.parent(); 20763 close(data, true); 20764 } 20765 20766 function configure(data) { 20767 var config = {}; 20768 var old = data.config || {}; // Set config options from data attributes 20769 20770 var animation = config.animation = data.el.attr('data-animation') || 'default'; 20771 config.animOver = /^over/.test(animation); 20772 config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed 20773 20774 if (old.animation !== animation) { 20775 data.open && _.defer(reopen, data); 20776 } 20777 20778 config.easing = data.el.attr('data-easing') || 'ease'; 20779 config.easing2 = data.el.attr('data-easing2') || 'ease'; 20780 var duration = data.el.attr('data-duration'); 20781 config.duration = duration != null ? Number(duration) : 400; 20782 config.docHeight = data.el.attr('data-doc-height'); // Store config in data 20783 20784 data.config = config; 20785 } 20786 20787 function handler(data) { 20788 return function (evt, options) { 20789 options = options || {}; 20790 var winWidth = $win.width(); 20791 configure(data); 20792 options.open === true && open(data, true); 20793 options.open === false && close(data, true); // Reopen if media query changed after setting 20794 20795 data.open && _.defer(function () { 20796 if (winWidth !== $win.width()) { 20797 reopen(data); 20798 } 20799 }); 20800 }; 20801 } 20802 20803 function makeToggleButtonKeyboardHandler(data) { 20804 return function (evt) { 20805 switch (evt.keyCode) { 20806 case KEY_CODES.SPACE: 20807 case KEY_CODES.ENTER: 20808 { 20809 // Toggle returns a function 20810 toggle(data)(); 20811 evt.preventDefault(); 20812 return evt.stopPropagation(); 20813 } 20814 20815 case KEY_CODES.ESCAPE: 20816 { 20817 close(data); 20818 evt.preventDefault(); 20819 return evt.stopPropagation(); 20820 } 20821 20822 case KEY_CODES.ARROW_RIGHT: 20823 case KEY_CODES.ARROW_DOWN: 20824 case KEY_CODES.HOME: 20825 case KEY_CODES.END: 20826 { 20827 if (!data.open) { 20828 evt.preventDefault(); 20829 return evt.stopPropagation(); 20830 } 20831 20832 if (evt.keyCode === KEY_CODES.END) { 20833 data.selectedIdx = data.links.length - 1; 20834 } else { 20835 data.selectedIdx = 0; 20836 } 20837 20838 focusSelectedLink(data); 20839 evt.preventDefault(); 20840 return evt.stopPropagation(); 20841 } 20842 } 20843 }; 20844 } 20845 20846 function makeLinksKeyboardHandler(data) { 20847 return function (evt) { 20848 if (!data.open) { 20849 return; 20850 } // Realign selectedIdx with the menu item that is currently in focus. 20851 // We need this because we do not track the `Tab` key activity! 20852 20853 20854 data.selectedIdx = data.links.index(document.activeElement); 20855 20856 switch (evt.keyCode) { 20857 case KEY_CODES.HOME: 20858 case KEY_CODES.END: 20859 { 20860 if (evt.keyCode === KEY_CODES.END) { 20861 data.selectedIdx = data.links.length - 1; 20862 } else { 20863 data.selectedIdx = 0; 20864 } 20865 20866 focusSelectedLink(data); 20867 evt.preventDefault(); 20868 return evt.stopPropagation(); 20869 } 20870 20871 case KEY_CODES.ESCAPE: 20872 { 20873 close(data); // Focus toggle button 20874 20875 data.button.focus(); 20876 evt.preventDefault(); 20877 return evt.stopPropagation(); 20878 } 20879 20880 case KEY_CODES.ARROW_LEFT: 20881 case KEY_CODES.ARROW_UP: 20882 {
20883 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 20884 focusSelectedLink(data); 20885 evt.preventDefault(); 20886 return evt.stopPropagation(); 20887 } 20888 20889 case KEY_CODES.ARROW_RIGHT: 20890 case KEY_CODES.ARROW_DOWN: 20891 { 20892 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 20893 focusSelectedLink(data); 20894 evt.preventDefault(); 20895 return evt.stopPropagation(); 20896 } 20897 } 20898 }; 20899 } 20900 20901 function focusSelectedLink(data) { 20902 if (data.links[data.selectedIdx]) { 20903 var selectedElement = data.links[data.selectedIdx]; 20904 selectedElement.focus(); 20905 navigate(selectedElement); 20906 } 20907 } 20908 20909 function reopen(data) { 20910 if (!data.open) { 20911 return; 20912 } 20913 20914 close(data, true); 20915 open(data, true); 20916 } 20917 20918 function toggle(data) { 20919 // Debounce toggle to wait for accurate open state 20920 return debounce(function () { 20921 data.open ? close(data) : open(data); 20922 }); 20923 } 20924 20925 function navigate(data) { 20926 return function (evt) { 20927 var link = $(this); 20928 var href = link.attr('href'); // Avoid late clicks on touch devices 20929 20930 if (!Webflow.validClick(evt.currentTarget)) { 20931 evt.preventDefault(); 20932 return; 20933 } // Close when navigating to an in-page anchor 20934 20935 20936 if (href && href.indexOf('#') === 0 && data.open) { 20937 close(data); 20938 } 20939 }; 20940 } 20941 20942 function outside(data) { 20943 // Unbind previous click handler if it exists 20944 if (data.outside) { 20945 $doc.off('click' + namespace, data.outside); 20946 } 20947 20948 return function (evt) { 20949 var $target = $(evt.target); // Ignore clicks on Editor overlay UI 20950 20951 if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { 20952 return; 20953 } // Close menu when clicked outside, debounced to wait for state 20954 20955 20956 outsideDebounced(data, $target); 20957 }; 20958 } 20959 20960 var outsideDebounced = debounce(function (data, $target) { 20961 if (!data.open) { 20962 return; 20963 } 20964 20965 var menu = $target.closest('.w-nav-menu'); 20966 20967 if (!data.menu.is(menu)) { 20968 close(data); 20969 } 20970 }); 20971 20972 function resize(i, el) { 20973 var data = $.data(el, namespace);
20973 // Check for collapsed state based on button display 20974 20975 var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) 20976 20977 if (data.open && !collapsed && !designer) { 20978 close(data, true); 20979 } // Set max-width of links + dropdowns to match container 20980 20981 20982 if (data.container.length) { 20983 var updateEachMax = updateMax(data); 20984 data.links.each(updateEachMax); 20985 data.dropdowns.each(updateEachMax); 20986 } // If currently open, update height to match body 20987 20988 20989 if (data.open) { 20990 setOverlayHeight(data); 20991 } 20992 } 20993 20994 var maxWidth = 'max-width'; 20995 20996 function updateMax(data) { 20997 // Set max-width of each element to match container 20998 var containMax = data.container.css(maxWidth); 20999 21000 if (containMax === 'none') { 21001 containMax = ''; 21002 } 21003 21004 return function (i, link) { 21005 link = $(link); 21006 link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists 21007 21008 if (link.css(maxWidth) === 'none') { 21009 link.css(maxWidth, containMax); 21010 } 21011 }; 21012 } 21013 21014 function addMenuOpen(i, el) { 21015 el.setAttribute('data-nav-menu-open', ''); 21016 } 21017 21018 function removeMenuOpen(i, el) { 21019 el.removeAttribute('data-nav-menu-open'); 21020 } 21021 21022 function open(data, immediate) { 21023 if (data.open) { 21024 return; 21025 } 21026 21027 data.open = true; 21028 data.menu.each(addMenuOpen); 21029 data.links.addClass(navbarOpenedLink); 21030 data.dropdowns.addClass(navbarOpenedDropdown); 21031 data.dropdownToggle.addClass(navbarOpenedDropdownToggle); 21032 data.dropdownList.addClass(navbarOpenedDropdownList); 21033 data.button.addClass(navbarOpenedButton); 21034 var config = data.config; 21035 var animation = config.animation; 21036 21037 if (animation === 'none' || !tram.support.transform || config.duration <= 0) { 21038 immediate = true; 21039 } 21040 21041 var bodyHeight = setOverlayHeight(data); 21042 var menuHeight = data.menu.outerHeight(true); 21043 var menuWidth = data.menu.outerWidth(true); 21044 var navHeight = data.el.height(); 21045 var navbarEl = data.el[0]; 21046 resize(0, navbarEl); 21047 ix.intro(0, navbarEl); 21048 Webflow.redraw.up(); // Listen for click outside events 21049 21050 if (!designer) { 21051 $doc.on('click' + namespace, data.outside); 21052 } // No transition for immediate 21053 21054 21055 if (immediate) { 21056 complete(); 21057 return; 21058 } 21059 21060 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay 21061 21062 if (data.overlay) { 21063 menuSibling = data.menu.prev(); 21064 data.overlay.show().append(data.menu); 21065 } // Over left/right 21066 21067 21068 if (config.animOver) { 21069 tram(data.menu).add(transConfig).set({ 21070 x: config.animDirect * menuWidth, 21071 height: bodyHeight 21072 }).start({ 21073 x: 0 21074 }).then(complete); 21075 data.overlay && data.overlay.width(menuWidth); 21076 return; 21077 } // Drop Down 21078 21079 21080 var offsetY = navHeight + menuHeight; 21081 tram(data.menu).add(transConfig).set({ 21082 y: -offsetY 21083 }).start({ 21084 y: 0 21085 }).then(complete); 21086 21087 function complete() { 21088 data.button.attr('aria-expanded', 'true'); 21089 } 21090 } 21091 21092 function setOverlayHeight(data) { 21093 var config = data.config; 21094 var bodyHeight = config.docHeight ? $doc.height() : $body.height(); 21095 21096 if (config.animOver) { 21097 data.menu.height(bodyHeight); 21098 } else if (data.el.css('position') !== 'fixed') { 21099 bodyHeight -= data.el.outerHeight(true); 21100 } 21101 21102 data.overlay && data.overlay.height(bodyHeight); 21103 return bodyHeight; 21104 } 21105 21106 function close(data, immediate) { 21107 if (!data.open) { 21108 return; 21109 } 21110 21111 data.open = false; 21112 data.button.removeClass(navbarOpenedButton); 21113 var config = data.config; 21114 21115 if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { 21116 immediate = true; 21117 } 21118 21119 ix.outro(0, data.el[0]); // Stop listening for click outside events 21120 21121 $doc.off('click' + namespace, data.outside); 21122 21123 if (immediate) { 21124 tram(data.menu).stop(); 21125 complete(); 21126 return; 21127 } 21128 21129 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; 21130 var menuHeight = data.menu.outerHeight(true); 21131 var menuWidth = data.menu.outerWidth(true); 21132 var navHeight = data.el.height(); // Over left/right 21133 21134 if (config.animOver) { 21135 tram(data.menu).add(transConfig).start({ 21136 x: menuWidth * config.animDirect 21137 }).then(complete); 21138 return; 21139 } // Drop Down 21140 21141 21142 var offsetY = navHeight + menuHeight; 21143 tram(data.menu).add(transConfig).start({ 21144 y: -offsetY 21145 }).then(complete); 21146 21147 function complete() { 21148 data.menu.height(''); 21149 tram(data.menu).set({ 21150 x: 0, 21151 y: 0 21152 }); 21153 data.menu.each(removeMenuOpen); 21154 data.links.removeClass(navbarOpenedLink); 21155 data.dropdowns.removeClass(navbarOpenedDropdown); 21156 data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); 21157 data.dropdownList.removeClass(navbarOpenedDropdownList); 21158 21159 if (data.overlay && data.overlay.children().length) { 21160 // Move menu back to parent at the original location 21161 menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); 21162 data.overlay.attr('style', '').hide(); 21163 } // Trigger event so other components can hook in (dropdown) 21164 21165 21166 data.el.triggerHandler('w-close'); 21167 data.button.attr('aria-expanded', 'false'); 21168 } 21169 } // Export module 21170 21171 21172 return api; 21173}); 21174 21175/***/ }) 21176/******/ ]);/** 21177 * ---------------------------------------------------------------------- 21178 * Webflow: Interactions 2.0: Init 21179 */ 21180Webflow.require('ix2').init( 21181{"events":{"e-11":{"id":"e-11","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-55"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75160","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75160","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1601059006788},"e-17":{"id":"e-17","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-36"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f7516c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f7516c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1250,"direction":"TOP","effectIn":true},"createdOn":1601059110944},"e-20":{"id":"e-20","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-38"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75163","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75163","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":500,"direction":"TOP","effectIn":true},"createdOn":1601059034895},"e-26":{"id":"e-26","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-49"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75166","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75166","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":5000,"direction":"TOP","effectIn":true},"createdOn":1601059062457},"e-27":{"id":"e-27","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-46"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f7516f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f7516f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1500,"direction":"TOP","effectIn":true},"createdOn":1601059136048},"e-32":{"id":"e-32","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-42"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75169","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8601feb8afb41b69743804|dbbceee8-97dc-092b-55cd-5ed738f75169","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1000,"direction":"TOP","effectIn":true},"createdOn":1601059466853},"e-39":{"id":"e-39","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-49"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6dec","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6dec","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":5000,"direction":"TOP","effectIn":true},"createdOn":1601059062457},"e-40":{"id":"e-40","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-42"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6def","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6def","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1000,"direction":"TOP","effectIn":true},"createdOn":1601059466853},"e-53":{"id":"e-53","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-55"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6de6","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6de6","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":3000,"direction":"TOP","effectIn":true},"createdOn":1601059006788},"e-57":{"id":"e-57","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-36"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6df2","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8db42285a38dd966a89990|d153f736-16e5-6b4a-bb88-33dc279b6df2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1250,"direction":"TOP","effectIn":true},"createdOn":1601059110944}
21181,"e-74":{"id":"e-74","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-75"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|dbbceee8-97dc-092b-55cd-5ed738f7516c","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|dbbceee8-97dc-092b-55cd-5ed738f7516c","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1250,"direction":"TOP","effectIn":true},"createdOn":1603263295631},"e-118":{"id":"e-118","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-119"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|93e5d913-d870-afd5-5fb0-1e3fd139c271","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|93e5d913-d870-afd5-5fb0-1e3fd139c271","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264485085},"e-120":{"id":"e-120","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-121"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|9148e634-24d3-c327-120c-5df8766eec66","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|9148e634-24d3-c327-120c-5df8766eec66","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264487889},"e-122":{"id":"e-122","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-123"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|284c257d-b590-3b1d-28aa-555011aebc99","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|284c257d-b590-3b1d-28aa-555011aebc99","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":1000,"direction":"TOP","effectIn":true},"createdOn":1603264490025},"e-124":{"id":"e-124","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-125"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|5dd012d1-bb4e-882a-3bb5-9433c4bb6827","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|5dd012d1-bb4e-882a-3bb5-9433c4bb6827","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264547773},"e-126":{"id":"e-126","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-127"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|9a299750-69a4-b0fc-77e3-89bad430dab7","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|9a299750-69a4-b0fc-77e3-89bad430dab7","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264584983},"e-128":{"id":"e-128","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-129"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|67613253-f672-ef84-c4a5-22b260a4358a","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|67613253-f672-ef84-c4a5-22b260a4358a","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264587053},"e-130":{"id":"e-130","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-131"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|e09bcf2b-3125-b539-f651-a1a4b0f37f01","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|e09bcf2b-3125-b539-f651-a1a4b0f37f01","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264588442},"e-132":{"id":"e-132","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-133"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|23ac03aa-e758-93df-aff0-d1cf5335673f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|23ac03aa-e758-93df-aff0-d1cf5335673f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264589782},"e-134":{"id":"e-134","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-135"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|8de6c440-2ab1-98d5-3250-9eaed0dbbdb2","a
21181ppliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|8de6c440-2ab1-98d5-3250-9eaed0dbbdb2","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264778425},"e-136":{"id":"e-136","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-137"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|19ab831e-47a6-3d17-8378-db1e26ce3b8b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|19ab831e-47a6-3d17-8378-db1e26ce3b8b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264781970},"e-138":{"id":"e-138","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-139"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|b30036f6-03c1-b8d1-5b4a-f3bd97d68ed4","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|b30036f6-03c1-b8d1-5b4a-f3bd97d68ed4","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264783043},"e-140":{"id":"e-140","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-141"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|35749504-81c4-2070-7ca2-fb7411032d52","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|35749504-81c4-2070-7ca2-fb7411032d52","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264783938},"e-142":{"id":"e-142","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-143"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|0b4e5451-d2b7-70fd-e455-44b3a24db97f","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|0b4e5451-d2b7-70fd-e455-44b3a24db97f","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264784810},"e-144":{"id":"e-144","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-145"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|5f9cdce2-7bf9-cfd3-7b7a-90a6fdb33767","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|5f9cdce2-7bf9-cfd3-7b7a-90a6fdb33767","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264785634},"e-146":{"id":"e-146","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-147"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|62114dc9-54c0-3266-8eab-0c6e85fee5d5","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|62114dc9-54c0-3266-8eab-0c6e85fee5d5","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264786442},"e-148":{"id":"e-148","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-149"}}
21181,"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|ba8c0366-a87a-4198-112e-4b0e922b5278","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|ba8c0366-a87a-4198-112e-4b0e922b5278","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264787232},"e-150":{"id":"e-150","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-151"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|449e847b-6679-7b43-a100-54129e295a52","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|449e847b-6679-7b43-a100-54129e295a52","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264787999},"e-152":{"id":"e-152","name":"","animationType":"preset","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FLY_EFFECT","instant":false,"config":{"actionListId":"flyInTop","autoStopEventId":"e-153"}},"mediaQueries":["main","medium","small","tiny"],"target":{"id":"5f8fdb3ee6daa89407b3cd77|8fefff8b-99d6-9ef2-bfd9-80d1d2c8de2b","appliesTo":"ELEMENT","styleBlockIds":[]},"targets":[{"id":"5f8fdb3ee6daa89407b3cd77|8fefff8b-99d6-9ef2-bfd9-80d1d2c8de2b","appliesTo":"ELEMENT","styleBlockIds":[]}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":4750,"direction":"TOP","effectIn":true},"createdOn":1603264788818},"e-155":{"id":"e-155","name":"","animationType":"custom","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-154"}},"mediaQueries":["main"],"target":{"selector":".walsh-button-circle","originalId":"6345ab75e9f6365601b223ac|67294640-98ee-618a-f2f3-233661fb7263","appliesTo":"CLASS"},"targets":[{"selector":".walsh-button-circle","originalId":"6345ab75e9f6365601b223ac|67294640-98ee-618a-f2f3-233661fb7263","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1656968267609},"e-156":{"id":"e-156","name":"","animationType":"preset","eventTypeId":"MOUSE_OVER","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-157"}},"mediaQueries":["main"],"target":{"selector":".walsh-link-block-orange","originalId":"634d8b6e827ec3e1f1cd8bca|7abca713-aeae-4ee9-429d-a2804bd42882","appliesTo":"CLASS"},"targets":[{"selector":".walsh-link-block-orange","originalId":"634d8b6e827ec3e1f1cd8bca|7abca713-aeae-4ee9-429d-a2804bd42882","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1666312770566},"e-157":{"id":"e-157","name":"","animationType":"preset","eventTypeId":"MOUSE_OUT","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-156"}},"mediaQueries":["main"],"target":{"selector":".walsh-link-block-orange","originalId":"634d8b6e827ec3e1f1cd8bca|7abca713-aeae-4ee9-429d-a2804bd42882","appliesTo":"CLASS"},"targets":[{"selector":".walsh-link-block-orange","originalId":"634d8b6e827ec3e1f1cd8bca|7abca713-aeae-4ee9-429d-a2804bd42882","appliesTo":"CLASS"}],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1666312770566}},"actionLists":{"a":{"id":"a","title":"Button Circle - Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-n","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"swingTo","duration":500,"target":{},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"deg"}},{"id":"a-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"inOutCirc","duration":500,"target":{},"xValue":0,"xUnit":"rem","yUnit":"PX","zUnit":"PX"}},{"id":"a-n-3","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"swingTo","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-circle","selectorGuids":["28b0eedd-8690-1185-13f6-fc68575d57e0"]},"xValue":1,"yValue":1,"locked":true}},{"id":"a-n-4","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"swingTo","duration":500,"target":{},"xValue":1,"yValue":1,"locked":true}},{"id":"a-n-5","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outQuart","duration":700,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-fill","selectorGuids":["28b0eedd-8690-1185-13f6-fc68575d57de"]},"xValue":0.1,"yValue":0.1,"locked":true}},{"id":"a-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":300,"easing":"","duration":150,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-fill","selectorGuids":["28b0eedd-8690-1185-13f6-fc68575d57de"]},"value":0,"unit":""}}]}],"useFirstGroupAsInitialState":false,"createdOn":1656968270180}
21181,"a-2":{"id":"a-2","title":"Button Default - Hover On","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"inOutExpo","duration":1250,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-hover-fill","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d6"]},"xValue":3.8,"yValue":3.8,"locked":true}},{"id":"a-2-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"inOutExpo","duration":1250,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-hover-fill","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d6"]},"xValue":180,"yValue":80,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-2-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":300,"easing":"inOutExpo","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".walsh-icon-arrow-flip","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d7"]},"yValue":-100,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-2-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":300,"easing":"","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".walsh-label-button","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d9"]},"globalSwatchId":"","rValue":255,"bValue":255,"gValue":255,"aValue":1}}]}],"useFirstGroupAsInitialState":false,"createdOn":1661474026364},"a-3":{"id":"a-3","title":"Button Default - Hover Out","actionItemGroups":[{"actionItems":[{"id":"a-3-n","actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outQuart","duration":600,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-hover-fill","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d6"]},"xValue":1,"yValue":1,"locked":true}},{"id":"a-3-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":600,"target":{"useEventTarget":"CHILDREN","selector":".walsh-button-hover-fill","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d6"]},"xValue":0,"yValue":0,"xUnit":"%","yUnit":"%","zUnit":"PX"}},{"id":"a-3-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":250,"easing":"outQuart","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".walsh-label-button","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d9"]},"globalSwatchId":"","rValue":255,"bValue":255,"gValue":255,"aValue":1}},{"id":"a-3-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":300,"easing":"outQuart","duration":300,"target":{"useEventTarget":"CHILDREN","selector":".walsh-icon-arrow-flip","selectorGuids":["f7b0ca52-1098-7e87-737b-2921174a77d7"]},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]}],"useFirstGroupAsInitialState":false,"createdOn":1661474026364},"flyInTop":{"id":"flyInTop","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"duration":0,"delay":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},"yValue":-800,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0.25,"yValue":0.25}}]},{"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":"TRANSFORM_SCALE","config":{"delay":0,"easing":"inOutQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":1,"yValue":1}},{"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}]}} 21182);
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.