vendor: 4,813 bytes, lines 1-153
1/*! 2 * Webflow: Front-end site library 3 * @license MIT 4 * Inline scripts may access the api using an async handler: 5 * var Webflow = Webflow || []; 6 * Webflow.push(readyFunction); 7 */ 8/******/ (function(modules) { // webpackBootstrap 9/******/ // The module cache 10/******/ var installedModules = {}; 11/******/ 12/******/ // The require function 13/******/ function __webpack_require__(moduleId) { 14/******/ 15/******/ // Check if module is in cache 16/******/ if(installedModules[moduleId]) { 17/******/ return installedModules[moduleId].exports; 18/******/ } 19/******/ // Create a new module (and put it into the cache) 20/******/ var module = installedModules[moduleId] = { 21/******/ i: moduleId, 22/******/ l: false, 23/******/ exports: {} 24/******/ }; 25/******/ 26/******/ // Execute the module function 27/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 28/******/ 29/******/ // Flag the module as loaded 30/******/ module.l = true; 31/******/ 32/******/ // Return the exports of the module 33/******/ return module.exports; 34/******/ } 35/******/ 36/******/ 37/******/ // expose the modules object (__webpack_modules__) 38/******/ __webpack_require__.m = modules; 39/******/ 40/******/ // expose the module cache 41/******/ __webpack_require__.c = installedModules; 42/******/ 43/******/ // define getter function for harmony exports 44/******/ __webpack_require__.d = function(exports, name, getter) { 45/******/ if(!__webpack_require__.o(exports, name)) { 46/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); 47/******/ } 48/******/ }; 49/******/ 50/******/ // define __esModule on exports 51/******/ __webpack_require__.r = function(exports) { 52/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { 53/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); 54/******/ } 55/******/ Object.defineProperty(exports, '__esModule', { value: true }); 56/******/ }; 57/******/ 58/******/ // create a fake namespace object 59/******/ // mode & 1: value is a module id, require it 60/******/ // mode & 2: merge all properties of value into the ns 61/******/ // mode & 4: return value when already ns object 62/******/ // mode & 8|1: behave like require 63/******/ __webpack_require__.t = function(value, mode) { 64/******/ if(mode & 1) value = __webpack_require__(value); 65/******/ if(mode & 8) return value; 66/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; 67/******/ var ns = Object.create(null); 68/******/ __webpack_require__.r(ns); 69/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); 70/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); 71/******/ return ns; 72/******/ }; 73/******/ 74/******/ // getDefaultExport function for compatibility with non-harmony modules 75/******/ __webpack_require__.n = function(module) { 76/******/ var getter = module && module.__esModule ? 77/******/ function getDefault() { return module['default']; } : 78/******/ function getModuleExports() { return module; }; 79/******/ __webpack_require__.d(getter, 'a', getter); 80/******/ return getter; 81/******/ }; 82/******/ 83/******/ // Object.prototype.hasOwnProperty.call 84/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 85/******/ 86/******/ // __webpack_public_path__ 87/******/ __webpack_require__.p = ""; 88/******/ 89/******/ 90/******/ // Load entry module and return exports 91/******/ return __webpack_require__(__webpack_require__.s = 120); 92/******/ }) 93/************************************************************************/ 94/******/ ([ 95/* 0 */ 96/***/ (function(module, exports) { 97 98function _interopRequireDefault(obj) { 99 return obj && obj.__esModule ? obj : { 100 "default": obj 101 }; 102} 103 104module.exports = _interopRequireDefault; 105 106/***/ }), 107/* 1 */ 108/***/ (function(module, exports) { 109 110/** 111 * Checks if `value` is classified as an `Array` object. 112 * 113 * @static 114 * @memberOf _ 115 * @since 0.1.0 116 * @category Lang 117 * @param {*} value The value to check. 118 * @returns {boolean} Returns `true` if `value` is an array, else `false`. 119 * @example 120 * 121 * _.isArray([1, 2, 3]); 122 * // => true 123 * 124 * _.isArray(document.body.children); 125 * // => false 126 * 127 * _.isArray('abc'); 128 * // => false 129 * 130 * _.isArray(_.noop); 131 * // => false 132 */ 133var isArray = Array.isArray; 134 135module.exports = isArray; 136 137 138/***/ }), 139/* 2 */ 140/***/ (function(module, exports, __webpack_require__) { 141 142"use strict"; 143 144 145var _interopRequireWildcard = __webpack_require__(13); 146 147Object.defineProperty(exports, "__esModule", { 148 value: true 149}); 150var _exportNames = { 151 IX2EngineActionTypes: true, 152 IX2EngineConstants: true 153};
154exports.IX2EngineConstants = exports.IX2EngineActionTypes = void 0; 155 156var _triggerEvents = __webpack_require__(169); 157 158Object.keys(_triggerEvents).forEach(function (key) { 159 if (key === "default" || key === "__esModule") return; 160 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 161 Object.defineProperty(exports, key, { 162 enumerable: true, 163 get: function get() { 164 return _triggerEvents[key]; 165 } 166 }); 167}); 168 169var _animationActions = __webpack_require__(170); 170 171Object.keys(_animationActions).forEach(function (key) { 172 if (key === "default" || key === "__esModule") return; 173 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 174 Object.defineProperty(exports, key, { 175 enumerable: true, 176 get: function get() { 177 return _animationActions[key]; 178 } 179 }); 180}); 181 182var _triggerInteractions = __webpack_require__(171); 183 184Object.keys(_triggerInteractions).forEach(function (key) { 185 if (key === "default" || key === "__esModule") return; 186 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 187 Object.defineProperty(exports, key, { 188 enumerable: true, 189 get: function get() { 190 return _triggerInteractions[key]; 191 } 192 }); 193}); 194 195var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(172)); 196 197exports.IX2EngineActionTypes = IX2EngineActionTypes; 198 199var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(173)); 200 201exports.IX2EngineConstants = IX2EngineConstants; 202 203/***/ }), 204/* 3 */ 205/***/ (function(module, exports, __webpack_require__) { 206 207"use strict"; 208 // @wf-will-never-add-flow-to-this-file 209 210/* globals window, document, navigator, WEBFLOW_ENV_TEST */ 211 212/* eslint-disable no-var */ 213 214/** 215 * Webflow: Core site library 216 */ 217 218var Webflow = {}; 219var modules = {}; 220var primary = []; 221var secondary = window.Webflow || []; 222var $ = window.jQuery; 223var $win = $(window); 224var $doc = $(document); 225var isFunction = $.isFunction; 226 227var _ = Webflow._ = __webpack_require__(122); 228 229var tram = Webflow.tram = __webpack_require__(65) && $.tram; 230var domready = false; 231var destroyed = false; 232tram.config.hideBackface = false; 233tram.config.keepInherited = true; 234/** 235 * Webflow.define - Define a named module 236 * @param {string} name 237 * @param {function} factory 238 * @param {object} options 239 * @return {object} 240 */ 241 242Webflow.define = function (name, factory, options) { 243 if (modules[name]) { 244 unbindModule(modules[name]); 245 } 246 247 var instance = modules[name] = factory($, _, options) || {}; 248 bindModule(instance); 249 return instance; 250}; 251/** 252 * Webflow.require - Require a named module 253 * @param {string} name 254 * @return {object} 255 */ 256 257 258Webflow.require = function (name) { 259 return modules[name]; 260}; 261 262function bindModule(module) { 263 // If running in Webflow app, subscribe to design/preview events 264 if (Webflow.env()) { 265 isFunction(module.design) && $win.on('__wf_design', module.design); 266 isFunction(module.preview) && $win.on('__wf_preview', module.preview); 267 } // Subscribe to front-end destroy event 268 269 270 isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module 271 272 if (module.ready && isFunction(module.ready)) { 273 addReady(module); 274 } 275} 276 277function addReady(module) { 278 // If domready has already happened, run ready method 279 if (domready) { 280 module.ready(); 281 return; 282 } // Otherwise add ready method to the primary queue (only once) 283 284 285 if (_.contains(primary, module.ready)) { 286 return; 287 } 288 289 primary.push(module.ready); 290} 291 292function unbindModule(module) { 293 // Unsubscribe module from window events 294 isFunction(module.design) && $win.off('__wf_design', module.design); 295 isFunction(module.preview) && $win.off('__wf_preview', module.preview); 296 isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue 297 298 if (module.ready && isFunction(module.ready)) { 299 removeReady(module); 300 } 301} 302 303function removeReady(module) { 304 primary = _.filter(primary, function (readyFn) { 305 return readyFn !== module.ready; 306 }); 307} 308/** 309 * Webflow.push - Add a ready handler into secondary queue 310 * @param {function} ready Callback to invoke on domready 311 */ 312 313 314Webflow.push = function (ready) { 315 // If domready has already happened, invoke handler 316 if (domready) { 317 isFunction(ready) && ready(); 318 return; 319 } // Otherwise push into secondary queue 320 321 322 secondary.push(ready); 323}; 324/** 325 * Webflow.env - Get the state of the Webflow app 326 * @param {string} mode [optional] 327 * @return {boolean} 328 */ 329 330 331Webflow.env = function (mode) { 332 var designFlag = window.__wf_design; 333 var inApp = typeof designFlag !== 'undefined'; 334 335 if (!mode) { 336 return inApp; 337 } 338 339 if (mode === 'design') { 340 return inApp && designFlag; 341 } 342 343 if (mode === 'preview') { 344 return inApp && !designFlag; 345 } 346 347 if (mode === 'slug') { 348 return inApp && window.__wf_slug; 349 } 350 351 if (mode === 'editor') { 352 return window.WebflowEditor; 353 } 354 355 if (mode === 'test') { 356 return false || window.__wf_test; 357 } 358 359 if (mode === 'frame') { 360 return window !== window.top; 361 } 362}; // Feature detects + browser sniffs ಠ_ಠ363 364 365var userAgent = navigator.userAgent.toLowerCase(); 366var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; 367var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); 368var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); 369Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices 370 371var touchTarget; // Listen for both events to support touch/mouse hybrid devices 372 373touch && $doc.on('touchstart mousedown', function (evt) { 374 touchTarget = evt.target; 375}); 376/** 377 * Webflow.validClick - validate click target against current touch target 378 * @param {HTMLElement} clickTarget Element being clicked 379 * @return {Boolean} True if click target is valid (always true on non-touch) 380 */ 381 382Webflow.validClick = touch ? function (clickTarget) { 383 return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); 384} : function () { 385 return true; 386}; 387/** 388 * Webflow.resize, Webflow.scroll - throttled event proxies 389 */ 390 391var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow';
392var scrollEvents = 'scroll.webflow ' + resizeEvents; 393Webflow.resize = eventProxy($win, resizeEvents); 394Webflow.scroll = eventProxy($win, scrollEvents); 395Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events 396 397function eventProxy(target, types) { 398 // Set up throttled method (using custom frame-based _.throttle) 399 var handlers = []; 400 var proxy = {}; 401 proxy.up = _.throttle(function (evt) { 402 _.each(handlers, function (h) { 403 h(evt); 404 }); 405 }); // Bind events to target 406 407 if (target && types) { 408 target.on(types, proxy.up); 409 } 410 /** 411 * Add an event handler 412 * @param {function} handler 413 */ 414 415 416 proxy.on = function (handler) { 417 if (typeof handler !== 'function') { 418 return; 419 } 420 421 if (_.contains(handlers, handler)) { 422 return; 423 } 424 425 handlers.push(handler); 426 }; 427 /** 428 * Remove an event handler 429 * @param {function} handler 430 */ 431 432 433 proxy.off = function (handler) { 434 // If no arguments supplied, clear all handlers 435 if (!arguments.length) { 436 handlers = []; 437 return; 438 } // Otherwise, remove handler from the list 439 440 441 handlers = _.filter(handlers, function (h) { 442 return h !== handler; 443 }); 444 }; 445 446 return proxy; 447} // Webflow.location - Wrap window.location in api 448 449 450Webflow.location = function (url) { 451 window.location = url; 452}; 453 454if (Webflow.env()) { 455 // Ignore redirects inside a Webflow design/edit environment 456 Webflow.location = function () {}; 457} // Webflow.ready - Call primary and secondary handlers 458 459 460Webflow.ready = function () { 461 domready = true; // Restore modules after destroy 462 463 if (destroyed) { 464 restoreModules(); // Otherwise run primary ready methods 465 } else { 466 _.each(primary, callReady); 467 } // Run secondary ready methods 468 469 470 _.each(secondary, callReady); // Trigger resize 471 472 473 Webflow.resize.up(); 474}; 475 476function callReady(readyFn) { 477 isFunction(readyFn) && readyFn(); 478} 479 480function restoreModules() { 481 destroyed = false; 482 483 _.each(modules, bindModule); 484} 485/** 486 * Webflow.load - Add a window load handler that will run even if load event has already happened 487 * @param {function} handler 488 */ 489 490 491var deferLoad; 492 493Webflow.load = function (handler) { 494 deferLoad.then(handler); 495}; 496 497function bindLoad() { 498 // Reject any previous deferred (to support destroy) 499 if (deferLoad) { 500 deferLoad.reject(); 501 $win.off('load', deferLoad.resolve); 502 } // Create deferred and bind window load event 503 504 505 deferLoad = new $.Deferred(); 506 $win.on('load', deferLoad.resolve); 507} // Webflow.destroy - Trigger a destroy event for all modules 508 509 510Webflow.destroy = function (options) { 511 options = options || {}; 512 destroyed = true; 513 $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests 514 515 if (options.domready != null) { 516 domready = options.domready; 517 } // Unbind modules 518 519 520 _.each(modules, unbindModule); // Clear any proxy event handlers 521 522 523 Webflow.resize.off(); 524 Webflow.scroll.off(); 525 Webflow.redraw.off(); // Clear any queued ready methods 526 527 primary = []; 528 secondary = []; // If load event has not yet fired, replace the deferred 529 530 if (deferLoad.state() === 'pending') { 531 bindLoad(); 532 } 533}; // Listen for domready 534 535 536$(Webflow.ready); // Listen for window.onload and resolve deferred 537 538bindLoad(); // Export commonjs module 539 540module.exports = window.Webflow = Webflow; 541 542/***/ }), 543/* 4 */ 544/***/ (function(module, exports, __webpack_require__) { 545 546/* WEBPACK VAR INJECTION */(function(global) {var O = 'object'; 547var check = function (it) { 548 return it && it.Math == Math && it; 549}; 550 551// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 552module.exports = 553 // eslint-disable-next-line no-undef 554 check(typeof globalThis == O && globalThis) || 555 check(typeof window == O && window) || 556 check(typeof self == O && self) || 557 check(typeof global == O && global) || 558 // eslint-disable-next-line no-new-func 559 Function('return this')(); 560 561/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23))) 562 563/***/ }), 564/* 5 */ 565/***/ (function(module, exports, __webpack_require__) { 566 567var freeGlobal = __webpack_require__(89); 568 569/** Detect free variable `self`. */ 570var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 571 572/** Used as a reference to the global object. */ 573var root = freeGlobal || freeSelf || Function('return this')(); 574 575module.exports = root; 576 577 578/***/ }), 579/* 6 */
580/***/ (function(module, exports) { 581 582/** 583 * Checks if `value` is the 584 * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types) 585 * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`) 586 * 587 * @static 588 * @memberOf _ 589 * @since 0.1.0 590 * @category Lang 591 * @param {*} value The value to check. 592 * @returns {boolean} Returns `true` if `value` is an object, else `false`. 593 * @example 594 * 595 * _.isObject({}); 596 * // => true 597 * 598 * _.isObject([1, 2, 3]); 599 * // => true 600 * 601 * _.isObject(_.noop); 602 * // => true 603 * 604 * _.isObject(null); 605 * // => false 606 */ 607function isObject(value) { 608 var type = typeof value; 609 return value != null && (type == 'object' || type == 'function'); 610} 611 612module.exports = isObject; 613 614 615/***/ }), 616/* 7 */ 617/***/ (function(module, exports, __webpack_require__) { 618 619var baseMatches = __webpack_require__(176), 620 baseMatchesProperty = __webpack_require__(230), 621 identity = __webpack_require__(59), 622 isArray = __webpack_require__(1), 623 property = __webpack_require__(239); 624 625/** 626 * The base implementation of `_.iteratee`. 627 * 628 * @private 629 * @param {*} [value=_.identity] The value to convert to an iteratee. 630 * @returns {Function} Returns the iteratee. 631 */ 632function baseIteratee(value) { 633 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. 634 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. 635 if (typeof value == 'function') { 636 return value; 637 } 638 if (value == null) { 639 return identity; 640 } 641 if (typeof value == 'object') { 642 return isArray(value) 643 ? baseMatchesProperty(value[0], value[1]) 644 : baseMatches(value); 645 } 646 return property(value); 647} 648 649module.exports = baseIteratee; 650 651 652/***/ }), 653/* 8 */ 654/***/ (function(module, exports, __webpack_require__) { 655 656var baseIsNative = __webpack_require__(188), 657 getValue = __webpack_require__(193); 658 659/** 660 * Gets the native function at `key` of `object`. 661 * 662 * @private 663 * @param {Object} object The object to query. 664 * @param {string} key The key of the method to get. 665 * @returns {*} Returns the function if it's native, else `undefined`. 666 */ 667function getNative(object, key) { 668 var value = getValue(object, key); 669 return baseIsNative(value) ? value : undefined; 670} 671 672module.exports = getNative; 673 674 675/***/ }), 676/* 9 */ 677/***/ (function(module, exports) { 678 679/** 680 * Checks if `value` is object-like. A value is object-like if it's not `null` 681 * and has a `typeof` result of "object". 682 * 683 * @static 684 * @memberOf _ 685 * @since 4.0.0 686 * @category Lang 687 * @param {*} value The value to check. 688 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 689 * @example 690 * 691 * _.isObjectLike({}); 692 * // => true 693 * 694 * _.isObjectLike([1, 2, 3]); 695 * // => true 696 * 697 * _.isObjectLike(_.noop); 698 * // => false 699 * 700 * _.isObjectLike(null); 701 * // => false 702 */ 703function isObjectLike(value) { 704 return value != null && typeof value == 'object'; 705} 706 707module.exports = isObjectLike; 708 709 710/***/ }), 711/* 10 */ 712/***/ (function(module, exports, __webpack_require__) { 713 714"use strict"; 715 716 717var _interopRequireWildcard = __webpack_require__(13); 718 719Object.defineProperty(exports, "__esModule", { 720 value: true 721}); 722exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exp
722orts.IX2BrowserSupport = void 0; 723 724var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(45)); 725 726exports.IX2BrowserSupport = IX2BrowserSupport; 727 728var IX2Easings = _interopRequireWildcard(__webpack_require__(106)); 729 730exports.IX2Easings = IX2Easings; 731 732var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(108)); 733 734exports.IX2EasingUtils = IX2EasingUtils; 735 736var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(246)); 737 738exports.IX2ElementsReducer = IX2ElementsReducer; 739 740var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(110)); 741 742exports.IX2VanillaPlugins = IX2VanillaPlugins; 743 744var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(248)); 745 746exports.IX2VanillaUtils = IX2VanillaUtils; 747 748/***/ }), 749/* 11 */ 750/***/ (function(module, exports, __webpack_require__) { 751 752var Symbol = __webpack_require__(19), 753 getRawTag = __webpack_require__(189), 754 objectToString = __webpack_require__(190); 755 756/** `Object#toString` result references. */ 757var nullTag = '[object Null]', 758 undefinedTag = '[object Undefined]'; 759 760/** Built-in value references. */ 761var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 762 763/** 764 * The base implementation of `getTag` without fallbacks for buggy environments. 765 * 766 * @private 767 * @param {*} value The value to query. 768 * @returns {string} Returns the `toStringTag`. 769 */ 770function baseGetTag(value) { 771 if (value == null) { 772 return value === undefined ? undefinedTag : nullTag; 773 } 774 return (symToStringTag && symToStringTag in Object(value)) 775 ? getRawTag(value) 776 : objectToString(value); 777} 778 779module.exports = baseGetTag; 780 781 782/***/ }), 783/* 12 */ 784/***/ (function(module, exports, __webpack_require__) { 785 786var isFunction = __webpack_require__(88), 787 isLength = __webpack_require__(53); 788 789/** 790 * Checks if `value` is array-like. A value is considered array-like if it's 791 * not a function and has a `value.length` that's an integer greater than or 792 * equal to `0` and less than or equal to `Number.MAX_SAFE_INTEGER`. 793 * 794 * @static 795 * @memberOf _ 796 * @since 4.0.0 797 * @category Lang 798 * @param {*} value The value to check. 799 * @returns {boolean} Returns `true` if `value` is array-like, else `false`. 800 * @example 801 * 802 * _.isArrayLike([1, 2, 3]); 803 * // => true 804 * 805 * _.isArrayLike(document.body.children); 806 * // => true 807 * 808 * _.isArrayLike('abc'); 809 * // => true 810 * 811 * _.isArrayLike(_.noop); 812 * // => false 813 */ 814function isArrayLike(value) { 815 return value != null && isLength(value.length) && !isFunction(value); 816} 817 818module.exports = isArrayLike; 819 820 821/***/ }), 822/* 13 */ 823/***/ (function(module, exports) { 824 825function _interopRequireWildcard(obj) { 826 if (obj && obj.__esModule) { 827 return obj; 828 } else { 829 var newObj = {}; 830 831 if (obj != null) { 832 for (var key in obj) { 833 if (Object.prototype.hasOwnProperty.call(obj, key)) { 834 var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; 835 836 if (desc.get || desc.set) { 837 Object.defineProperty(newObj, key, desc); 838 } else { 839 newObj[key] = obj[key]; 840 } 841 } 842 } 843 } 844 845 newObj["default"] = obj; 846 return newObj; 847 } 848} 849 850module.exports = _interopRequireWildcard; 851 852/***/ }), 853/* 14 */ 854/***/ (function(module, exports, __webpack_require__) { 855 856var fails = __webpack_require__(15); 857 858// Thank's IE8 for his funny defineProperty 859module.exports = !fails(function () { 860 return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7; 861}); 862 863 864/***/ }), 865/* 15 */ 866/***/ (function(module, exports) { 867 868module.exports = function (exec) { 869 try { 870 return !!exec(); 871 } catch (error) { 872 return true; 873 } 874}; 875 876 877/***/ }), 878/* 16 */ 879/***/ (function(module, exports) { 880 881var hasOwnProperty = {}.hasOwnProperty; 882 883module.exports = function (it, key) { 884 return hasOwnProperty.call(it, key); 885}; 886 887 888/***/ }), 889/* 17 */ 890/***/ (function(module, exports, __webpack_require__) { 891 892var DESCRIPTORS = __webpack_require__(14); 893var definePropertyModule = __webpack_require__(39); 894var createPropertyDescriptor = __webpack_require__(67); 895 896module.exports = DESCRIPTORS ? function (object, key, value) { 897 return definePropertyModule.f(object, key, createPropertyDescriptor(1, value)); 898} : function (object, key, value) { 899 object[key] = value; 900 return object; 901}; 902 903 904/***/ }), 905/* 18 */ 906/***/ (function(module, exports, __webpack_require__) { 907 908"use strict"; 909 910 911Object.defineProperty(exports, "__esModule", { 912 value: true 913}); 914 915var _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; }; 916 917exports.clone = clone; 918exports.addLast = addLast; 919exports.addFirst = addFirst; 920exports.removeLast = removeLast; 921exports.removeFirst = removeFirst; 922exports.insert = insert; 923exports.removeAt = removeAt; 924exports.replaceAt = replaceAt; 925exports.getIn = getIn;
926exports.set = set; 927exports.setIn = setIn; 928exports.update = update; 929exports.updateIn = updateIn; 930exports.merge = merge; 931exports.mergeDeep = mergeDeep; 932exports.mergeIn = mergeIn; 933exports.omit = omit; 934exports.addDefaults = addDefaults; 935 936 937/*! 938 * Timm 939 * 940 * Immutability helpers with fast reads and acceptable writes. 941 * 942 * @copyright Guillermo Grau Panea 2016 943 * @license MIT 944 */ 945 946var INVALID_ARGS = 'INVALID_ARGS'; 947 948// =============================================== 949// ### Helpers 950// =============================================== 951 952 953function throwStr(msg) { 954 throw new Error(msg); 955} 956 957function getKeysAndSymbols(obj) { 958 var keys = Object.keys(obj); 959 if (Object.getOwnPropertySymbols) { 960 return keys.concat(Object.getOwnPropertySymbols(obj)); 961 } 962 return keys; 963} 964 965var hasOwnProperty = {}.hasOwnProperty; 966 967function clone(obj) { 968 if (Array.isArray(obj)) return obj.slice(); 969 var keys = getKeysAndSymbols(obj); 970 var out = {}; 971 for (var i = 0; i < keys.length; i++) { 972 var key = keys[i]; 973 out[key] = obj[key]; 974 } 975 return out; 976} 977 978function doMerge(fAddDefaults, fDeep, first) { 979 var out = first; 980 !(out != null) && throwStr( false ? undefined : INVALID_ARGS); 981 var fChanged = false; 982 983 for (var _len = arguments.length, rest = Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) { 984 rest[_key - 3] = arguments[_key]; 985 } 986 987 for (var idx = 0; idx < rest.length; idx++) { 988 var obj = rest[idx]; 989 if (obj == null) continue; 990 var keys = getKeysAndSymbols(obj); 991 if (!keys.length) continue; 992 for (var j = 0; j <= keys.length; j++) { 993 var key = keys[j]; 994 if (fAddDefaults && out[key] !== undefined) continue; 995 var nextVal = obj[key]; 996 if (fDeep && isObject(out[key]) && isObject(nextVal)) { 997 nextVal = doMerge(fAddDefaults, fDeep, out[key], nextVal); 998 }
999 if (nextVal === undefined || nextVal === out[key]) continue; 1000 if (!fChanged) { 1001 fChanged = true; 1002 out = clone(out); 1003 } 1004 out[key] = nextVal; 1005 } 1006 } 1007 return out; 1008} 1009 1010function isObject(o) { 1011 var type = typeof o === 'undefined' ? 'undefined' : _typeof(o); 1012 return o != null && (type === 'object' || type === 'function'); 1013} 1014 1015// _deepFreeze = (obj) -> 1016// Object.freeze obj 1017// for key in Object.getOwnPropertyNames obj 1018// val = obj[key] 1019// if isObject(val) and not Object.isFrozen val 1020// _deepFreeze val 1021// obj 1022 1023// =============================================== 1024// -- ### Arrays 1025// =============================================== 1026 1027// -- #### addLast() 1028// -- Returns a new array with an appended item or items. 1029// -- 1030// -- Usage: `addLast<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1031// -- 1032// -- ```js 1033// -- arr = ['a', 'b'] 1034// -- arr2 = addLast(arr, 'c') 1035// -- // ['a', 'b', 'c'] 1036// -- arr2 === arr 1037// -- // false 1038// -- arr3 = addLast(arr, ['c', 'd']) 1039// -- // ['a', 'b', 'c', 'd'] 1040// -- ``` 1041// `array.concat(val)` also handles the scalar case, 1042// but is apparently very slow 1043function addLast(array, val) { 1044 if (Array.isArray(val)) return array.concat(val); 1045 return array.concat([val]); 1046} 1047 1048// -- #### addFirst() 1049// -- Returns a new array with a prepended item or items. 1050// -- 1051// -- Usage: `addFirst<T>(array: Array<T>, val: Array<T>|T): Array<T>` 1052// -- 1053// -- ```js 1054// -- arr = ['a', 'b'] 1055// -- arr2 = addFirst(arr, 'c') 1056// -- // ['c', 'a', 'b'] 1057// -- arr2 === arr 1058// -- // false 1059// -- arr3 = addFirst(arr, ['c', 'd']) 1060// -- // ['c', 'd', 'a', 'b'] 1061// -- ``` 1062function addFirst(array, val) { 1063 if (Array.isArray(val)) return val.concat(array); 1064 return [val].concat(array); 1065} 1066 1067// -- #### removeLast() 1068// -- Returns a new array removing the last item. 1069// -- 1070// -- Usage: `removeLast<T>(array: Array<T>): Array<T>` 1071// -- 1072// -- ```js 1073// -- arr = ['a', 'b'] 1074// -- arr2 = removeLast(arr) 1075// -- // ['a'] 1076// -- arr2 === arr 1077// -- // false 1078// -- 1079// -- // The same array is returned if there are no changes: 1080// -- arr3 = [] 1081// -- removeLast(arr3) === arr3 1082// -- // true 1083// -- ``` 1084function removeLast(array) { 1085 if (!array.length) return array; 1086 return array.slice(0, array.length - 1); 1087} 1088 1089// -- #### removeFirst() 1090// -- Returns a new array removing the first item. 1091// -- 1092// -- Usage: `removeFirst<T>(array: Array<T>): Array<T>` 1093// -- 1094// -- ```js 1095// -- arr = ['a', 'b'] 1096// -- arr2 = removeFirst(arr) 1097// -- // ['b'] 1098// -- arr2 === arr 1099// -- // false 1100// -- 1101// -- // The same array is returned if there are no changes: 1102// -- arr3 = [] 1103// -- removeFirst(arr3) === arr3 1104// -- // true 1105// -- ``` 1106function removeFirst(array) { 1107 if (!array.length) return array; 1108 return array.slice(1); 1109} 1110 1111// -- #### insert() 1112// -- Returns a new array obtained by inserting an item or items 1113// -- at a specified index. 1114// -- 1115// -- Usage: `insert<T>(array: Array<T>, idx: number, val: Array<T>|T): Array<T>` 1116// -- 1117// -- ```js 1118// -- arr = ['a', 'b', 'c'] 1119// -- arr2 = insert(arr, 1, 'd') 1120// -- // ['a', 'd', 'b', 'c'] 1121// -- arr2 === arr 1122// -- // false 1123// -- insert(arr, 1, ['d', 'e']) 1124// -- // ['a', 'd', 'e', 'b', 'c'] 1125// -- ``` 1126function insert(array, idx, val) { 1127 return array.slice(0, idx).concat(Array.isArray(val) ? val : [val]).concat(array.slice(idx)); 1128} 1129 1130// -- #### removeAt() 1131// -- Returns a new array obtained by removing an item at 1132// -- a specified index. 1133// -- 1134// -- Usage: `removeAt<T>(array: Array<T>, idx: number): Array<T>` 1135// -- 1136// -- ```js 1137// -- arr = ['a', 'b', 'c'] 1138// -- arr2 = removeAt(arr, 1) 1139// -- // ['a', 'c'] 1140// -- arr2 === arr 1141// -- // false 1142// -- 1143// -- // The same array is returned if there are no changes: 1144// -- removeAt(arr, 4) === arr 1145// -- // true 1146// -- ``` 1147function removeAt(array, idx) { 1148 if (idx >= array.length || idx < 0) return array; 1149 return array.slice(0, idx).concat(array.slice(idx + 1)); 1150} 1151 1152// -- #### replaceAt() 1153// -- Returns a new array obtained by replacing an item at 1154// -- a specified index. If the provided item is the same as 1155// -- (*referentially equal to*) the previous item at that position, 1156// -- the original array is returned. 1157// -- 1158// -- Usage: `replaceAt<T>(array: Array<T>, idx: number, newItem: T): Array<T>` 1159// -- 1160// -- ```js 1161// -- arr = ['a', 'b', 'c']
1162// -- arr2 = replaceAt(arr, 1, 'd') 1163// -- // ['a', 'd', 'c'] 1164// -- arr2 === arr 1165// -- // false 1166// -- 1167// -- // The same object is returned if there are no changes: 1168// -- replaceAt(arr, 1, 'b') === arr 1169// -- // true 1170// -- ``` 1171function replaceAt(array, idx, newItem) { 1172 if (array[idx] === newItem) return array; 1173 var len = array.length; 1174 var result = Array(len); 1175 for (var i = 0; i < len; i++) { 1176 result[i] = array[i]; 1177 } 1178 result[idx] = newItem; 1179 return result; 1180} 1181 1182// =============================================== 1183// -- ### Collections (objects and arrays) 1184// =============================================== 1185// -- The following types are used throughout this section 1186// -- ```js 1187// -- type ArrayOrObject = Array<any>|Object; 1188// -- type Key = number|string; 1189// -- ``` 1190 1191// -- #### getIn() 1192// -- Returns a value from an object at a given path. Works with 1193// -- nested arrays and objects. If the path does not exist, it returns 1194// -- `undefined`. 1195// -- 1196// -- Usage: `getIn(obj: ?ArrayOrObject, path: Array<Key>): any` 1197// -- 1198// -- ```js 1199// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: ['a', 'b', 'c'] } 1200// -- getIn(obj, ['d', 'd1']) 1201// -- // 3 1202// -- getIn(obj, ['e', 1]) 1203// -- // 'b' 1204// -- ``` 1205function getIn(obj, path) { 1206 !Array.isArray(path) && throwStr( false ? undefined : INVALID_ARGS); 1207 if (obj == null) return undefined; 1208 var ptr = obj; 1209 for (var i = 0; i < path.length; i++) { 1210 var key = path[i]; 1211 ptr = ptr != null ? ptr[key] : undefined; 1212 if (ptr === undefined) return ptr; 1213 } 1214 return ptr; 1215} 1216 1217// -- #### set() 1218// -- Returns a new object with a modified attribute. 1219// -- If the provided value is the same as (*referentially equal to*) 1220// -- the previous value, the original object is returned. 1221// -- 1222// -- Usage: `set<T>(obj: ?T, key: Key, val: any): T` 1223// -- 1224// -- ```js 1225// -- obj = { a: 1, b: 2, c: 3 } 1226// -- obj2 = set(obj, 'b', 5) 1227// -- // { a: 1, b: 5, c: 3 } 1228// -- obj2 === obj 1229// -- // false 1230// -- 1231// -- // The same object is returned if there are no changes: 1232// -- set(obj, 'b', 2) === obj 1233// -- // true 1234// -- ``` 1235function set(obj, key, val) { 1236 var fallback = typeof key === 'number' ? [] : {}; 1237 var finalObj = obj == null ? fallback : obj; 1238 if (finalObj[key] === val) return finalObj; 1239 var obj2 = clone(finalObj); 1240 obj2[key] = val; 1241 return obj2; 1242} 1243 1244// -- #### setIn() 1245// -- Returns a new object with a modified **nested** attribute. 1246// -- 1247// -- Notes: 1248// -- 1249// -- * If the provided value is the same as (*referentially equal to*) 1250// -- the previous value, the original object is returned. 1251// -- * If the path does not exist, it will be created before setting 1252// -- the new value. 1253// -- 1254// -- Usage: `setIn<T: ArrayOrObject>(obj: T, path: Array<Key>, val: any): T` 1255// -- 1256// -- ```js 1257// -- obj = { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1258// -- obj2 = setIn(obj, ['d', 'd1'], 4) 1259// -- // { a: 1, b: 2, d: { d1: 4, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1260// -- obj2 === obj 1261// -- // false 1262// -- obj2.d === obj.d 1263// -- // false 1264// -- obj2.e === obj.e 1265// -- // true 1266// -- 1267// -- // The same object is returned if there are no changes: 1268// -- obj3 = setIn(obj, ['d', 'd1'], 3) 1269// -- // { a: 1, b: 2, d: { d1: 3, d2: 4 }, e: { e1: 'foo', e2: 'bar' } } 1270// -- obj3 === obj 1271// -- // true 1272// -- obj3.d === obj.d 1273// -- // true 1274// -- obj3.e === obj.e 1275// -- // true 1276// -- 1277// -- // ... unknown paths create intermediate keys. Numeric segments are treated as array indices: 1278// -- setIn({ a: 3 }, ['unknown', 0, 'path'], 4) 1279// -- // { a: 3, unknown: [{ path: 4 }] } 1280// -- ``` 1281function doSetIn(obj, path, val, idx) { 1282 var newValue = void 0; 1283 var key = path[idx]; 1284 if (idx === path.length - 1) { 1285 newValue = val; 1286 } else { 1287 var nestedObj = isObject(obj) && isObject(obj[key]) ? obj[key] : typeof path[idx + 1] === 'number' ? [] : {}; 1288 newValue = doSetIn(nestedObj, path, val, idx + 1); 1289 } 1290 return set(obj, key, newValue); 1291} 1292 1293function setIn(obj, path, val) { 1294 if (!path.length) return val; 1295 return doSetIn(obj, path, val, 0); 1296} 1297 1298// -- #### update() 1299// -- Returns a new object with a modified attribute,
1300// -- calculated via a user-provided callback based on the current value. 1301// -- If the calculated value is the same as (*referentially equal to*) 1302// -- the previous value, the original object is returned. 1303// -- 1304// -- Usage: `update<T: ArrayOrObject>(obj: T, key: Key, 1305// -- fnUpdate: (prevValue: any) => any): T` 1306// -- 1307// -- ```js 1308// -- obj = { a: 1, b: 2, c: 3 } 1309// -- obj2 = update(obj, 'b', (val) => val + 1) 1310// -- // { a: 1, b: 3, c: 3 } 1311// -- obj2 === obj 1312// -- // false 1313// -- 1314// -- // The same object is returned if there are no changes: 1315// -- update(obj, 'b', (val) => val) === obj 1316// -- // true 1317// -- ``` 1318function update(obj, key, fnUpdate) { 1319 var prevVal = obj == null ? undefined : obj[key]; 1320 var nextVal = fnUpdate(prevVal); 1321 return set(obj, key, nextVal); 1322} 1323 1324// -- #### updateIn() 1325// -- Returns a new object with a modified **nested** attribute, 1326// -- calculated via a user-provided callback based on the current value. 1327// -- If the calculated value is the same as (*referentially equal to*) 1328// -- the previous value, the original object is returned. 1329// -- 1330// -- Usage: `updateIn<T: ArrayOrObject>(obj: T, path: Array<Key>, 1331// -- fnUpdate: (prevValue: any) => any): T` 1332// -- 1333// -- ```js 1334// -- obj = { a: 1, d: { d1: 3, d2: 4 } } 1335// -- obj2 = updateIn(obj, ['d', 'd1'], (val) => val + 1) 1336// -- // { a: 1, d: { d1: 4, d2: 4 } } 1337// -- obj2 === obj 1338// -- // false 1339// -- 1340// -- // The same object is returned if there are no changes: 1341// -- obj3 = updateIn(obj, ['d', 'd1'], (val) => val) 1342// -- // { a: 1, d: { d1: 3, d2: 4 } } 1343// -- obj3 === obj 1344// -- // true 1345// -- ``` 1346function updateIn(obj, path, fnUpdate) { 1347 var prevVal = getIn(obj, path); 1348 var nextVal = fnUpdate(prevVal); 1349 return setIn(obj, path, nextVal); 1350} 1351 1352// -- #### merge() 1353// -- Returns a new object built as follows: the overlapping keys from the 1354// -- second one overwrite the corresponding entries from the first one. 1355// -- Similar to `Object.assign()`, but immutable. 1356// -- 1357// -- Usage: 1358// -- 1359// -- * `merge(obj1: Object, obj2: ?Object): Object` 1360// -- * `merge(obj1: Object, ...objects: Array<?Object>): Object` 1361// -- 1362// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1363// -- new to* `obj1`, i.e. if either of the following 1364// -- conditions are true: 1365// -- 1366// -- * `obj2` is `null` or `undefined` 1367// -- * `obj2` is an object, but it is empty 1368// -- * All attributes of `obj2` are `undefined` 1369// -- * All attributes of `obj2` are referentially equal to the 1370// -- corresponding attributes of `obj1` 1371// -- 1372// -- Note that `undefined` attributes in `obj2` do not modify the 1373// -- corresponding attributes in `obj1`. 1374// -- 1375// -- ```js 1376// -- obj1 = { a: 1, b: 2, c: 3 } 1377// -- obj2 = { c: 4, d: 5 } 1378// -- obj3 = merge(obj1, obj2) 1379// -- // { a: 1, b: 2, c: 4, d: 5 } 1380// -- obj3 === obj1 1381// -- // false 1382// -- 1383// -- // The same object is returned if there are no changes: 1384// -- merge(obj1, { c: 3 }) === obj1 1385// -- // true 1386// -- ``` 1387function merge(a, b, c, d, e, f) { 1388 for (var _len2 = arguments.length, rest = Array(_len2 > 6 ? _len2 - 6 : 0), _key2 = 6; _key2 < _len2; _key2++) { 1389 rest[_key2 - 6] = arguments[_key2]; 1390 } 1391 1392 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); 1393} 1394 1395// -- #### mergeDeep() 1396// -- Returns a new object built as follows: the overlapping keys from the 1397// -- second one overwrite the corresponding entries from the first one. 1398// -- If both the first and second entries are objects they are merged recursively. 1399// -- Similar to `Object.assign()`, but immutable, and deeply merging. 1400// -- 1401// -- Usage: 1402// -- 1403// -- * `mergeDeep(obj1: Object, obj2: ?Object): Object` 1404// -- * `mergeDeep(obj1: Object, ...objects: Array<?Object>): Object` 1405// -- 1406// -- The unmodified `obj1` is returned if `obj2` does not *provide something 1407// -- new to* `obj1`, i.e. if either of the following 1408// -- conditions are true: 1409// -- 1410// -- * `obj2` is `null` or `undefined` 1411// -- * `obj2` is an object, but it is empty 1412// -- * All attributes of `obj2` are `undefined` 1413// -- * All attributes of `obj2` are referentially equal to the
1414// -- corresponding attributes of `obj1` 1415// -- 1416// -- Note that `undefined` attributes in `obj2` do not modify the 1417// -- corresponding attributes in `obj1`. 1418// -- 1419// -- ```js 1420// -- obj1 = { a: 1, b: 2, c: { a: 1 } } 1421// -- obj2 = { b: 3, c: { b: 2 } } 1422// -- obj3 = mergeDeep(obj1, obj2) 1423// -- // { a: 1, b: 3, c: { a: 1, b: 2 } } 1424// -- obj3 === obj1 1425// -- // false 1426// -- 1427// -- // The same object is returned if there are no changes: 1428// -- mergeDeep(obj1, { c: { a: 1 } }) === obj1 1429// -- // true 1430// -- ``` 1431function mergeDeep(a, b, c, d, e, f) { 1432 for (var _len3 = arguments.length, rest = Array(_len3 > 6 ? _len3 - 6 : 0), _key3 = 6; _key3 < _len3; _key3++) { 1433 rest[_key3 - 6] = arguments[_key3]; 1434 } 1435 1436 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); 1437} 1438 1439// -- #### mergeIn() 1440// -- Similar to `merge()`, but merging the value at a given nested path. 1441// -- Note that the returned type is the same as that of the first argument. 1442// -- 1443// -- Usage: 1444// -- 1445// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, obj2: ?Object): T` 1446// -- * `mergeIn<T: ArrayOrObject>(obj1: T, path: Array<Key>, 1447// -- ...objects: Array<?Object>): T` 1448// -- 1449// -- ```js 1450// -- obj1 = { a: 1, d: { b: { d1: 3, d2: 4 } } } 1451// -- obj2 = { d3: 5 } 1452// -- obj3 = mergeIn(obj1, ['d', 'b'], obj2) 1453// -- // { a: 1, d: { b: { d1: 3, d2: 4, d3: 5 } } } 1454// -- obj3 === obj1 1455// -- // false 1456// -- 1457// -- // The same object is returned if there are no changes: 1458// -- mergeIn(obj1, ['d', 'b'], { d2: 4 }) === obj1 1459// -- // true 1460// -- ``` 1461function mergeIn(a, path, b, c, d, e, f) { 1462 var prevVal = getIn(a, path); 1463 if (prevVal == null) prevVal = {}; 1464 var nextVal = void 0; 1465 1466 for (var _len4 = arguments.length, rest = Array(_len4 > 7 ? _len4 - 7 : 0), _key4 = 7; _key4 < _len4; _key4++) { 1467 rest[_key4 - 7] = arguments[_key4]; 1468 } 1469 1470 if (rest.length) { 1471 nextVal = doMerge.call.apply(doMerge, [null, false, false, prevVal, b, c, d, e, f].concat(rest)); 1472 } else { 1473 nextVal = doMerge(false, false, prevVal, b, c, d, e, f); 1474 } 1475 return setIn(a, path, nextVal); 1476} 1477 1478// -- #### omit() 1479// -- Returns an object excluding one or several attributes. 1480// -- 1481// -- Usage: `omit(obj: Object, attrs: Array<string>|string): Object` 1482// 1483// -- ```js 1484// -- obj = { a: 1, b: 2, c: 3, d: 4 } 1485// -- omit(obj, 'a') 1486// -- // { b: 2, c: 3, d: 4 } 1487// -- omit(obj, ['b', 'c']) 1488// -- // { a: 1, d: 4 } 1489// -- 1490// -- // The same object is returned if there are no changes: 1491// -- omit(obj, 'z') === obj1 1492// -- // true 1493// -- ``` 1494function omit(obj, attrs) { 1495 var omitList = Array.isArray(attrs) ? attrs : [attrs]; 1496 var fDoSomething = false; 1497 for (var i = 0; i < omitList.length; i++) { 1498 if (hasOwnProperty.call(obj, omitList[i])) { 1499 fDoSomething = true; 1500 break; 1501 } 1502 } 1503 if (!fDoSomething) return obj; 1504 var out = {}; 1505 var keys = getKeysAndSymbols(obj); 1506 for (var _i = 0; _i < keys.length; _i++) { 1507 var key = keys[_i]; 1508 if (omitList.indexOf(key) >= 0) continue; 1509 out[key] = obj[key]; 1510 } 1511 return out; 1512} 1513 1514// -- #### addDefaults() 1515// -- Returns a new object built as follows: `undefined` keys in the first one 1516// -- are filled in with the corresponding values from the second one 1517// -- (even if they are `null`). 1518// -- 1519// -- Usage: 1520// -- 1521// -- * `addDefaults(obj: Object, defaults: Object): Object` 1522// -- * `addDefaults(obj: Object, ...defaultObjects: Array<?Object>): Object` 1523// -- 1524// -- ```js 1525// -- obj1 = { a: 1, b: 2, c: 3 } 1526// -- obj2 = { c: 4, d: 5, e: null } 1527// -- obj3 = addDefaults(obj1, obj2) 1528// -- // { a: 1, b: 2, c: 3, d: 5, e: null } 1529// -- obj3 === obj1 1530// -- // false 1531// -- 1532// -- // The same object is returned if there are no changes: 1533// -- addDefaults(obj1, { c: 4 }) === obj1 1534// -- // true 1535// -- ``` 1536function addDefaults(a, b, c, d, e, f) { 1537 for (var _len5 = arguments.length, rest = Array(_len5 > 6 ? _len5 - 6 : 0), _key5 = 6; _key5 < _len5; _key5++) { 1538 rest[_key5 - 6] = arguments[_key5]; 1539 } 1540 1541 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); 1542} 1543 1544// =============================================== 1545// ### Public API 1546// =============================================== 1547var timm = { 1548 clone: clone, 1549 addLast: addLast, 1550 addFirst: addFirst, 1551 removeLast: removeLast, 1552 removeFirst: removeFirst, 1553 insert: insert, 1554 removeAt: removeAt, 1555 replaceAt: replaceAt, 1556 1557 getIn: getIn, 1558 // eslint-disable-next-line object-shorthand 1559 set: set, // so that flow doesn't complain 1560 setIn: setIn, 1561 update: update, 1562 updateIn: updateIn, 1563 merge: merge, 1564 mergeDeep: mergeDeep, 1565 mergeIn: mergeIn, 1566 omit: omit, 1567 addDefaults: addDefaults 1568}; 1569 1570exports.default = timm; 1571 1572 1573/***/ }), 1574/* 19 */ 1575/***/ (function(module, exports, __webpack_require__) { 1576 1577var root = __webpack_require__(5); 1578 1579/** Built-in value references. */ 1580var Symbol = root.Symbol; 1581 1582module.exports = Symbol; 1583 1584 1585/***/ }), 1586/* 20 */ 1587/***/ (function(module, exports, __webpack_require__) { 1588 1589var isSymbol = __webpack_require__(37); 1590 1591/** Used as references for various `Number` constants. */ 1592var INFINITY = 1 / 0; 1593 1594/** 1595 * Converts `value` to a string key if it's not a string or symbol. 1596 * 1597 * @private 1598 * @param {*} value The value to inspect. 1599 * @returns {string|symbol} Returns the key. 1600 */ 1601function toKey(value) { 1602 if (typeof value == 'string' || isSymbol(value)) { 1603 return value; 1604 } 1605 var result = (value + ''); 1606 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 1607} 1608 1609module.exports = toKey; 1610 1611 1612/***/ }), 1613/* 21 */
1614/***/ (function(module, exports) { 1615 1616function _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); } 1617 1618function _typeof(obj) { 1619 if (typeof Symbol === "function" && _typeof2(Symbol.iterator) === "symbol") { 1620 module.exports = _typeof = function _typeof(obj) { 1621 return _typeof2(obj); 1622 }; 1623 } else { 1624 module.exports = _typeof = function _typeof(obj) { 1625 return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : _typeof2(obj); 1626 }; 1627 } 1628 1629 return _typeof(obj); 1630} 1631 1632module.exports = _typeof; 1633 1634/***/ }), 1635/* 22 */ 1636/***/ (function(module, exports, __webpack_require__) { 1637 1638"use strict"; 1639// @wf-will-never-add-flow-to-this-file 1640 1641/* globals window, document */ 1642 1643/* eslint-disable no-var */ 1644// eslint-disable-next-line strict 1645 1646 1647var IXEvents = __webpack_require__(123); 1648 1649function dispatchCustomEvent(element, eventName) { 1650 var event = document.createEvent('CustomEvent'); 1651 event.initCustomEvent(eventName, true, true, null); 1652 element.dispatchEvent(event); 1653} 1654/** 1655 * Webflow: IX Event triggers for other modules 1656 */ 1657 1658 1659var $ = window.jQuery; 1660var api = {}; 1661var namespace = '.w-ix'; 1662var eventTriggers = { 1663 reset: function reset(i, el) { 1664 IXEvents.triggers.reset(i, el); 1665 }, 1666 intro: function intro(i, el) { 1667 IXEvents.triggers.intro(i, el); 1668 dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); 1669 }, 1670 outro: function outro(i, el) { 1671 IXEvents.triggers.outro(i, el); 1672 dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); 1673 } 1674}; 1675api.triggers = {}; 1676api.types = { 1677 INTRO: 'w-ix-intro' + namespace, 1678 OUTRO: 'w-ix-outro' + namespace 1679}; 1680$.extend(api.triggers, eventTriggers); 1681module.exports = api; 1682 1683/***/ }), 1684/* 23 */ 1685/***/ (function(module, exports) { 1686 1687var g; 1688 1689// This works in non-strict mode 1690g = (function() { 1691 return this; 1692})(); 1693 1694try { 1695 // This works if eval is allowed (see CSP) 1696 g = g || new Function("return this")(); 1697} catch (e) { 1698 // This works if the window reference is available 1699 if (typeof window === "object") g = window; 1700} 1701 1702// g can still be undefined, but nothing to do about it... 1703// We return undefined, instead of nothing here, so it's 1704// easier to handle this case. if(!global) { ...} 1705 1706module.exports = g; 1707 1708 1709/***/ }), 1710/* 24 */ 1711/***/ (function(module, exports) { 1712 1713module.exports = function (it) { 1714 return typeof it === 'object' ? it !== null : typeof it === 'function'; 1715}; 1716 1717 1718/***/ }), 1719/* 25 */ 1720/***/ (function(module, exports, __webpack_require__) { 1721 1722var isObject = __webpack_require__(24); 1723 1724module.exports = function (it) { 1725 if (!isObject(it)) { 1726 throw TypeError(String(it) + ' is not an object'); 1727 } return it; 1728}; 1729 1730 1731/***/ }), 1732/* 26 */ 1733/***/ (function(module, exports, __webpack_require__) { 1734 1735var global = __webpack_require__(4); 1736var setGlobal = __webpack_require__(40); 1737var IS_PURE = __webpack_require__(135); 1738 1739var SHARED = '__core-js_shared__'; 1740var store = global[SHARED] || setGlobal(SHARED, {}); 1741 1742(module.exports = function (key, value) { 1743 return store[key] || (store[key] = value !== undefined ? value : {}); 1744})('versions', []).push({ 1745 version: '3.1.3', 1746 mode: IS_PURE ? 'pure' : 'global', 1747 copyright: '© 2019 Denis Pushkarev (zloirock.ru)' 1748}); 1749 1750 1751/***/ }), 1752/* 27 */ 1753/***/ (function(module, exports) { 1754 1755function _defineProperty(obj, key, value) { 1756 if (key in obj) { 1757 Object.defineProperty(obj, key, { 1758 value: value, 1759 enumerable: true, 1760 configurable: true, 1761 writable: true 1762 }); 1763 } else { 1764 obj[key] = value; 1765 } 1766 1767 return obj; 1768} 1769 1770module.exports = _defineProperty; 1771 1772/***/ }), 1773/* 28 */ 1774/***/ (function(module, exports) { 1775 1776function _extends() { 1777 module.exports = _extends = Object.assign || function (target) { 1778 for (var i = 1; i < arguments.length; i++) { 1779 var source = arguments[i]; 1780 1781 for (var key in source) { 1782 if (Object.prototype.hasOwnProperty.call(source, key)) { 1783 target[key] = source[key]; 1784 } 1785 } 1786 } 1787 1788 return target; 1789 }; 1790 1791 return _extends.apply(this, arguments); 1792} 1793 1794module.exports = _extends; 1795 1796/***/ }), 1797/* 29 */ 1798/***/ (function(module, exports, __webpack_require__) { 1799 1800var listCacheClear = __webpack_require__(178), 1801 listCacheDelete = __webpack_require__(179), 1802 listCacheGet = __webpack_require__(180), 1803 listCacheHas = __webpack_require__(181), 1804 listCacheSet = __webpack_require__(182); 1805 1806/** 1807 * Creates an list cache object. 1808 * 1809 * @private 1810 * @constructor 1811 * @param {Array} [entries] The key-value pairs to cache. 1812 */ 1813function ListCache(entries) { 1814 var index = -1, 1815 length = entries == null ? 0 : entries.length; 1816 1817 this.clear(); 1818 while (++index < length) { 1819 var entry = entries[index]; 1820 this.set(entry[0], entry[1]); 1821 } 1822} 1823 1824// Add methods to `ListCache`. 1825ListCache.prototype.clear = listCacheClear; 1826ListCache.prototype['delete'] = listCacheDelete; 1827ListCache.prototype.get = listCacheGet; 1828ListCache.prototype.has = listCacheHas; 1829ListCache.prototype.set = listCacheSet; 1830
vendor: 4,828 bytes, lines 1831-2036
1831module.exports = ListCache; 1832 1833 1834/***/ }), 1835/* 30 */ 1836/***/ (function(module, exports, __webpack_require__) { 1837 1838var eq = __webpack_require__(46); 1839 1840/** 1841 * Gets the index at which the `key` is found in `array` of key-value pairs. 1842 * 1843 * @private 1844 * @param {Array} array The array to inspect. 1845 * @param {*} key The key to search for. 1846 * @returns {number} Returns the index of the matched value, else `-1`. 1847 */ 1848function assocIndexOf(array, key) { 1849 var length = array.length; 1850 while (length--) { 1851 if (eq(array[length][0], key)) { 1852 return length; 1853 } 1854 } 1855 return -1; 1856} 1857 1858module.exports = assocIndexOf; 1859 1860 1861/***/ }), 1862/* 31 */ 1863/***/ (function(module, exports, __webpack_require__) { 1864 1865var getNative = __webpack_require__(8); 1866 1867/* Built-in method references that are verified to be native. */ 1868var nativeCreate = getNative(Object, 'create'); 1869 1870module.exports = nativeCreate; 1871 1872 1873/***/ }), 1874/* 32 */ 1875/***/ (function(module, exports, __webpack_require__) { 1876 1877var isKeyable = __webpack_require__(202); 1878 1879/** 1880 * Gets the data for `map`. 1881 * 1882 * @private 1883 * @param {Object} map The map to query. 1884 * @param {string} key The reference key. 1885 * @returns {*} Returns the map data. 1886 */ 1887function getMapData(map, key) { 1888 var data = map.__data__; 1889 return isKeyable(key) 1890 ? data[typeof key == 'string' ? 'string' : 'hash'] 1891 : data.map; 1892} 1893 1894module.exports = getMapData; 1895 1896 1897/***/ }), 1898/* 33 */ 1899/***/ (function(module, exports, __webpack_require__) { 1900 1901var arrayLikeKeys = __webpack_require__(96), 1902 baseKeys = __webpack_require__(54), 1903 isArrayLike = __webpack_require__(12); 1904 1905/** 1906 * Creates an array of the own enumerable property names of `object`. 1907 * 1908 * **Note:** Non-object values are coerced to objects. See the 1909 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 1910 * for more details. 1911 * 1912 * @static 1913 * @since 0.1.0 1914 * @memberOf _ 1915 * @category Object 1916 * @param {Object} object The object to query. 1917 * @returns {Array} Returns the array of property names. 1918 * @example 1919 * 1920 * function Foo() { 1921 * this.a = 1; 1922 * this.b = 2; 1923 * } 1924 * 1925 * Foo.prototype.c = 3; 1926 * 1927 * _.keys(new Foo); 1928 * // => ['a', 'b'] (iteration order is not guaranteed) 1929 * 1930 * _.keys('hi'); 1931 * // => ['0', '1'] 1932 */ 1933function keys(object) { 1934 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 1935} 1936 1937module.exports = keys; 1938 1939 1940/***/ }), 1941/* 34 */ 1942/***/ (function(module, exports, __webpack_require__) { 1943 1944var baseIsArguments = __webpack_require__(220), 1945 isObjectLike = __webpack_require__(9); 1946 1947/** Used for built-in method references. */ 1948var objectProto = Object.prototype; 1949 1950/** Used to check objects for own properties. */ 1951var hasOwnProperty = objectProto.hasOwnProperty; 1952 1953/** Built-in value references. */ 1954var propertyIsEnumerable = objectProto.propertyIsEnumerable; 1955 1956/** 1957 * Checks if `value` is likely an `arguments` object. 1958 * 1959 * @static 1960 * @memberOf _ 1961 * @since 0.1.0 1962 * @category Lang 1963 * @param {*} value The value to check. 1964 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 1965 * else `false`. 1966 * @example 1967 * 1968 * _.isArguments(function() { return arguments; }()); 1969 * // => true 1970 * 1971 * _.isArguments([1, 2, 3]); 1972 * // => false 1973 */ 1974var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { 1975 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && 1976 !propertyIsEnumerable.call(value, 'callee'); 1977}; 1978 1979module.exports = isArguments; 1980 1981 1982/***/ }), 1983/* 35 */ 1984/***/ (function(module, exports, __webpack_require__) { 1985 1986var baseGet = __webpack_require__(57); 1987 1988/** 1989 * Gets the value at `path` of `object`. If the resolved value is 1990 * `undefined`, the `defaultValue` is returned in its place. 1991 * 1992 * @static 1993 * @memberOf _ 1994 * @since 3.7.0 1995 * @category Object 1996 * @param {Object} object The object to query. 1997 * @param {Array|string} path The path of the property to get. 1998 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 1999 * @returns {*} Returns the resolved value. 2000 * @example 2001 * 2002 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 2003 * 2004 * _.get(object, 'a[0].b.c'); 2005 * // => 3 2006 * 2007 * _.get(object, ['a', '0', 'b', 'c']); 2008 * // => 3 2009 * 2010 * _.get(object, 'a.b.c', 'default'); 2011 * // => 'default' 2012 */ 2013function get(object, path, defaultValue) { 2014 var result = object == null ? undefined : baseGet(object, path); 2015 return result === undefined ? defaultValue : result; 2016} 2017 2018module.exports = get; 2019 2020 2021/***/ }), 2022/* 36 */ 2023/***/ (function(module, exports, __webpack_require__) { 2024 2025var isArray = __webpack_require__(1), 2026 isKey = __webpack_require__(58), 2027 stringToPath = __webpack_require__(231), 2028 toString = __webpack_require__(234); 2029 2030/** 2031 * Casts `value` to a path array if it's not one. 2032 * 2033 * @private 2034 * @param {*} value The value to inspect. 2035 * @param {Object} [object] The object to query keys on. 2036 * @returns {Array} Returns the cast property path array.
2037 */ 2038function castPath(value, object) { 2039 if (isArray(value)) { 2040 return value; 2041 } 2042 return isKey(value, object) ? [value] : stringToPath(toString(value)); 2043} 2044 2045module.exports = castPath; 2046 2047 2048/***/ }), 2049/* 37 */ 2050/***/ (function(module, exports, __webpack_require__) { 2051 2052var baseGetTag = __webpack_require__(11), 2053 isObjectLike = __webpack_require__(9); 2054 2055/** `Object#toString` result references. */ 2056var symbolTag = '[object Symbol]'; 2057 2058/** 2059 * Checks if `value` is classified as a `Symbol` primitive or object. 2060 * 2061 * @static 2062 * @memberOf _ 2063 * @since 4.0.0 2064 * @category Lang 2065 * @param {*} value The value to check. 2066 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 2067 * @example 2068 * 2069 * _.isSymbol(Symbol.iterator); 2070 * // => true 2071 * 2072 * _.isSymbol('abc'); 2073 * // => false 2074 */ 2075function isSymbol(value) { 2076 return typeof value == 'symbol' || 2077 (isObjectLike(value) && baseGetTag(value) == symbolTag); 2078} 2079 2080module.exports = isSymbol; 2081 2082 2083/***/ }), 2084/* 38 */ 2085/***/ (function(module, exports, __webpack_require__) { 2086 2087// toObject with fallback for non-array-like ES3 strings 2088var IndexedObject = __webpack_require__(131); 2089var requireObjectCoercible = __webpack_require__(133); 2090 2091module.exports = function (it) { 2092 return IndexedObject(requireObjectCoercible(it)); 2093}; 2094 2095 2096/***/ }), 2097/* 39 */ 2098/***/ (function(module, exports, __webpack_require__) { 2099 2100var DESCRIPTORS = __webpack_require__(14); 2101var IE8_DOM_DEFINE = __webpack_require__(69); 2102var anObject = __webpack_require__(25); 2103var toPrimitive = __webpack_require__(68); 2104 2105var nativeDefineProperty = Object.defineProperty; 2106 2107// `Object.defineProperty` method 2108// https://tc39.github.io/ecma262/#sec-object.defineproperty 2109exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { 2110 anObject(O); 2111 P = toPrimitive(P, true); 2112 anObject(Attributes); 2113 if (IE8_DOM_DEFINE) try { 2114 return nativeDefineProperty(O, P, Attributes); 2115 } catch (error) { /* empty */ } 2116 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 2117 if ('value' in Attributes) O[P] = Attributes.value; 2118 return O; 2119}; 2120 2121 2122/***/ }), 2123/* 40 */ 2124/***/ (function(module, exports, __webpack_require__) { 2125 2126var global = __webpack_require__(4); 2127var hide = __webpack_require__(17); 2128 2129module.exports = function (key, value) { 2130 try { 2131 hide(global, key, value); 2132 } catch (error) { 2133 global[key] = value; 2134 } return value; 2135}; 2136 2137 2138/***/ }), 2139/* 41 */ 2140/***/ (function(module, exports) { 2141 2142module.exports = {}; 2143 2144 2145/***/ }), 2146/* 42 */ 2147/***/ (function(module, exports) { 2148 2149// IE8- don't enum bug keys 2150module.exports = [ 2151 'constructor', 2152 'hasOwnProperty', 2153 'isPrototypeOf', 2154 'propertyIsEnumerable', 2155 'toLocaleString', 2156 'toString', 2157 'valueOf' 2158]; 2159 2160 2161/***/ }), 2162/* 43 */ 2163/***/ (function(module, __webpack_exports__, __webpack_require__) { 2164 2165"use strict"; 2166__webpack_require__.r(__webpack_exports__); 2167/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); 2168/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); 2169/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(79); 2170/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(164); 2171 2172 2173 2174/** 2175 * These are private action types reserved by Redux. 2176 * For any unknown actions, you must return the current state. 2177 * If the current state is undefined, you must return the initial state. 2178 * Do not reference these action types directly in your code. 2179 */ 2180var ActionTypes = { 2181 INIT: '@@redux/INIT' 2182}; 2183 2184/** 2185 * Creates a Redux store that holds the state tree. 2186 * The only way to change the data in the store is to call `dispatch()` on it. 2187 *
2188 * There should only be a single store in your app. To specify how different 2189 * parts of the state tree respond to actions, you may combine several reducers 2190 * into a single reducer function by using `combineReducers`. 2191 * 2192 * @param {Function} reducer A function that returns the next state tree, given 2193 * the current state tree and the action to handle. 2194 * 2195 * @param {any} [preloadedState] The initial state. You may optionally specify it 2196 * to hydrate the state from the server in universal apps, or to restore a 2197 * previously serialized user session. 2198 * If you use `combineReducers` to produce the root reducer function, this must be 2199 * an object with the same shape as `combineReducers` keys. 2200 * 2201 * @param {Function} enhancer The store enhancer. You may optionally specify it 2202 * to enhance the store with third-party capabilities such as middleware, 2203 * time travel, persistence, etc. The only store enhancer that ships with Redux 2204 * is `applyMiddleware()`. 2205 * 2206 * @returns {Store} A Redux store that lets you read the state, dispatch actions 2207 * and subscribe to changes. 2208 */ 2209function createStore(reducer, preloadedState, enhancer) { 2210 var _ref2; 2211 2212 if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { 2213 enhancer = preloadedState; 2214 preloadedState = undefined; 2215 } 2216 2217 if (typeof enhancer !== 'undefined') { 2218 if (typeof enhancer !== 'function') { 2219 throw new Error('Expected the enhancer to be a function.'); 2220 } 2221 2222 return enhancer(createStore)(reducer, preloadedState); 2223 } 2224 2225 if (typeof reducer !== 'function') { 2226 throw new Error('Expected the reducer to be a function.'); 2227 } 2228 2229 var currentReducer = reducer; 2230 var currentState = preloadedState; 2231 var currentListeners = []; 2232 var nextListeners = currentListeners; 2233 var isDispatching = false; 2234 2235 function ensureCanMutateNextListeners() { 2236 if (nextListeners === currentListeners) { 2237 nextListeners = currentListeners.slice(); 2238 } 2239 } 2240 2241 /** 2242 * Reads the state tree managed by the store. 2243 * 2244 * @returns {any} The current state tree of your application. 2245 */ 2246 function getState() { 2247 return currentState; 2248 } 2249 2250 /** 2251 * Adds a change listener. It will be called any time an action is dispatched, 2252 * and some part of the state tree may potentially have changed. You may then 2253 * call `getState()` to read the current state tree inside the callback. 2254 * 2255 * You may call `dispatch()` from a change listener, with the following 2256 * caveats: 2257 * 2258 * 1. The subscriptions are snapshotted just before every `dispatch()` call. 2259 * If you subscribe or unsubscribe while the listeners are being invoked, this 2260 * will not have any effect on the `dispatch()` that is currently in progress. 2261 * However, the next `dispatch()` call, whether nested or not, will use a more 2262 * recent snapshot of the subscription list. 2263 * 2264 * 2. The listener should not expect to see all state changes, as the state 2265 * might have been updated multiple times during a nested `dispatch()` before 2266 * the listener is called. It is, however, guaranteed that all subscribers 2267 * registered before the `dispatch()` started will be called with the latest 2268 * state by the time it exits. 2269 * 2270 * @param {Function} listener A callback to be invoked on every dispatch. 2271 * @returns {Function} A function to remove this change listener. 2272 */ 2273 function subscribe(listener) { 2274 if (typeof listener !== 'function') { 2275 throw new Error('Expected listener to be a function.'); 2276 } 2277 2278 var isSubscribed = true; 2279 2280 ensureCanMutateNextListeners(); 2281 nextListeners.push(listener); 2282 2283 return function unsubscribe() { 2284 if (!isSubscribed) { 2285 return; 2286 } 2287 2288 isSubscribed = false; 2289 2290 ensureCanMutateNextListeners(); 2291 var index = nextListeners.indexOf(listener); 2292 nextListeners.splice(index, 1); 2293 }; 2294 } 2295 2296 /** 2297 * Dispatches an action. It is the only way to trigger a state change. 2298 * 2299 * The `reducer` function, used to create the store, will be called with the 2300 * current state tree and the given `action`. Its return value will 2301 * be considered the **next** state of the tree, and the change listeners 2302 * will be notified. 2303 * 2304 * The base implementation only supports plain object actions. If you want to 2305 * dispatch a Promise, an Observable, a thunk, or something else, you need to 2306 * wrap your store creating function into the corresponding middleware. For 2307 * example, see the documentation for the `redux-thunk` package. Even the 2308 * middleware will eventually dispatch plain object actions using this method. 2309 * 2310 * @param {Object} action A plain object representing âwhat changedâ. It is 2311 * a good idea to keep actions serializable so you can record and replay user 2312 * sessions, or use the time travelling `redux-devtools`. An action must have 2313 * a `type` property which may not be `undefined`. It is a good idea to use 2314 * string constants for action types. 2315 * 2316 * @returns {Object} For convenience, the same action object you dispatched. 2317 * 2318 * Note that, if you use a custom middleware, it may wrap `dispatch()` to 2319 * return something else (for example, a Promise you can await). 2320 */ 2321 function dispatch(action) { 2322 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { 2323 throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); 2324 } 2325 2326 if (typeof action.type === 'undefined') { 2327 throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); 2328 } 2329 2330 if (isDispatching) { 2331 throw new Error('Reducers may not dispatch actions.'); 2332 } 2333 2334 try { 2335 isDispatching = true; 2336 currentState = currentReducer(currentState, action); 2337 } finally { 2338 isDispatching = false;
2339 } 2340 2341 var listeners = currentListeners = nextListeners; 2342 for (var i = 0; i < listeners.length; i++) { 2343 listeners[i](); 2344 } 2345 2346 return action; 2347 } 2348 2349 /** 2350 * Replaces the reducer currently used by the store to calculate the state. 2351 * 2352 * You might need this if your app implements code splitting and you want to 2353 * load some of the reducers dynamically. You might also need this if you 2354 * implement a hot reloading mechanism for Redux. 2355 * 2356 * @param {Function} nextReducer The reducer for the store to use instead. 2357 * @returns {void} 2358 */ 2359 function replaceReducer(nextReducer) { 2360 if (typeof nextReducer !== 'function') { 2361 throw new Error('Expected the nextReducer to be a function.'); 2362 } 2363 2364 currentReducer = nextReducer; 2365 dispatch({ type: ActionTypes.INIT }); 2366 } 2367 2368 /** 2369 * Interoperability point for observable/reactive libraries. 2370 * @returns {observable} A minimal observable of state changes. 2371 * For more information, see the observable proposal: 2372 * https://github.com/zenparsing/es-observable 2373 */ 2374 function observable() { 2375 var _ref; 2376 2377 var outerSubscribe = subscribe; 2378 return _ref = { 2379 /** 2380 * The minimal observable subscription method. 2381 * @param {Object} observer Any object that can be used as an observer. 2382 * The observer object should have a `next` method. 2383 * @returns {subscription} An object with an `unsubscribe` method that can 2384 * be used to unsubscribe the observable from the store, and prevent further 2385 * emission of values from the observable. 2386 */ 2387 subscribe: function subscribe(observer) { 2388 if (typeof observer !== 'object') { 2389 throw new TypeError('Expected the observer to be an object.'); 2390 } 2391 2392 function observeState() { 2393 if (observer.next) { 2394 observer.next(getState()); 2395 } 2396 } 2397 2398 observeState(); 2399 var unsubscribe = outerSubscribe(observeState); 2400 return { unsubscribe: unsubscribe }; 2401 } 2402 }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { 2403 return this; 2404 }, _ref; 2405 } 2406 2407 // When a store is created, an "INIT" action is dispatched so that every 2408 // reducer returns their initial state. This effectively populates 2409 // the initial state tree. 2410 dispatch({ type: ActionTypes.INIT }); 2411 2412 return _ref2 = { 2413 dispatch: dispatch, 2414 subscribe: subscribe, 2415 getState: getState, 2416 replaceReducer: replaceReducer 2417 }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; 2418} 2419 2420/***/ }), 2421/* 44 */ 2422/***/ (function(module, __webpack_exports__, __webpack_require__) { 2423 2424"use strict"; 2425__webpack_require__.r(__webpack_exports__); 2426/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); 2427/** 2428 * Composes single-argument functions from right to left. The rightmost 2429 * function can take multiple arguments as it provides the signature for 2430 * the resulting composite function. 2431 * 2432 * @param {...Function} funcs The functions to compose. 2433 * @returns {Function} A function obtained by composing the argument functions 2434 * from right to left. For example, compose(f, g, h) is identical to doing 2435 * (...args) => f(g(h(...args))). 2436 */ 2437 2438function compose() { 2439 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { 2440 funcs[_key] = arguments[_key]; 2441 } 2442 2443 if (funcs.length === 0) { 2444 return function (arg) { 2445 return arg; 2446 }; 2447 } 2448 2449 if (funcs.length === 1) { 2450 return funcs[0]; 2451 } 2452 2453 var last = funcs[funcs.length - 1]; 2454 var rest = funcs.slice(0, -1); 2455 return function () { 2456 return rest.reduceRight(function (composed, f) { 2457 return f(composed); 2458 }, last.apply(undefined, arguments)); 2459 }; 2460} 2461 2462/***/ }), 2463/* 45 */ 2464/***/ (function(module, exports, __webpack_require__) { 2465 2466"use strict"; 2467 2468 2469var _interopRequireDefault = __webpack_require__(0); 2470 2471Object.defineProperty(exports, "__esModule", { 2472 value: true 2473}); 2474exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROW
2474SER_ENV = void 0; 2475 2476var _find = _interopRequireDefault(__webpack_require__(85)); 2477/* eslint-env browser */ 2478 2479 2480var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe 2481 2482exports.IS_BROWSER_ENV = IS_BROWSER_ENV; 2483 2484var withBrowser = function withBrowser(fn, fallback) { 2485 if (IS_BROWSER_ENV) { 2486 return fn(); 2487 } 2488 2489 return fallback; 2490}; 2491 2492exports.withBrowser = withBrowser; 2493var ELEMENT_MATCHES = withBrowser(function () { 2494 return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { 2495 return key in Element.prototype; 2496 }); 2497}); 2498exports.ELEMENT_MATCHES = ELEMENT_MATCHES; 2499var FLEX_PREFIXED = withBrowser(function () { 2500 var el = document.createElement('i'); 2501 var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; 2502 var none = ''; 2503 2504 try { 2505 var length = values.length; 2506 2507 for (var i = 0; i < length; i++) { 2508 var value = values[i]; 2509 el.style.display = value; 2510 2511 if (el.style.display === value) { 2512 return value; 2513 } 2514 } 2515 2516 return none; 2517 } catch (err) { 2518 return none; 2519 } 2520}, 'flex'); 2521exports.FLEX_PREFIXED = FLEX_PREFIXED; 2522var TRANSFORM_PREFIXED = withBrowser(function () { 2523 var el = document.createElement('i'); 2524 2525 if (el.style.transform == null) { 2526 var prefixes = ['Webkit', 'Moz', 'ms']; 2527 var suffix = 'Transform'; 2528 var length = prefixes.length; 2529 2530 for (var i = 0; i < length; i++) { 2531 var prop = prefixes[i] + suffix; // $FlowFixMe 2532 2533 if (el.style[prop] !== undefined) { 2534 return prop; 2535 } 2536 } 2537 } 2538 2539 return 'transform'; 2540}, 'transform'); // $FlowFixMe 2541 2542exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; 2543var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; 2544var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; 2545exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; 2546 2547/***/ }), 2548/* 46 */ 2549/***/ (function(module, exports) { 2550 2551/** 2552 * Performs a 2553 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 2554 * comparison between two values to determine if they are equivalent. 2555 * 2556 * @static 2557 * @memberOf _ 2558 * @since 4.0.0 2559 * @category Lang 2560 * @param {*} value The value to compare. 2561 * @param {*} other The other value to compare. 2562 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 2563 * @example 2564 * 2565 * var object = { 'a': 1 }; 2566 * var other = { 'a': 1 }; 2567 * 2568 * _.eq(object, object); 2569 * // => true 2570 * 2571 * _.eq(object, other); 2572 * // => false 2573 * 2574 * _.eq('a', 'a'); 2575 * // => true 2576 * 2577 * _.eq('a', Object('a')); 2578 * // => false 2579 * 2580 * _.eq(NaN, NaN); 2581 * // => true 2582 */ 2583function eq(value, other) { 2584 return value === other || (value !== value && other !== other); 2585} 2586 2587module.exports = eq; 2588 2589 2590/***/ }), 2591/* 47 */ 2592/***/ (function(module, exports, __webpack_require__) { 2593 2594var getNative = __webpack_require__(8), 2595 root = __webpack_require__(5); 2596 2597/* Built-in method references that are verified to be native. */ 2598var Map = getNative(root, 'Map'); 2599 2600module.exports = Map; 2601 2602 2603/***/ }), 2604/* 48 */ 2605/***/ (function(module, exports, __webpack_require__) { 2606 2607var mapCacheClear = __webpack_require__(194), 2608 mapCacheDelete = __webpack_require__(201), 2609 mapCacheGet = __webpack_require__(203), 2610 mapCacheHas = __webpack_require__(204), 2611 mapCacheSet = __webpack_require__(205); 2612 2613/** 2614 * Creates a map cache object to store key-value pairs. 2615 * 2616 * @private 2617 * @constructor 2618 * @param {Array} [entries] The key-value pairs to cache. 2619 */ 2620function MapCache(entries) { 2621 var index = -1, 2622 length = entries == null ? 0 : entries.length; 2623 2624 this.clear(); 2625 while (++index < length) { 2626 var entry = entries[index]; 2627 this.set(entry[0], entry[1]); 2628 } 2629} 2630 2631// Add methods to `MapCache`. 2632MapCache.prototype.clear = mapCacheClear; 2633MapCache.prototype['delete'] = mapCacheDelete; 2634MapCache.prototype.get = mapCacheGet; 2635MapCache.prototype.has = mapCacheHas; 2636MapCache.prototype.set = mapCacheSet; 2637 2638module.exports = MapCache; 2639 2640 2641/***/ }), 2642/* 49 */ 2643/***/ (function(module, exports) { 2644 2645/** 2646 * Appends the elements of `values` to `array`. 2647 * 2648 * @private 2649 * @param {Array} array The array to modify. 2650 * @param {Array} values The values to append. 2651 * @returns {Array} Returns `array`. 2652 */ 2653function arrayPush(array, values) { 2654 var index = -1, 2655 length = values.length, 2656 offset = array.length; 2657 2658 while (++index < length) { 2659 array[offset + index] = values[index]; 2660 } 2661 return array; 2662} 2663 2664module.exports = arrayPush; 2665 2666 2667/***/ }), 2668/* 50 */ 2669/***/ (function(module, exports, __webpack_require__) { 2670 2671/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(5), 2672 stubFalse = __webpack_require__(221); 2673 2674/** Detect free variable `exports`. */ 2675var freeExports = true && exports && !exports.nodeType && exports; 2676 2677/** Detect free variable `module`. */ 2678var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 2679 2680/** Detect the popular CommonJS extension `module.exports`. */ 2681var moduleExports = freeModule && freeModule.exports === freeExports; 2682 2683/** Built-in value references. */ 2684var Buffer = moduleExports ? root.Buffer : undefined; 2685 2686/* Built-in method references for those with the same name as other `lodash` methods. */ 2687var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; 2688 2689/** 2690 * Checks if `value` is a buffer. 2691 * 2692 * @static 2693 * @memberOf _ 2694 * @since 4.3.0 2695 * @category Lang 2696 * @param {*} value The value to check. 2697 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. 2698 * @example 2699 * 2700 * _.isBuffer(new Buffer(2)); 2701 * // => true 2702 * 2703 * _.isBuffer(new Uint8Array(2)); 2704 * // => false 2705 */ 2706var isBuffer = nativeIsBuffer || stubFalse; 2707 2708module.exports = isBuffer; 2709 2710/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) 2711 2712/***/ }), 2713/* 51 */
vendor: 5,342 bytes, lines 2714-2922
2714/***/ (function(module, exports) { 2715 2716/** Used as references for various `Number` constants. */ 2717var MAX_SAFE_INTEGER = 9007199254740991; 2718 2719/** Used to detect unsigned integer values. */ 2720var reIsUint = /^(?:0|[1-9]\d*)$/; 2721 2722/** 2723 * Checks if `value` is a valid array-like index. 2724 * 2725 * @private 2726 * @param {*} value The value to check. 2727 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 2728 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 2729 */ 2730function isIndex(value, length) { 2731 var type = typeof value; 2732 length = length == null ? MAX_SAFE_INTEGER : length; 2733 2734 return !!length && 2735 (type == 'number' || 2736 (type != 'symbol' && reIsUint.test(value))) && 2737 (value > -1 && value % 1 == 0 && value < length); 2738} 2739 2740module.exports = isIndex; 2741 2742 2743/***/ }), 2744/* 52 */ 2745/***/ (function(module, exports, __webpack_require__) { 2746 2747var baseIsTypedArray = __webpack_require__(222), 2748 baseUnary = __webpack_require__(223), 2749 nodeUtil = __webpack_require__(224); 2750 2751/* Node.js helper references. */ 2752var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 2753 2754/** 2755 * Checks if `value` is classified as a typed array. 2756 * 2757 * @static 2758 * @memberOf _ 2759 * @since 3.0.0 2760 * @category Lang 2761 * @param {*} value The value to check. 2762 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 2763 * @example 2764 * 2765 * _.isTypedArray(new Uint8Array); 2766 * // => true 2767 * 2768 * _.isTypedArray([]); 2769 * // => false 2770 */ 2771var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 2772 2773module.exports = isTypedArray; 2774 2775 2776/***/ }), 2777/* 53 */ 2778/***/ (function(module, exports) { 2779 2780/** Used as references for various `Number` constants. */ 2781var MAX_SAFE_INTEGER = 9007199254740991; 2782 2783/** 2784 * Checks if `value` is a valid array-like length. 2785 * 2786 * **Note:** This method is loosely based on 2787 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 2788 * 2789 * @static 2790 * @memberOf _ 2791 * @since 4.0.0 2792 * @category Lang 2793 * @param {*} value The value to check. 2794 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 2795 * @example 2796 * 2797 * _.isLength(3); 2798 * // => true 2799 * 2800 * _.isLength(Number.MIN_VALUE); 2801 * // => false 2802 * 2803 * _.isLength(Infinity); 2804 * // => false 2805 * 2806 * _.isLength('3'); 2807 * // => false 2808 */ 2809function isLength(value) { 2810 return typeof value == 'number' && 2811 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 2812} 2813 2814module.exports = isLength; 2815 2816 2817/***/ }), 2818/* 54 */ 2819/***/ (function(module, exports, __webpack_require__) { 2820 2821var isPrototype = __webpack_require__(55), 2822 nativeKeys = __webpack_require__(225); 2823 2824/** Used for built-in method references. */ 2825var objectProto = Object.prototype; 2826 2827/** Used to check objects for own properties. */ 2828var hasOwnProperty = objectProto.hasOwnProperty; 2829 2830/** 2831 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. 2832 * 2833 * @private 2834 * @param {Object} object The object to query. 2835 * @returns {Array} Returns the array of property names. 2836 */ 2837function baseKeys(object) { 2838 if (!isPrototype(object)) { 2839 return nativeKeys(object); 2840 } 2841 var result = []; 2842 for (var key in Object(object)) { 2843 if (hasOwnProperty.call(object, key) && key != 'constructor') { 2844 result.push(key); 2845 } 2846 } 2847 return result; 2848} 2849 2850module.exports = baseKeys; 2851 2852 2853/***/ }), 2854/* 55 */ 2855/***/ (function(module, exports) { 2856 2857/** Used for built-in method references. */ 2858var objectProto = Object.prototype; 2859 2860/** 2861 * Checks if `value` is likely a prototype object. 2862 * 2863 * @private 2864 * @param {*} value The value to check. 2865 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 2866 */ 2867function isPrototype(value) { 2868 var Ctor = value && value.constructor, 2869 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 2870 2871 return value === proto; 2872} 2873 2874module.exports = isPrototype; 2875 2876 2877/***/ }), 2878/* 56 */ 2879/***/ (function(module, exports, __webpack_require__) { 2880 2881var DataView = __webpack_require__(226), 2882 Map = __webpack_require__(47), 2883 Promise = __webpack_require__(227), 2884 Set = __webpack_require__(228), 2885 WeakMap = __webpack_require__(99), 2886 baseGetTag = __webpack_require__(11), 2887 toSource = __webpack_require__(90); 2888 2889/** `Object#toString` result references. */ 2890var mapTag = '[object Map]', 2891 objectTag = '[object Object]', 2892 promiseTag = '[object Promise]', 2893 setTag = '[object Set]', 2894 weakMapTag = '[object WeakMap]'; 2895 2896var dataViewTag = '[object DataView]'; 2897 2898/** Used to detect maps, sets, and weakmaps. */ 2899var dataViewCtorString = toSource(DataView), 2900 mapCtorString = toSource(Map), 2901 promiseCtorString = toSource(Promise), 2902 setCtorString = toSource(Set), 2903 weakMapCtorString = toSource(WeakMap); 2904 2905/** 2906 * Gets the `toStringTag` of `value`. 2907 * 2908 * @private 2909 * @param {*} value The value to query. 2910 * @returns {string} Returns the `toStringTag`. 2911 */ 2912var getTag = baseGetTag; 2913 2914// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. 2915if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || 2916 (Map && getTag(new Map) != mapTag) || 2917 (Promise && getTag(Promise.resolve()) != promiseTag) || 2918 (Set && getTag(new Set) != setTag) || 2919 (WeakMap && getTag(new WeakMap) != weakMapTag)) { 2920 getTag = function(value) { 2921 var result = baseGetTag(value), 2922 Ctor = result == objectTag ? value.constructor : undefined,
2923 ctorString = Ctor ? toSource(Ctor) : ''; 2924 2925 if (ctorString) { 2926 switch (ctorString) { 2927 case dataViewCtorString: return dataViewTag; 2928 case mapCtorString: return mapTag; 2929 case promiseCtorString: return promiseTag; 2930 case setCtorString: return setTag; 2931 case weakMapCtorString: return weakMapTag; 2932 } 2933 } 2934 return result; 2935 }; 2936} 2937 2938module.exports = getTag; 2939 2940 2941/***/ }), 2942/* 57 */ 2943/***/ (function(module, exports, __webpack_require__) { 2944 2945var castPath = __webpack_require__(36), 2946 toKey = __webpack_require__(20); 2947 2948/** 2949 * The base implementation of `_.get` without support for default values. 2950 * 2951 * @private 2952 * @param {Object} object The object to query. 2953 * @param {Array|string} path The path of the property to get. 2954 * @returns {*} Returns the resolved value. 2955 */ 2956function baseGet(object, path) { 2957 path = castPath(path, object); 2958 2959 var index = 0, 2960 length = path.length; 2961 2962 while (object != null && index < length) { 2963 object = object[toKey(path[index++])]; 2964 } 2965 return (index && index == length) ? object : undefined; 2966} 2967 2968module.exports = baseGet; 2969 2970 2971/***/ }), 2972/* 58 */ 2973/***/ (function(module, exports, __webpack_require__) { 2974 2975var isArray = __webpack_require__(1), 2976 isSymbol = __webpack_require__(37); 2977 2978/** Used to match property names within property paths. */ 2979var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, 2980 reIsPlainProp = /^\w*$/; 2981 2982/** 2983 * Checks if `value` is a property name and not a property path. 2984 * 2985 * @private 2986 * @param {*} value The value to check. 2987 * @param {Object} [object] The object to query keys on. 2988 * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 2989 */ 2990function isKey(value, object) { 2991 if (isArray(value)) { 2992 return false; 2993 } 2994 var type = typeof value; 2995 if (type == 'number' || type == 'symbol' || type == 'boolean' || 2996 value == null || isSymbol(value)) { 2997 return true; 2998 } 2999 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || 3000 (object != null && value in Object(object)); 3001} 3002 3003module.exports = isKey; 3004 3005 3006/***/ }), 3007/* 59 */ 3008/***/ (function(module, exports) { 3009 3010/** 3011 * This method returns the first argument it receives. 3012 * 3013 * @static 3014 * @since 0.1.0 3015 * @memberOf _ 3016 * @category Util 3017 * @param {*} value Any value. 3018 * @returns {*} Returns `value`. 3019 * @example 3020 * 3021 * var object = { 'a': 1 }; 3022 * 3023 * console.log(_.identity(object) === object); 3024 * // => true 3025 */ 3026function identity(value) { 3027 return value; 3028} 3029 3030module.exports = identity; 3031 3032 3033/***/ }), 3034/* 60 */ 3035/***/ (function(module, exports, __webpack_require__) { 3036 3037var isObject = __webpack_require__(6), 3038 isSymbol = __webpack_require__(37); 3039 3040/** Used as references for various `Number` constants. */ 3041var NAN = 0 / 0; 3042 3043/** Used to match leading and trailing whitespace. */ 3044var reTrim = /^\s+|\s+$/g; 3045 3046/** Used to detect bad signed hexadecimal string values. */ 3047var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 3048 3049/** Used to detect binary string values. */ 3050var reIsBinary = /^0b[01]+$/i; 3051 3052/** Used to detect octal string values. */ 3053var reIsOctal = /^0o[0-7]+$/i; 3054 3055/** Built-in method references without a dependency on `root`. */ 3056var freeParseInt = parseInt; 3057 3058/** 3059 * Converts `value` to a number. 3060 * 3061 * @static 3062 * @memberOf _ 3063 * @since 4.0.0 3064 * @category Lang 3065 * @param {*} value The value to process. 3066 * @returns {number} Returns the number. 3067 * @example 3068 * 3069 * _.toNumber(3.2); 3070 * // => 3.2 3071 * 3072 * _.toNumber(Number.MIN_VALUE); 3073 * // => 5e-324 3074 * 3075 * _.toNumber(Infinity); 3076 * // => Infinity 3077 * 3078 * _.toNumber('3.2'); 3079 * // => 3.2 3080 */ 3081function toNumber(value) { 3082 if (typeof value == 'number') { 3083 return value; 3084 } 3085 if (isSymbol(value)) { 3086 return NAN; 3087 } 3088 if (isObject(value)) { 3089 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 3090 value = isObject(other) ? (other + '') : other; 3091 } 3092 if (typeof value != 'string') { 3093 return value === 0 ? value : +value; 3094 } 3095 value = value.replace(reTrim, ''); 3096 var isBinary = reIsBinary.test(value); 3097 return (isBinary || reIsOctal.test(value)) 3098 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 3099 : (reIsBadHex.test(value) ? NAN : +value); 3100} 3101 3102module.exports = toNumber; 3103 3104 3105/***/ }), 3106/* 61 */ 3107/***/ (function(module, exports, __webpack_require__) { 3108 3109"use strict"; 3110 3111 3112var _interopRequireDefault = __webpack_require__(0); 3113 3114Object.defineProperty(exports, "__esModule", { 3115 value: true 3116}); 3117exports.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; 3118 3119var _extends2 = _interopRequireDefault(__webpack_require__(28)); 3120 3121var _constants = __webpack_require__(2); 3122 3123var _shared = __webpack_require__(10); 3124 3125var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
3126 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 3127 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 3128 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 3129 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 3130 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 3131 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 3132 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 3133 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, 3134 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 3135 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 3136 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 3137 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 3138 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, 3139 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 3140 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 3141 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 3142 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, 3143 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 3144 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 3145 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 3146var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it 3147 3148var rawDataImported = function rawDataImported(rawData) { 3149 return { 3150 type: IX2_RAW_DATA_IMPORTED, 3151 payload: (0, _extends2["default"])({}, reifyState(rawData)) 3152 }; 3153}; 3154 3155exports.rawDataImported = rawDataImported; 3156 3157var sessionInitialized = function sessionInitialized(_ref) { 3158 var hasBoundaryNodes = _ref.hasBoundaryNodes; 3159 return { 3160 type: IX2_SESSION_INITIALIZED, 3161 payload: { 3162 hasBoundaryNodes: hasBoundaryNodes 3163 } 3164 }; 3165}; 3166 3167exports.sessionInitialized = sessionInitialized; 3168 3169var sessionStarted = function sessionStarted() { 3170 return { 3171 type: IX2_SESSION_STARTED 3172 }; 3173}; 3174 3175exports.sessionStarted = sessionStarted; 3176 3177var sessionStopped = function sessionStopped() { 3178 return { 3179 type: IX2_SESSION_STOPPED 3180 }; 3181}; 3182 3183exports.sessionStopped = sessionStopped; 3184 3185var previewRequested = function previewRequested(_ref2) { 3186 var rawData = _ref2.rawData, 3187 defer = _ref2.defer; 3188 return { 3189 type: IX2_PREVIEW_REQUESTED, 3190 payload: { 3191 defer: defer, 3192 rawData: rawData 3193 } 3194 }; 3195}; 3196 3197exports.previewRequested = previewRequested; 3198 3199var playbackRequested = function playbackRequested(_ref3) { 3200 var _ref3$actionTypeId = _ref3.actionTypeId, 3201 actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, 3202 actionListId = _ref3.actionListId, 3203 actionItemId = _ref3.actionItemId, 3204 eventId = _ref3.eventId, 3205 allowEvents = _ref3.allowEvents, 3206 immediate = _ref3.immediate, 3207 testManual = _ref3.testManual, 3208 verbose = _ref3.verbose, 3209 rawData = _ref3.rawData; 3210 return { 3211 type: IX2_PLAYBACK_REQUESTED, 3212 payload: { 3213 actionTypeId: actionTypeId, 3214 actionListId: actionListId, 3215 actionItemId: actionItemId, 3216 testManual: testManual, 3217 eventId: eventId, 3218 allowEvents: allowEvents, 3219 immediate: immediate, 3220 verbose: verbose, 3221 rawData: rawData 3222 } 3223 }; 3224}; 3225 3226exports.playbackRequested = playbackRequested; 3227 3228var stopRequested = function stopRequested(actionListId) { 3229 return { 3230 type: IX2_STOP_REQUESTED, 3231 payload: { 3232 actionListId: actionListId 3233 } 3234 }; 3235}; 3236 3237exports.stopRequested = stopRequested; 3238 3239var clearRequested = function clearRequested() { 3240 return { 3241 type: IX2_CLEAR_REQUESTED 3242 }; 3243}; 3244 3245exports.clearRequested = clearRequested; 3246 3247var eventListenerAdded = function eventListenerAdded(target, listenerParams) { 3248 return { 3249 type: IX2_EVENT_LISTENER_ADDED, 3250 payload: { 3251 target: target, 3252 listenerParams: listenerParams 3253 } 3254 }; 3255}; 3256 3257exports.eventListenerAdded = eventListenerAdded; 3258 3259var testFrameRendered = function testFrameRendered() { 3260 var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; 3261 return { 3262 type: IX2_TEST_FRAME_RENDERED, 3263 payload: { 3264 step: step 3265 } 3266 }; 3267}; 3268 3269exports.testFrameRendered = testFrameRendered; 3270 3271var eventStateChanged = function eventStateChanged(stateKey, newState) { 3272 return { 3273 type: IX2_EVENT_STATE_CHANGED, 3274 payload: { 3275 stateKey: stateKey, 3276 newState: newState 3277 } 3278 }; 3279}; 3280 3281exports.eventStateChanged = eventStateChanged; 3282 3283var animationFrameChanged = function animationFrameChanged(now, parameters) { 3284 return { 3285 type: IX2_ANIMATION_FRAME_CHANGED, 3286 payload: { 3287 now: now, 3288 parameters: parameters 3289 } 3290 }; 3291}; 3292 3293exports.animationFrameChanged = animationFrameChanged; 3294 3295var parameterChanged = function parameterChanged(key, value) { 3296 return { 3297 type: IX2_PARAMETER_CHANGED, 3298 payload: { 3299 key: key, 3300 value: value 3301 } 3302 }; 3303}; 3304 3305exports.parameterChanged = parameterChanged; 3306 3307var instanceAdded = function instanceAdded(options) { 3308 return { 3309 type: IX2_INSTANCE_ADDED, 3310 payload: (0, _extends2["default"])({}, options) 3311 }; 3312}; 3313 3314exports.instanceAdded = instanceAdded; 3315 3316var instanceStarted = function instanceStarted(instanceId, time) { 3317 return { 3318 type: IX2_INSTANCE_STARTED, 3319 payload: { 3320 instanceId: instanceId, 3321 time: time 3322 } 3323 }; 3324}; 3325 3326exports.instanceStarted = instanceStarted; 3327 3328var instanceRemoved = function instanceRemoved(instanceId) { 3329 return { 3330 type: IX2_INSTANCE_REMOVED, 3331 payload: { 3332 instanceId: instanceId 3333 } 3334 }; 3335}; 3336 3337exports.instanceRemoved = instanceRemoved; 3338 3339var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { 3340 return { 3341 type: IX2_ELEMENT_STATE_CHANGED, 3342 payload: { 3343 elementId: elementId, 3344 actionTypeId: actionTypeId, 3345 current: current, 3346 actionItem: actionItem 3347 } 3348 }; 3349}; 3350 3351exports.elementStateChanged = elementStateChanged; 3352 3353var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { 3354 var actionListId = _ref4.actionListId, 3355 isPlaying = _ref4.isPlaying; 3356 return { 3357 type: IX2_ACTION_LIST_PLAYBACK_CHANGED, 3358 payload: { 3359 actionListId: actionListId, 3360 isPlaying: isPlaying 3361 } 3362 }; 3363}; 3364 3365exports.actionListPlaybackChanged = actionListPlaybackChanged; 3366 3367var viewportWidthChanged = function viewportWidthChanged(_ref5) { 3368 var width = _ref5.width, 3369 mediaQueries = _ref5.mediaQueries; 3370 return { 3371 type: IX2_VIEWPORT_WIDTH_CHANGED, 3372 payload: { 3373 width: width, 3374 mediaQueries: mediaQueries 3375 } 3376 }; 3377}; 3378 3379exports.viewportWidthChanged = viewportWidthChanged; 3380 3381var mediaQueriesDefined = function mediaQueriesDefined() { 3382 return { 3383 type: IX2_MEDIA_QUERIES_DEFINED 3384 }; 3385}; 3386 3387exports.mediaQueriesDefined = mediaQueriesDefined; 3388 3389/***/ }), 3390/* 62 */ 3391/***/ (function(module, exports, __webpack_require__) { 3392 3393var baseCreate = __webpack_require__(117), 3394 baseLodash = __webpack_require__(63); 3395 3396/** 3397 * The base constructor for creating `lodash` wrapper objects. 3398 * 3399 * @private 3400 * @param {*} value The value to wrap. 3401 * @param {boolean} [chainAll] Enable explicit method chain sequences. 3402 */ 3403function LodashWrapper(value, chainAll) { 3404 this.__wrapped__ = value; 3405 this.__actions__ = []; 3406 this.__chain__ = !!chainAll; 3407 this.__index__ = 0; 3408 this.__values__ = undefined; 3409} 3410
3411LodashWrapper.prototype = baseCreate(baseLodash.prototype); 3412LodashWrapper.prototype.constructor = LodashWrapper; 3413 3414module.exports = LodashWrapper; 3415 3416 3417/***/ }), 3418/* 63 */ 3419/***/ (function(module, exports) { 3420 3421/** 3422 * The function whose prototype chain sequence wrappers inherit from. 3423 * 3424 * @private 3425 */ 3426function baseLodash() { 3427 // No operation performed. 3428} 3429 3430module.exports = baseLodash; 3431 3432 3433/***/ }), 3434/* 64 */ 3435/***/ (function(module, exports, __webpack_require__) { 3436 3437var baseCreate = __webpack_require__(117), 3438 baseLodash = __webpack_require__(63); 3439 3440/** Used as references for the maximum length and index of an array. */ 3441var MAX_ARRAY_LENGTH = 4294967295; 3442 3443/** 3444 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 3445 * 3446 * @private 3447 * @constructor 3448 * @param {*} value The value to wrap. 3449 */ 3450function LazyWrapper(value) { 3451 this.__wrapped__ = value; 3452 this.__actions__ = []; 3453 this.__dir__ = 1; 3454 this.__filtered__ = false; 3455 this.__iteratees__ = []; 3456 this.__takeCount__ = MAX_ARRAY_LENGTH; 3457 this.__views__ = []; 3458} 3459 3460// Ensure `LazyWrapper` is an instance of `baseLodash`. 3461LazyWrapper.prototype = baseCreate(baseLodash.prototype); 3462LazyWrapper.prototype.constructor = LazyWrapper; 3463 3464module.exports = LazyWrapper; 3465 3466 3467/***/ }), 3468/* 65 */ 3469/***/ (function(module, exports, __webpack_require__) { 3470 3471"use strict"; 3472 // @wf-will-never-add-flow-to-this-file 3473 3474/* eslint-disable eslint-comments/no-unlimited-disable */ 3475 3476/* eslint-disable */ 3477 3478/*! 3479 * tram.js v0.8.2-global 3480 * Cross-browser CSS3 transitions in JavaScript 3481 * https://github.com/bkwld/tram 3482 * MIT License 3483 */ 3484 3485/* prettier-ignore */ 3486 3487var _interopRequireDefault = __webpack_require__(0); 3488 3489var _typeof2 = _interopRequireDefault(__webpack_require__(21)); 3490 3491window.tram = function (a) { 3492 function b(a, b) { 3493 var c = new M.Bare(); 3494 return c.init(a, b); 3495 } 3496 3497 function c(a) { 3498 return a.replace(/[A-Z]/g, function (a) { 3499 return "-" + a.toLowerCase(); 3500 }); 3501 } 3502 3503 function d(a) { 3504 var b = parseInt(a.slice(1), 16), 3505 c = b >> 16 & 255, 3506 d = b >> 8 & 255, 3507 e = 255 & b; 3508 return [c, d, e]; 3509 } 3510 3511 function e(a, b, c) { 3512 return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); 3513 } 3514 3515 function f() {} 3516 3517 function g(a, b) { 3518 j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); 3519 } 3520 3521 function h(a, b, c) { 3522 j("Units do not match [" + a + "]: " + b + ", " + c); 3523 } 3524 3525 function i(a, b, c) { 3526 if (void 0 !== b && (c = b), void 0 === a) return c; 3527 var d = c; 3528 return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; 3529 } 3530 3531 function j(a) { 3532 U.debug && window && window.console.warn(a); 3533 } 3534 3535 function k(a) { 3536 for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { 3537 var e = a[b]; 3538 e && d.push(e); 3539 } 3540 3541 return d; 3542 } 3543 3544 var l = function (a, b, c) { 3545 function d(a) { 3546 return "object" == (0, _typeof2["default"])(a); 3547 } 3548 3549 function e(a) { 3550 return "function" == typeof a; 3551 } 3552 3553 function f() {} 3554 3555 function g(h, i) { 3556 function j() { 3557 var a = new k(); 3558 return e(a.init) && a.init.apply(a, arguments), a; 3559 } 3560 3561 function k() {} 3562 3563 i === c && (i = h, h = Object), j.Bare = k; 3564 var l, 3565 m = f[a] = h[a], 3566 n = k[a] = j[a] = new f(); 3567 return n.constructor = j, j.mixin = function (b) { 3568 return k[a] = j[a] = g(j, b)[a], j; 3569 }, j.open = function (a) { 3570 if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { 3571 b.call(l, c) && (n[c] = l[c]); 3572 } 3573 return e(n.init) || (n.init = h), j; 3574 }, j.open(i); 3575 } 3576 3577 return g; 3578 }("prototype", {}.hasOwnProperty), 3579 m = { 3580 ease: ["ease", function (a, b, c, d) { 3581 var e = (a /= d) * a, 3582 f = e * a; 3583 return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); 3584 }], 3585 "ease-in": ["ease-in", function (a, b, c, d) { 3586 var e = (a /= d) * a, 3587 f = e * a; 3588 return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); 3589 }], 3590 "ease-out": ["ease-out", function (a, b, c, d) { 3591 var e = (a /= d) * a, 3592 f = e * a; 3593 return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); 3594 }], 3595 "ease-in-out": ["ease-in-out", function (a, b, c, d) { 3596 var e = (a /= d) * a, 3597 f = e * a; 3598 return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); 3599 }], 3600 linear: ["linear", function (a, b, c, d) { 3601 return c * a / d + b; 3602 }], 3603 "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { 3604 return c * (a /= d) * a + b; 3605 }], 3606 "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { 3607 return -c * (a /= d) * (a - 2) + b; 3608 }], 3609 "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { 3610 return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; 3611 }], 3612 "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { 3613 return c * (a /= d) * a * a + b; 3614 }], 3615 "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { 3616 return c * ((a = a / d - 1) * a * a + 1) + b; 3617 }], 3618 "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { 3619 return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; 3620 }], 3621 "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { 3622 return c * (a /= d) * a * a * a + b; 3623 }], 3624 "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { 3625 return -c * ((a = a / d - 1) * a * a * a - 1) + b; 3626 }], 3627 "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { 3628 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; 3629 }], 3630 "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { 3631 return c * (a /= d) * a * a * a * a + b; 3632 }], 3633 "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { 3634 return c * ((a = a / d - 1) * a * a * a * a + 1) + b; 3635 }], 3636 "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { 3637 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; 3638 }], 3639 "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { 3640 return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; 3641 }], 3642 "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { 3643 return c * Math.sin(a / d * (Math.PI / 2)) + b; 3644 }], 3645 "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { 3646 return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; 3647 }], 3648 "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { 3649 return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; 3650 }], 3651 "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { 3652 return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; 3653 }], 3654 "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { 3655 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; 3656 }], 3657 "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { 3658 return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; 3659 }], 3660 "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { 3661 return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; 3662 }], 3663 "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { 3664 return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; 3665 }], 3666 "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { 3667 return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; 3668 }], 3669 "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { 3670 return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; 3671 }], 3672 "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { 3673 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; 3674 }] 3675 }, 3676 n = { 3677 "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", 3678 "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", 3679 "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" 3680 }, 3681 o = document, 3682 p = window, 3683 q = "bkwld-tram", 3684 r = /[\-\.0-9]/g, 3685 s = /[A-Z]/, 3686 t = "number", 3687 u = /^(rgb|#)/, 3688 v = /(em|cm|mm|in|pt|pc|px)$/, 3689 w = /(em|cm|mm|in|pt|pc|px|%)$/, 3690 x = /(deg|rad|turn)$/, 3691 y = "unitless", 3692 z = /(all|none) 0s ease 0s/, 3693 A = /^(width|height)$/, 3694 B = " ", 3695 C = o.createElement("a"), 3696 D = ["Webkit", "Moz", "O", "ms"], 3697 E = ["-webkit-", "-moz-", "-o-", "-ms-"], 3698 F = function F(a) { 3699 if (a in C.style) return { 3700 dom: a, 3701 css: a 3702 }; 3703 var b, 3704 c, 3705 d = "", 3706 e = a.split("-"); 3707 3708 for (b = 0; b < e.length; b++) { 3709 d += e[b].charAt(0).toUpperCase() + e[b].slice(1); 3710 } 3711 3712 for (b = 0; b < D.length; b++) { 3713 if (c = D[b] + d, c in C.style) return { 3714 dom: c, 3715 css: E[b] + a 3716 }; 3717 } 3718 }, 3719 G = b.support = { 3720 bind: Function.prototype.bind, 3721 transform: F("transform"), 3722 transition: F("transition"), 3723 backface: F("backface-visibility"), 3724 timing: F("transition-timing-function") 3725 }; 3726 3727 if (G.transition) { 3728 var H = G.timing.dom; 3729 if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { 3730 m[I][0] = n[I]; 3731 } 3732 } 3733 3734 var J = b.frame = function () { 3735 var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; 3736 return a && G.bind ? a.bind(p) : function (a) { 3737 p.setTimeout(a, 16); 3738 }; 3739 }(), 3740 K = b.now = function () { 3741 var a = p.performance, 3742 b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); 3743 return b && G.bind ? b.bind(a) : Date.now || function () { 3744 return +new Date(); 3745 }; 3746 }(), 3747 L = l(function (b) { 3748 function d(a, b) { 3749 var c = k(("" + a).split(B)), 3750 d = c[0]; 3751 b = b || {}; 3752 var e = Y[d]; 3753 if (!e) return j("Unsupported property: " + d); 3754 3755 if (!b.weak || !this.props[d]) { 3756 var f = e[0], 3757 g = this.props[d]; 3758 return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; 3759 } 3760 } 3761 3762 function e(a, b, c) { 3763 if (a) { 3764 var e = (0, _typeof2["default"])(a); 3765 if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ 3766 duration: a, 3767 context: this, 3768 complete: h 3769 }), void (this.active = !0); 3770 3771 if ("string" == e && b) { 3772 switch (a) { 3773 case "hide": 3774 o.call(this); 3775 break; 3776 3777 case "stop": 3778 l.call(this); 3779 break; 3780 3781 case "redraw": 3782 p.call(this); 3783 break; 3784 3785 default: 3786 d.call(this, a, c && c[1]); 3787 } 3788 3789 return h.call(this); 3790 } 3791 3792 if ("function" == e) return void a.call(this, this); 3793 3794 if ("object" == e) { 3795 var f = 0; 3796 u.call(this, a, function (a, b) { 3797 a.span > f && (f = a.span), a.stop(), a.animate(b); 3798 }, function (a) { 3799 "wait" in a && (f = i(a.wait, 0)); 3800 }), t.call(this), f > 0 && (this.timer = new S({ 3801 duration: f, 3802 context: this 3803 }), this.active = !0, b && (this.timer.complete = h)); 3804 var g = this, 3805 j = !1, 3806 k = {}; 3807 J(function () { 3808 u.call(g, a, function (a) { 3809 a.active && (j = !0, k[a.name] = a.nextStyle); 3810 }), j && g.$el.css(k); 3811 }); 3812 } 3813 } 3814 } 3815 3816 function f(a) { 3817 a = i(a, 0), this.active ? this.queue.push({ 3818 options: a 3819 }) : (this.timer = new S({ 3820 duration: a, 3821 context: this, 3822 complete: h 3823 }), this.active = !0); 3824 } 3825
3826 function g(a) { 3827 return this.active ? (this.queue.push({ 3828 options: a, 3829 args: arguments 3830 }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); 3831 } 3832 3833 function h() { 3834 if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { 3835 var a = this.queue.shift(); 3836 e.call(this, a.options, !0, a.args); 3837 } 3838 } 3839 3840 function l(a) { 3841 this.timer && this.timer.destroy(), this.queue = [], this.active = !1; 3842 var b; 3843 "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); 3844 } 3845 3846 function m(a) { 3847 l.call(this, a), u.call(this, a, w, x); 3848 } 3849 3850 function n(a) { 3851 "string" != typeof a && (a = "block"), this.el.style.display = a; 3852 } 3853 3854 function o() { 3855 l.call(this), this.el.style.display = "none"; 3856 } 3857 3858 function p() { 3859 this.el.offsetHeight; 3860 } 3861 3862 function r() { 3863 l.call(this), a.removeData(this.el, q), this.$el = this.el = null; 3864 } 3865 3866 function t() { 3867 var a, 3868 b, 3869 c = []; 3870 this.upstream && c.push(this.upstream); 3871 3872 for (a in this.props) { 3873 b = this.props[a], b.active && c.push(b.string); 3874 } 3875 3876 c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); 3877 } 3878 3879 function u(a, b, e) { 3880 var f, 3881 g, 3882 h, 3883 i, 3884 j = b !== v, 3885 k = {}; 3886 3887 for (f in a) { 3888 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)); 3889 } 3890 3891 for (f in k) { 3892 if (h = k[f], g = this.props[f], !g) { 3893 if (!j) continue; 3894 g = d.call(this, f); 3895 } 3896 3897 b.call(this, g, h); 3898 } 3899 3900 e && i && e.call(this, i); 3901 } 3902 3903 function v(a) { 3904 a.stop(); 3905 } 3906 3907 function w(a, b) { 3908 a.set(b); 3909 } 3910 3911 function x(a) { 3912 this.$el.css(a); 3913 } 3914 3915 function y(a, c) { 3916 b[a] = function () { 3917 return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); 3918 }; 3919 } 3920 3921 function A(a, b) { 3922 var c, 3923 d = this.children.length; 3924 3925 for (c = 0; d > c; c++) { 3926 a.apply(this.children[c], b); 3927 } 3928 3929 return this; 3930 } 3931 3932 b.init = function (b) { 3933 if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { 3934 var c = W(this.el, "transition"); 3935 c && !z.test(c) && (this.upstream = c); 3936 } 3937 3938 G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); 3939 }, 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); 3940 }), 3941 M = l(L, function (b) { 3942 function c(b, c) { 3943 var d = a.data(b, q) || a.data(b, q, new L.Bare()); 3944 return d.el || d.init(b), c ? d.start(c) : d; 3945 } 3946 3947 b.init = function (b, d) { 3948 var e = a(b); 3949 if (!e.length) return this; 3950 if (1 === e.length) return c(e[0], d); 3951 var f = []; 3952 return e.each(function (a, b) { 3953 f.push(c(b, d)); 3954 }), this.children = f, this; 3955 }; 3956 }), 3957 N = l(function (a) { 3958 function b() { 3959 var a = this.get(); 3960 this.update("auto"); 3961 var b = this.get(); 3962 return this.update(a), b; 3963 } 3964 3965 function c(a, b, c) { 3966 return void 0 !== b && (c = b), a in m ? a : c; 3967 } 3968 3969 function d(a) { 3970 var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); 3971 return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); 3972 } 3973 3974 var f = { 3975 duration: 500, 3976 ease: "ease", 3977 delay: 0 3978 }; 3979 a.init = function (a, b, d, e) { 3980 this.$el = a, this.el = a[0]; 3981 var g = b[0]; 3982 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" : "")); 3983 }, a.set = function (a) { 3984 a = this.convert(a, this.type), this.update(a), this.redraw(); 3985 }, a.transition = function (a) { 3986 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; 3987 }, a.fallback = function (a) { 3988 var c = this.el.style[this.name] || this.convert(this.get(), this.type); 3989 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({ 3990 from: c, 3991 to: a, 3992 duration: this.duration, 3993 delay: this.delay, 3994 ease: this.ease, 3995 update: this.update, 3996 context: this 3997 }); 3998 }, a.get = function () { 3999 return W(this.el, this.name); 4000 }, a.update = function (a) { 4001 V(this.el, this.name, a); 4002 }, a.stop = function () { 4003 (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); 4004 var a = this.tween; 4005 a && a.context && a.destroy(); 4006 }, a.convert = function (a, b) { 4007 if ("auto" == a && this.auto) return a; 4008 var c, 4009 e = "number" == typeof a, 4010 f = "string" == typeof a; 4011 4012 switch (b) { 4013 case t: 4014 if (e) return a; 4015 if (f && "" === a.replace(r, "")) return +a; 4016 c = "number(unitless)"; 4017 break; 4018 4019 case u: 4020 if (f) { 4021 if ("" === a && this.original) return this.original; 4022 if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); 4023 } 4024 4025 c = "hex or rgb string"; 4026 break; 4027 4028 case v: 4029 if (e) return a + this.unit; 4030 if (f && b.test(a)) return a; 4031 c = "number(px) or string(unit)"; 4032 break; 4033 4034 case w: 4035 if (e) return a + this.unit; 4036 if (f && b.test(a)) return a; 4037 c = "number(px) or string(unit or %)"; 4038 break; 4039 4040 case x: 4041 if (e) return a + this.angle; 4042 if (f && b.test(a)) return a; 4043 c = "number(deg) or string(angle)"; 4044 break; 4045 4046 case y: 4047 if (e) return a; 4048 if (f && w.test(a)) return a; 4049 c = "number(unitless) or string(unit or %)"; 4050 } 4051 4052 return g(c, a), a; 4053 }, a.redraw = function () { 4054 this.el.offsetHeight; 4055 }; 4056 }), 4057 O = l(N, function (a, b) { 4058 a.init = function () {
4059 b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); 4060 }; 4061 }), 4062 P = l(N, function (a, b) { 4063 a.init = function () { 4064 b.init.apply(this, arguments), this.animate = this.fallback; 4065 }, a.get = function () { 4066 return this.$el[this.name](); 4067 }, a.update = function (a) { 4068 this.$el[this.name](a); 4069 }; 4070 }), 4071 Q = l(N, function (a, b) { 4072 function c(a, b) { 4073 var c, d, e, f, g; 4074 4075 for (c in a) { 4076 f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); 4077 } 4078 } 4079 4080 a.init = function () { 4081 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())); 4082 }, a.set = function (a) { 4083 c.call(this, a, function (a, b) { 4084 this.current[a] = b; 4085 }), V(this.el, this.name, this.style(this.current)), this.redraw(); 4086 }, a.transition = function (a) { 4087 var b = this.values(a); 4088 this.tween = new T({ 4089 current: this.current, 4090 values: b, 4091 duration: this.duration, 4092 delay: this.delay, 4093 ease: this.ease 4094 }); 4095 var c, 4096 d = {}; 4097 4098 for (c in this.current) { 4099 d[c] = c in b ? b[c] : this.current[c]; 4100 } 4101 4102 this.active = !0, this.nextStyle = this.style(d); 4103 }, a.fallback = function (a) { 4104 var b = this.values(a); 4105 this.tween = new T({ 4106 current: this.current, 4107 values: b, 4108 duration: this.duration, 4109 delay: this.delay, 4110 ease: this.ease, 4111 update: this.update, 4112 context: this 4113 }); 4114 }, a.update = function () { 4115 V(this.el, this.name, this.style(this.current)); 4116 }, a.style = function (a) { 4117 var b, 4118 c = ""; 4119 4120 for (b in a) { 4121 c += b + "(" + a[b] + ") "; 4122 } 4123 4124 return c; 4125 }, a.values = function (a) { 4126 var b, 4127 d = {}; 4128 return c.call(this, a, function (a, c, e) { 4129 d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); 4130 }), d; 4131 }; 4132 }), 4133 R = l(function (b) { 4134 function c(a) { 4135 1 === n.push(a) && J(g); 4136 } 4137 4138 function g() { 4139 var a, 4140 b, 4141 c, 4142 d = n.length; 4143 if (d) for (J(g), b = K(), a = d; a--;) { 4144 c = n[a], c && c.render(b); 4145 } 4146 } 4147 4148 function i(b) { 4149 var c, 4150 d = a.inArray(b, n); 4151 d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); 4152 } 4153 4154 function j(a) { 4155 return Math.round(a * o) / o; 4156 } 4157 4158 function k(a, b, c) { 4159 return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); 4160 } 4161 4162 var l = { 4163 ease: m.ease[1], 4164 from: 0, 4165 to: 1 4166 }; 4167 b.init = function (a) { 4168 this.duration = a.duration || 0, this.delay = a.delay || 0; 4169 var b = a.ease || l.ease; 4170 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; 4171 var c = a.from, 4172 d = a.to; 4173 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(); 4174 }, b.play = function () { 4175 this.active || (this.start || (this.start = K()), this.active = !0, c(this)); 4176 }, b.stop = function () { 4177 this.active && (this.active = !1, i(this)); 4178 }, b.render = function (a) { 4179 var b, 4180 c = a - this.start; 4181 4182 if (this.delay) { 4183 if (c <= this.delay) return; 4184 c -= this.delay; 4185 } 4186 4187 if (c < this.duration) { 4188 var d = this.ease(c, 0, 1, this.duration); 4189 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); 4190 } 4191 4192 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(); 4193 }, b.format = function (a, b) { 4194 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); 4195 4196 if (!this.unit) { 4197 var c = b.replace(r, ""), 4198 e = a.replace(r, ""); 4199 c !== e && h("tween", b, a), this.unit = c; 4200 } 4201 4202 b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; 4203 }, b.destroy = function () { 4204 this.stop(), this.context = null, this.ease = this.update = this.complete = f; 4205 }; 4206 var n = [], 4207 o = 1e3; 4208 }),
4209 S = l(R, function (a) { 4210 a.init = function (a) { 4211 this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); 4212 }, a.render = function (a) { 4213 var b = a - this.start; 4214 b < this.duration || (this.complete.call(this.context), this.destroy()); 4215 }; 4216 }), 4217 T = l(R, function (a, b) { 4218 a.init = function (a) { 4219 this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; 4220 var b, c; 4221 4222 for (b in a.values) { 4223 c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ 4224 name: b, 4225 from: this.current[b], 4226 to: c, 4227 duration: a.duration, 4228 delay: a.delay, 4229 ease: a.ease, 4230 autoplay: !1 4231 })); 4232 } 4233 4234 this.play(); 4235 }, a.render = function (a) { 4236 var b, 4237 c, 4238 d = this.tweens.length, 4239 e = !1; 4240 4241 for (b = d; b--;) { 4242 c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); 4243 } 4244 4245 return e ? void (this.update && this.update.call(this.context)) : this.destroy(); 4246 }, a.destroy = function () { 4247 if (b.destroy.call(this), this.tweens) { 4248 var a, 4249 c = this.tweens.length; 4250 4251 for (a = c; a--;) { 4252 this.tweens[a].destroy(); 4253 } 4254 4255 this.tweens = null, this.current = null; 4256 } 4257 }; 4258 }), 4259 U = b.config = { 4260 debug: !1, 4261 defaultUnit: "px", 4262 defaultAngle: "deg", 4263 keepInherited: !1, 4264 hideBackface: !1, 4265 perspective: "", 4266 fallback: !G.transition, 4267 agentTests: [] 4268 }; 4269 4270 b.fallback = function (a) { 4271 if (!G.transition) return U.fallback = !0; 4272 U.agentTests.push("(" + a + ")"); 4273 var b = new RegExp(U.agentTests.join("|"), "i"); 4274 U.fallback = b.test(navigator.userAgent); 4275 }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { 4276 return new R(a); 4277 }, b.delay = function (a, b, c) { 4278 return new S({ 4279 complete: b, 4280 duration: a, 4281 context: c 4282 }); 4283 }, a.fn.tram = function (a) { 4284 return b.call(null, this, a); 4285 }; 4286 var V = a.style, 4287 W = a.css, 4288 X = { 4289 transform: G.transform && G.transform.css 4290 }, 4291 Y = { 4292 color: [O, u], 4293 background: [O, u, "background-color"], 4294 "outline-color": [O, u], 4295 "border-color": [O, u], 4296 "border-top-color": [O, u], 4297 "border-right-color": [O, u], 4298 "border-bottom-color": [O, u], 4299 "border-left-color": [O, u], 4300 "border-width": [N, v], 4301 "border-top-width": [N, v], 4302 "border-right-width": [N, v], 4303 "border-bottom-width": [N, v], 4304 "border-left-width": [N, v], 4305 "border-spacing": [N, v], 4306 "letter-spacing": [N, v], 4307 margin: [N, v], 4308 "margin-top": [N, v], 4309 "margin-right": [N, v], 4310 "margin-bottom": [N, v], 4311 "margin-left": [N, v], 4312 padding: [N, v], 4313 "padding-top": [N, v], 4314 "padding-right": [N, v], 4315 "padding-bottom": [N, v], 4316 "padding-left": [N, v], 4317 "outline-width": [N, v], 4318 opacity: [N, t], 4319 top: [N, w], 4320 right: [N, w], 4321 bottom: [N, w], 4322 left: [N, w], 4323 "font-size": [N, w], 4324 "text-indent": [N, w], 4325 "word-spacing": [N, w], 4326 width: [N, w], 4327 "min-width": [N, w], 4328 "max-width": [N, w], 4329 height: [N, w], 4330 "min-height": [N, w], 4331 "max-height": [N, w], 4332 "line-height": [N, y], 4333 "scroll-top": [P, t, "scrollTop"], 4334 "scroll-left": [P, t, "scrollLeft"] 4335 }, 4336 Z = {}; 4337 G.transform && (Y.transform = [Q], Z = { 4338 x: [w, "translateX"], 4339 y: [w, "translateY"], 4340 rotate: [x], 4341 rotateX: [x], 4342 rotateY: [x], 4343 scale: [t], 4344 scaleX: [t], 4345 scaleY: [t], 4346 skew: [x], 4347 skewX: [x], 4348 skewY: [x] 4349 }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); 4350 var $ = /ms/, 4351 _ = /s|\./; 4352 return a.tram = b; 4353}(window.jQuery); 4354 4355/***/ }), 4356/* 66 */ 4357/***/ (function(module, exports, __webpack_require__) { 4358 4359var DESCRIPTORS = __webpack_require__(14); 4360var propertyIsEnumerableModule = __webpack_require__(130); 4361var createPropertyDescriptor = __webpack_require__(67); 4362var toIndexedObject = __webpack_require__(38); 4363var toPrimitive = __webpack_require__(68); 4364var has = __webpack_require__(16); 4365var IE8_DOM_DEFINE = __webpack_require__(69); 4366 4367var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 4368 4369// `Object.getOwnPropertyDescriptor` method 4370// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor 4371exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 4372 O = toIndexedObject(O); 4373 P = toPrimitive(P, true); 4374 if (IE8_DOM_DEFINE) try { 4375 return nativeGetOwnPropertyDescriptor(O, P); 4376 } catch (error) { /* empty */ } 4377 if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); 4378}; 4379 4380 4381/***/ }), 4382/* 67 */
vendor: 4,284 bytes, lines 4383-4538
4383/***/ (function(module, exports) { 4384 4385module.exports = function (bitmap, value) { 4386 return { 4387 enumerable: !(bitmap & 1), 4388 configurable: !(bitmap & 2), 4389 writable: !(bitmap & 4), 4390 value: value 4391 }; 4392}; 4393 4394 4395/***/ }), 4396/* 68 */ 4397/***/ (function(module, exports, __webpack_require__) { 4398 4399var isObject = __webpack_require__(24); 4400 4401// `ToPrimitive` abstract operation 4402// https://tc39.github.io/ecma262/#sec-toprimitive 4403// instead of the ES6 spec version, we didn't implement @@toPrimitive case 4404// and the second argument - flag - preferred type is a string 4405module.exports = function (input, PREFERRED_STRING) { 4406 if (!isObject(input)) return input; 4407 var fn, val; 4408 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4409 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; 4410 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4411 throw TypeError("Can't convert object to primitive value"); 4412}; 4413 4414 4415/***/ }), 4416/* 69 */ 4417/***/ (function(module, exports, __webpack_require__) { 4418 4419var DESCRIPTORS = __webpack_require__(14); 4420var fails = __webpack_require__(15); 4421var createElement = __webpack_require__(70); 4422 4423// Thank's IE8 for his funny defineProperty 4424module.exports = !DESCRIPTORS && !fails(function () { 4425 return Object.defineProperty(createElement('div'), 'a', { 4426 get: function () { return 7; } 4427 }).a != 7; 4428}); 4429 4430 4431/***/ }), 4432/* 70 */ 4433/***/ (function(module, exports, __webpack_require__) { 4434 4435var global = __webpack_require__(4); 4436var isObject = __webpack_require__(24); 4437 4438var document = global.document; 4439// typeof document.createElement is 'object' in old IE 4440var EXISTS = isObject(document) && isObject(document.createElement); 4441 4442module.exports = function (it) { 4443 return EXISTS ? document.createElement(it) : {}; 4444}; 4445 4446 4447/***/ }), 4448/* 71 */ 4449/***/ (function(module, exports, __webpack_require__) { 4450 4451var shared = __webpack_require__(26); 4452 4453module.exports = shared('native-function-to-string', Function.toString); 4454 4455 4456/***/ }), 4457/* 72 */ 4458/***/ (function(module, exports, __webpack_require__) { 4459 4460var shared = __webpack_require__(26); 4461var uid = __webpack_require__(73); 4462 4463var keys = shared('keys'); 4464 4465module.exports = function (key) { 4466 return keys[key] || (keys[key] = uid(key)); 4467}; 4468 4469 4470/***/ }), 4471/* 73 */ 4472/***/ (function(module, exports) { 4473 4474var id = 0; 4475var postfix = Math.random(); 4476 4477module.exports = function (key) { 4478 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); 4479}; 4480 4481 4482/***/ }), 4483/* 74 */ 4484/***/ (function(module, exports, __webpack_require__) { 4485 4486var path = __webpack_require__(140); 4487var global = __webpack_require__(4); 4488 4489var aFunction = function (variable) { 4490 return typeof variable == 'function' ? variable : undefined; 4491}; 4492 4493module.exports = function (namespace, method) { 4494 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) 4495 : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; 4496}; 4497 4498 4499/***/ }), 4500/* 75 */ 4501/***/ (function(module, exports, __webpack_require__) { 4502 4503var has = __webpack_require__(16); 4504var toIndexedObject = __webpack_require__(38); 4505var indexOf = __webpack_require__(76).indexOf; 4506var hiddenKeys = __webpack_require__(41); 4507 4508module.exports = function (object, names) { 4509 var O = toIndexedObject(object); 4510 var i = 0; 4511 var result = []; 4512 var key; 4513 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); 4514 // Don't enum bug & hidden keys 4515 while (names.length > i) if (has(O, key = names[i++])) { 4516 ~indexOf(result, key) || result.push(key); 4517 } 4518 return result; 4519}; 4520 4521 4522/***/ }), 4523/* 76 */ 4524/***/ (function(module, exports, __webpack_require__) { 4525 4526var toIndexedObject = __webpack_require__(38); 4527var toLength = __webpack_require__(142); 4528var toAbsoluteIndex = __webpack_require__(143); 4529 4530// `Array.prototype.{ indexOf, includes }` methods implementation 4531var createMethod = function (IS_INCLUDES) { 4532 return function ($this, el, fromIndex) { 4533 var O = toIndexedObject($this); 4534 var length = toLength(O.length); 4535 var index = toAbsoluteIndex(fromIndex, length); 4536 var value; 4537 // Array#includes uses SameValueZero equality algorithm 4538 // eslint-disable-next-line no-self-compare
4539 if (IS_INCLUDES && el != el) while (length > index) { 4540 value = O[index++]; 4541 // eslint-disable-next-line no-self-compare 4542 if (value != value) return true; 4543 // Array#indexOf ignores holes, Array#includes - not 4544 } else for (;length > index; index++) { 4545 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 4546 } return !IS_INCLUDES && -1; 4547 }; 4548}; 4549 4550module.exports = { 4551 // `Array.prototype.includes` method 4552 // https://tc39.github.io/ecma262/#sec-array.prototype.includes 4553 includes: createMethod(true), 4554 // `Array.prototype.indexOf` method 4555 // https://tc39.github.io/ecma262/#sec-array.prototype.indexof 4556 indexOf: createMethod(false) 4557}; 4558 4559 4560/***/ }), 4561/* 77 */ 4562/***/ (function(module, exports) { 4563 4564var ceil = Math.ceil; 4565var floor = Math.floor; 4566 4567// `ToInteger` abstract operation 4568// https://tc39.github.io/ecma262/#sec-tointeger 4569module.exports = function (argument) { 4570 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); 4571}; 4572 4573 4574/***/ }), 4575/* 78 */ 4576/***/ (function(module, __webpack_exports__, __webpack_require__) { 4577 4578"use strict"; 4579__webpack_require__.r(__webpack_exports__); 4580/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43); 4581/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); 4582 4583/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(81); 4584/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 4585 4586/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83); 4587/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4588 4589/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(84); 4590/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 4591 4592/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(44); 4593/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); 4594 4595/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(82); 4596 4597 4598 4599 4600 4601 4602 4603/* 4604* This is a dummy function to check if the function name has been altered by minification. 4605* If the function has been minified and NODE_ENV !== 'production', warn the user. 4606*/ 4607function isCrushed() {} 4608 4609if (false) {} 4610 4611 4612 4613/***/ }), 4614/* 79 */ 4615/***/ (function(module, __webpack_exports__, __webpack_require__) { 4616 4617"use strict"; 4618__webpack_require__.r(__webpack_exports__); 4619/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(156); 4620/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(161); 4621/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(163); 4622 4623 4624 4625 4626/** `Object#toString` result references. */ 4627var objectTag = '[object Object]'; 4628 4629/** Used for built-in method references. */ 4630var funcProto = Function.prototype, 4631 objectProto = Object.prototype; 4632 4633/** Used to resolve the decompiled source of functions. */ 4634var funcToString = funcProto.toString; 4635 4636/** Used to check objects for own properties. */ 4637var hasOwnProperty = objectProto.hasOwnProperty; 4638 4639/** Used to infer the `Object` constructor. */ 4640var objectCtorString = funcToString.call(Object); 4641 4642/** 4643 * Checks if `value` is a plain object, that is, an object created by the 4644 * `Object` constructor or one with a `[[Prototype]]` of `null`. 4645 * 4646 * @static 4647 * @memberOf _ 4648 * @since 0.8.0 4649 * @category Lang 4650 * @param {*} value The value to check. 4651 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. 4652 * @example 4653 * 4654 * function Foo() { 4655 * this.a = 1; 4656 * } 4657 * 4658 * _.isPlainObject(new Foo); 4659 * // => false 4660 * 4661 * _.isPlainObject([1, 2, 3]); 4662 * // => false 4663 * 4664 * _.isPlainObject({ 'x': 0, 'y': 0 }); 4665 * // => true 4666 * 4667 * _.isPlainObject(Object.create(null)); 4668 * // => true 4669 */ 4670function isPlainObject(value) { 4671 if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { 4672 return false;
4673 } 4674 var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); 4675 if (proto === null) { 4676 return true; 4677 } 4678 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; 4679 return typeof Ctor == 'function' && Ctor instanceof Ctor && 4680 funcToString.call(Ctor) == objectCtorString; 4681} 4682 4683/* harmony default export */ __webpack_exports__["default"] = (isPlainObject); 4684 4685 4686/***/ }), 4687/* 80 */ 4688/***/ (function(module, __webpack_exports__, __webpack_require__) { 4689 4690"use strict"; 4691__webpack_require__.r(__webpack_exports__); 4692/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(157); 4693 4694 4695/** Built-in value references. */ 4696var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; 4697 4698/* harmony default export */ __webpack_exports__["default"] = (Symbol); 4699 4700 4701/***/ }), 4702/* 81 */ 4703/***/ (function(module, __webpack_exports__, __webpack_require__) { 4704 4705"use strict"; 4706__webpack_require__.r(__webpack_exports__); 4707/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); 4708/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(43); 4709/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(79); 4710/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(82); 4711 4712 4713 4714 4715function getUndefinedStateErrorMessage(key, action) { 4716 var actionType = action && action.type; 4717 var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; 4718 4719 return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; 4720} 4721 4722function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unex
4722pectedKeyCache) { 4723 var reducerKeys = Object.keys(reducers); 4724 var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; 4725 4726 if (reducerKeys.length === 0) { 4727 return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; 4728 } 4729 4730 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { 4731 return 'The ' + argumentName + ' has unexpected type of "' + {}.toString.call(inputState).match(/\s([a-z|A-Z]+)/)[1] + '". Expected argument to be an object with the following ' + ('keys: "' + reducerKeys.join('", "') + '"'); 4732 } 4733 4734 var unexpectedKeys = Object.keys(inputState).filter(function (key) { 4735 return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; 4736 }); 4737 4738 unexpectedKeys.forEach(function (key) { 4739 unexpectedKeyCache[key] = true; 4740 }); 4741 4742 if (unexpectedKeys.length > 0) { 4743 return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('"' + unexpectedKeys.join('", "') + '" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('"' + reducerKeys.join('", "') + '". Unexpected keys will be ignored.'); 4744 } 4745} 4746 4747function assertReducerSanity(reducers) { 4748 Object.keys(reducers).forEach(function (key) { 4749 var reducer = reducers[key]; 4750 var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); 4751 4752 if (typeof initialState === 'undefined') { 4753 throw new Error('Reducer "' + key + '" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined.'); 4754 } 4755 4756 var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); 4757 if (typeof reducer(undefined, { type: type }) === 'undefined') { 4758 throw new Error('Reducer "' + key + '" returned undefined when probed with a random type. ' + ('Don\'t try to handle ' + _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT + ' or other actions in "redux/*" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined.'); 4759 } 4760 }); 4761} 4762 4763/** 4764 * Turns an object whose values are different reducer functions, into a single 4765 * reducer function. It will call every child reducer, and gather their results 4766 * into a single state object, whose keys correspond to the keys of the passed 4767 * reducer functions. 4768 * 4769 * @param {Object} reducers An object whose values correspond to different 4770 * reducer functions that need to be combined into one. One handy way to obtain 4771 * it is to use ES6 `import * as reducers` syntax. The reducers may never return 4772 * undefined for any action. Instead, they should return their initial state 4773 * if the state passed to them was undefined, and the current state for any 4774 * unrecognized action. 4775 * 4776 * @returns {Function} A reducer function that invokes every reducer inside the 4777 * passed object, and builds a state object with the same shape. 4778 */ 4779function combineReducers(reducers) { 4780 var reducerKeys = Object.keys(reducers); 4781 var finalReducers = {}; 4782 for (var i = 0; i < reducerKeys.length; i++) { 4783 var key = reducerKeys[i]; 4784 4785 if (false) {} 4786 4787 if (typeof reducers[key] === 'function') { 4788 finalReducers[key] = reducers[key]; 4789 } 4790 } 4791 var finalReducerKeys = Object.keys(finalReducers); 4792 4793 if (false) { var unexpectedKeyCache; } 4794 4795 var sanityError; 4796 try { 4797 assertReducerSanity(finalReducers); 4798 } catch (e) { 4799 sanityError = e; 4800 } 4801 4802 return function combination() { 4803 var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 4804 var action = arguments[1]; 4805 4806 if (sanityError) { 4807 throw sanityError; 4808 } 4809 4810 if (false) { var warningMessage; } 4811 4812 var hasChanged = false;
4813 var nextState = {}; 4814 for (var i = 0; i < finalReducerKeys.length; i++) { 4815 var key = finalReducerKeys[i]; 4816 var reducer = finalReducers[key]; 4817 var previousStateForKey = state[key]; 4818 var nextStateForKey = reducer(previousStateForKey, action); 4819 if (typeof nextStateForKey === 'undefined') { 4820 var errorMessage = getUndefinedStateErrorMessage(key, action); 4821 throw new Error(errorMessage); 4822 } 4823 nextState[key] = nextStateForKey; 4824 hasChanged = hasChanged || nextStateForKey !== previousStateForKey; 4825 } 4826 return hasChanged ? nextState : state; 4827 }; 4828} 4829 4830/***/ }), 4831/* 82 */ 4832/***/ (function(module, __webpack_exports__, __webpack_require__) { 4833 4834"use strict"; 4835__webpack_require__.r(__webpack_exports__); 4836/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); 4837/** 4838 * Prints a warning in the console if it exists. 4839 * 4840 * @param {String} message The warning message. 4841 * @returns {void} 4842 */ 4843function warning(message) { 4844 /* eslint-disable no-console */ 4845 if (typeof console !== 'undefined' && typeof console.error === 'function') { 4846 console.error(message); 4847 } 4848 /* eslint-enable no-console */ 4849 try { 4850 // This error was thrown as a convenience so that if you enable 4851 // "break on all exceptions" in your console, 4852 // it would pause the execution at this line. 4853 throw new Error(message); 4854 /* eslint-disable no-empty */ 4855 } catch (e) {} 4856 /* eslint-enable no-empty */ 4857} 4858 4859/***/ }), 4860/* 83 */ 4861/***/ (function(module, __webpack_exports__, __webpack_require__) { 4862 4863"use strict"; 4864__webpack_require__.r(__webpack_exports__); 4865/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); 4866function bindActionCreator(actionCreator, dispatch) { 4867 return function () { 4868 return dispatch(actionCreator.apply(undefined, arguments)); 4869 }; 4870} 4871 4872/** 4873 * Turns an object whose values are action creators, into an object with the 4874 * same keys, but with every function wrapped into a `dispatch` call so they 4875 * may be invoked directly. This is just a convenience method, as you can call 4876 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. 4877 * 4878 * For convenience, you can also pass a single function as the first argument, 4879 * and get a function in return. 4880 * 4881 * @param {Function|Object} actionCreators An object whose values are action 4882 * creator functions. One handy way to obtain it is to use ES6 `import * as` 4883 * syntax. You may also pass a single function. 4884 * 4885 * @param {Function} dispatch The `dispatch` function available on your Redux 4886 * store. 4887 * 4888 * @returns {Function|Object} The object mimicking the original object, but with 4889 * every action creator wrapped into the `dispatch` call. If you passed a 4890 * function as `actionCreators`, the return value will also be a single 4891 * function. 4892 */ 4893function bindActionCreators(actionCreators, dispatch) { 4894 if (typeof actionCreators === 'function') { 4895 return bindActionCreator(actionCreators, dispatch); 4896 } 4897 4898 if (typeof actionCreators !== 'object' || actionCreators === null) { 4899 throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write "import ActionCreators from" instead of "import * as ActionCreators from"?'); 4900 } 4901 4902 var keys = Object.keys(actionCreators); 4903 var boundActionCreators = {}; 4904 for (var i = 0; i < keys.length; i++) { 4905 var key = keys[i]; 4906 var actionCreator = actionCreators[key]; 4907 if (typeof actionCreator === 'function') { 4908 boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); 4909 } 4910 } 4911 return boundActionCreators; 4912} 4913 4914/***/ }), 4915/* 84 */ 4916/***/ (function(module, __webpack_exports__, __webpack_require__) { 4917 4918"use strict"; 4919__webpack_require__.r(__webpack_exports__); 4920/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); 4921/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44); 4922var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; 4923 4924 4925 4926/** 4927 * Creates a store enhancer that applies middleware to the dispatch method 4928 * of the Redux store. This is handy for a variety of tasks, such as expressing 4929 * asynchronous actions in a concise manner, or logging every action payload. 4930 * 4931 * See `redux-thunk` package as an example of the Redux middleware. 4932 * 4933 * Because middleware is potentially asynchronous, this should be the first 4934 * store enhancer in the composition chain. 4935 *
4936 * Note that each middleware will be given the `dispatch` and `getState` functions 4937 * as named arguments. 4938 * 4939 * @param {...Function} middlewares The middleware chain to be applied. 4940 * @returns {Function} A store enhancer applying the middleware. 4941 */ 4942function applyMiddleware() { 4943 for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { 4944 middlewares[_key] = arguments[_key]; 4945 } 4946 4947 return function (createStore) { 4948 return function (reducer, preloadedState, enhancer) { 4949 var store = createStore(reducer, preloadedState, enhancer); 4950 var _dispatch = store.dispatch; 4951 var chain = []; 4952 4953 var middlewareAPI = { 4954 getState: store.getState, 4955 dispatch: function dispatch(action) { 4956 return _dispatch(action); 4957 } 4958 }; 4959 chain = middlewares.map(function (middleware) { 4960 return middleware(middlewareAPI); 4961 }); 4962 _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); 4963 4964 return _extends({}, store, { 4965 dispatch: _dispatch 4966 }); 4967 }; 4968 }; 4969} 4970 4971/***/ }), 4972/* 85 */ 4973/***/ (function(module, exports, __webpack_require__) { 4974 4975var createFind = __webpack_require__(86), 4976 findIndex = __webpack_require__(241); 4977 4978/** 4979 * Iterates over elements of `collection`, returning the first element 4980 * `predicate` returns truthy for. The predicate is invoked with three 4981 * arguments: (value, index|key, collection). 4982 * 4983 * @static 4984 * @memberOf _ 4985 * @since 0.1.0 4986 * @category Collection 4987 * @param {Array|Object} collection The collection to inspect. 4988 * @param {Function} [predicate=_.identity] The function invoked per iteration. 4989 * @param {number} [fromIndex=0] The index to search from. 4990 * @returns {*} Returns the matched element, else `undefined`. 4991 * @example 4992 * 4993 * var users = [ 4994 * { 'user': 'barney', 'age': 36, 'active': true }, 4995 * { 'user': 'fred', 'age': 40, 'active': false }, 4996 * { 'user': 'pebbles', 'age': 1, 'active': true } 4997 * ]; 4998 * 4999 * _.find(users, function(o) { return o.age < 40; }); 5000 * // => object for 'barney' 5001 * 5002 * // The `_.matches` iteratee shorthand. 5003 * _.find(users, { 'age': 1, 'active': true }); 5004 * // => object for 'pebbles' 5005 * 5006 * // The `_.matchesProperty` iteratee shorthand. 5007 * _.find(users, ['active', false]); 5008 * // => object for 'fred' 5009 * 5010 * // The `_.property` iteratee shorthand. 5011 * _.find(users, 'active'); 5012 * // => object for 'barney' 5013 */ 5014var find = createFind(findIndex); 5015 5016module.exports = find; 5017 5018 5019/***/ }), 5020/* 86 */ 5021/***/ (function(module, exports, __webpack_require__) { 5022 5023var baseIteratee = __webpack_require__(7), 5024 isArrayLike = __webpack_require__(12), 5025 keys = __webpack_require__(33); 5026 5027/** 5028 * Creates a `_.find` or `_.findLast` function. 5029 * 5030 * @private 5031 * @param {Function} findIndexFunc The function to find the collection index. 5032 * @returns {Function} Returns the new find function. 5033 */ 5034function createFind(findIndexFunc) { 5035 return function(collection, predicate, fromIndex) { 5036 var iterable = Object(collection); 5037 if (!isArrayLike(collection)) { 5038 var iteratee = baseIteratee(predicate, 3); 5039 collection = keys(collection); 5040 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 5041 } 5042 var index = findIndexFunc(collection, predicate, fromIndex); 5043 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 5044 }; 5045} 5046 5047module.exports = createFind; 5048 5049 5050/***/ }), 5051/* 87 */ 5052/***/ (function(module, exports, __webpack_require__) { 5053 5054var ListCache = __webpack_require__(29), 5055 stackClear = __webpack_require__(183), 5056 stackDelete = __webpack_require__(184), 5057 stackGet = __webpack_require__(185), 5058 stackHas = __webpack_require__(186), 5059 stackSet = __webpack_require__(187); 5060 5061/** 5062 * Creates a stack cache object to store key-value pairs. 5063 * 5064 * @private 5065 * @constructor 5066 * @param {Array} [entries] The key-value pairs to cache. 5067 */ 5068function Stack(entries) { 5069 var data = this.__data__ = new ListCache(entries); 5070 this.size = data.size; 5071} 5072 5073// Add methods to `Stack`. 5074Stack.prototype.clear = stackClear; 5075Stack.prototype['delete'] = stackDelete; 5076Stack.prototype.get = stackGet;
vendor: 4,437 bytes, lines 5077-5234
5077Stack.prototype.has = stackHas; 5078Stack.prototype.set = stackSet; 5079 5080module.exports = Stack; 5081 5082 5083/***/ }), 5084/* 88 */ 5085/***/ (function(module, exports, __webpack_require__) { 5086 5087var baseGetTag = __webpack_require__(11), 5088 isObject = __webpack_require__(6); 5089 5090/** `Object#toString` result references. */ 5091var asyncTag = '[object AsyncFunction]', 5092 funcTag = '[object Function]', 5093 genTag = '[object GeneratorFunction]', 5094 proxyTag = '[object Proxy]'; 5095 5096/** 5097 * Checks if `value` is classified as a `Function` object. 5098 * 5099 * @static 5100 * @memberOf _ 5101 * @since 0.1.0 5102 * @category Lang 5103 * @param {*} value The value to check. 5104 * @returns {boolean} Returns `true` if `value` is a function, else `false`. 5105 * @example 5106 * 5107 * _.isFunction(_); 5108 * // => true 5109 * 5110 * _.isFunction(/abc/); 5111 * // => false 5112 */ 5113function isFunction(value) { 5114 if (!isObject(value)) { 5115 return false; 5116 } 5117 // The use of `Object#toString` avoids issues with the `typeof` operator 5118 // in Safari 9 which returns 'object' for typed arrays and other constructors. 5119 var tag = baseGetTag(value); 5120 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 5121} 5122 5123module.exports = isFunction; 5124 5125 5126/***/ }), 5127/* 89 */ 5128/***/ (function(module, exports, __webpack_require__) { 5129 5130/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 5131var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 5132 5133module.exports = freeGlobal; 5134 5135/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23))) 5136 5137/***/ }), 5138/* 90 */ 5139/***/ (function(module, exports) { 5140 5141/** Used for built-in method references. */ 5142var funcProto = Function.prototype; 5143 5144/** Used to resolve the decompiled source of functions. */ 5145var funcToString = funcProto.toString; 5146 5147/** 5148 * Converts `func` to its source code. 5149 * 5150 * @private 5151 * @param {Function} func The function to convert. 5152 * @returns {string} Returns the source code. 5153 */ 5154function toSource(func) { 5155 if (func != null) { 5156 try { 5157 return funcToString.call(func); 5158 } catch (e) {} 5159 try { 5160 return (func + ''); 5161 } catch (e) {} 5162 } 5163 return ''; 5164} 5165 5166module.exports = toSource; 5167 5168 5169/***/ }), 5170/* 91 */ 5171/***/ (function(module, exports, __webpack_require__) { 5172 5173var baseIsEqualDeep = __webpack_require__(206), 5174 isObjectLike = __webpack_require__(9); 5175 5176/** 5177 * The base implementation of `_.isEqual` which supports partial comparisons 5178 * and tracks traversed objects. 5179 * 5180 * @private 5181 * @param {*} value The value to compare. 5182 * @param {*} other The other value to compare. 5183 * @param {boolean} bitmask The bitmask flags. 5184 * 1 - Unordered comparison 5185 * 2 - Partial comparison 5186 * @param {Function} [customizer] The function to customize comparisons. 5187 * @param {Object} [stack] Tracks traversed `value` and `other` objects. 5188 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 5189 */ 5190function baseIsEqual(value, other, bitmask, customizer, stack) { 5191 if (value === other) { 5192 return true; 5193 } 5194 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { 5195 return value !== value && other !== other; 5196 } 5197 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 5198} 5199 5200module.exports = baseIsEqual; 5201 5202 5203/***/ }), 5204/* 92 */ 5205/***/ (function(module, exports, __webpack_require__) { 5206 5207var SetCache = __webpack_require__(207), 5208 arraySome = __webpack_require__(210), 5209 cacheHas = __webpack_require__(211); 5210 5211/** Used to compose bitmasks for value comparisons. */ 5212var COMPARE_PARTIAL_FLAG = 1, 5213 COMPARE_UNORDERED_FLAG = 2; 5214 5215/** 5216 * A specialized version of `baseIsEqualDeep` for arrays with support for 5217 * partial deep comparisons. 5218 * 5219 * @private 5220 * @param {Array} array The array to compare. 5221 * @param {Array} other The other array to compare. 5222 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 5223 * @param {Function} customizer The function to customize comparisons. 5224 * @param {Function} equalFunc The function to determine equivalents of values. 5225 * @param {Object} stack Tracks traversed `array` and `other` objects. 5226 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. 5227 */ 5228function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 5229 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 5230 arrLength = array.length, 5231 othLength = other.length; 5232 5233 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 5234 return false;
vendor: 1,160 bytes, lines 5235-5273
5235 } 5236 // Assume cyclic values are equal. 5237 var stacked = stack.get(array); 5238 if (stacked && stack.get(other)) { 5239 return stacked == other; 5240 } 5241 var index = -1, 5242 result = true, 5243 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; 5244 5245 stack.set(array, other); 5246 stack.set(other, array); 5247 5248 // Ignore non-index properties. 5249 while (++index < arrLength) { 5250 var arrValue = array[index], 5251 othValue = other[index]; 5252 5253 if (customizer) { 5254 var compared = isPartial 5255 ? customizer(othValue, arrValue, index, other, array, stack) 5256 : customizer(arrValue, othValue, index, array, other, stack); 5257 } 5258 if (compared !== undefined) { 5259 if (compared) { 5260 continue; 5261 } 5262 result = false; 5263 break; 5264 } 5265 // Recursively compare arrays (susceptible to call stack limits). 5266 if (seen) { 5267 if (!arraySome(other, function(othValue, othIndex) { 5268 if (!cacheHas(seen, othIndex) && 5269 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 5270 return seen.push(othIndex); 5271 } 5272 })) { 5273 result = false;
vendor: 3,432 bytes, lines 5274-5410
5274 break; 5275 } 5276 } else if (!( 5277 arrValue === othValue || 5278 equalFunc(arrValue, othValue, bitmask, customizer, stack) 5279 )) { 5280 result = false; 5281 break; 5282 } 5283 } 5284 stack['delete'](array); 5285 stack['delete'](other); 5286 return result; 5287} 5288 5289module.exports = equalArrays; 5290 5291 5292/***/ }), 5293/* 93 */ 5294/***/ (function(module, exports, __webpack_require__) { 5295 5296var arrayPush = __webpack_require__(49), 5297 isArray = __webpack_require__(1); 5298 5299/** 5300 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses 5301 * `keysFunc` and `symbolsFunc` to get the enumerable property names and 5302 * symbols of `object`. 5303 * 5304 * @private 5305 * @param {Object} object The object to query. 5306 * @param {Function} keysFunc The function to get the keys of `object`. 5307 * @param {Function} symbolsFunc The function to get the symbols of `object`. 5308 * @returns {Array} Returns the array of property names and symbols. 5309 */ 5310function baseGetAllKeys(object, keysFunc, symbolsFunc) { 5311 var result = keysFunc(object); 5312 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 5313} 5314 5315module.exports = baseGetAllKeys; 5316 5317 5318/***/ }), 5319/* 94 */ 5320/***/ (function(module, exports, __webpack_require__) { 5321 5322var arrayFilter = __webpack_require__(218), 5323 stubArray = __webpack_require__(95); 5324 5325/** Used for built-in method references. */ 5326var objectProto = Object.prototype; 5327 5328/** Built-in value references. */ 5329var propertyIsEnumerable = objectProto.propertyIsEnumerable; 5330 5331/* Built-in method references for those with the same name as other `lodash` methods. */ 5332var nativeGetSymbols = Object.getOwnPropertySymbols; 5333 5334/** 5335 * Creates an array of the own enumerable symbols of `object`. 5336 * 5337 * @private 5338 * @param {Object} object The object to query. 5339 * @returns {Array} Returns the array of symbols. 5340 */ 5341var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 5342 if (object == null) { 5343 return []; 5344 } 5345 object = Object(object); 5346 return arrayFilter(nativeGetSymbols(object), function(symbol) { 5347 return propertyIsEnumerable.call(object, symbol); 5348 }); 5349}; 5350 5351module.exports = getSymbols; 5352 5353 5354/***/ }), 5355/* 95 */ 5356/***/ (function(module, exports) { 5357 5358/** 5359 * This method returns a new empty array. 5360 * 5361 * @static 5362 * @memberOf _ 5363 * @since 4.13.0 5364 * @category Util 5365 * @returns {Array} Returns the new empty array. 5366 * @example 5367 * 5368 * var arrays = _.times(2, _.stubArray); 5369 * 5370 * console.log(arrays); 5371 * // => [[], []] 5372 * 5373 * console.log(arrays[0] === arrays[1]); 5374 * // => false 5375 */ 5376function stubArray() { 5377 return []; 5378} 5379 5380module.exports = stubArray; 5381 5382 5383/***/ }), 5384/* 96 */ 5385/***/ (function(module, exports, __webpack_require__) { 5386 5387var baseTimes = __webpack_require__(219), 5388 isArguments = __webpack_require__(34), 5389 isArray = __webpack_require__(1), 5390 isBuffer = __webpack_require__(50), 5391 isIndex = __webpack_require__(51), 5392 isTypedArray = __webpack_require__(52); 5393 5394/** Used for built-in method references. */ 5395var objectProto = Object.prototype; 5396 5397/** Used to check objects for own properties. */ 5398var hasOwnProperty = objectProto.hasOwnProperty; 5399 5400/** 5401 * Creates an array of the enumerable property names of the array-like `value`. 5402 * 5403 * @private 5404 * @param {*} value The value to query. 5405 * @param {boolean} inherited Specify returning inherited property names. 5406 * @returns {Array} Returns the array of property names. 5407 */ 5408function arrayLikeKeys(value, inherited) { 5409 var isArr = isArray(value), 5410 isArg = !isArr && isArguments(value),
vendor: 4,425 bytes, lines 5411-5595
5411 isBuff = !isArr && !isArg && isBuffer(value), 5412 isType = !isArr && !isArg && !isBuff && isTypedArray(value), 5413 skipIndexes = isArr || isArg || isBuff || isType, 5414 result = skipIndexes ? baseTimes(value.length, String) : [], 5415 length = result.length; 5416 5417 for (var key in value) { 5418 if ((inherited || hasOwnProperty.call(value, key)) && 5419 !(skipIndexes && ( 5420 // Safari 9 has enumerable `arguments.length` in strict mode. 5421 key == 'length' || 5422 // Node.js 0.10 has enumerable non-index properties on buffers. 5423 (isBuff && (key == 'offset' || key == 'parent')) || 5424 // PhantomJS 2 has enumerable non-index properties on typed arrays. 5425 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || 5426 // Skip index properties. 5427 isIndex(key, length) 5428 ))) { 5429 result.push(key); 5430 } 5431 } 5432 return result; 5433} 5434 5435module.exports = arrayLikeKeys; 5436 5437 5438/***/ }), 5439/* 97 */ 5440/***/ (function(module, exports) { 5441 5442module.exports = function(module) { 5443 if (!module.webpackPolyfill) { 5444 module.deprecate = function() {}; 5445 module.paths = []; 5446 // module.parent = undefined by default 5447 if (!module.children) module.children = []; 5448 Object.defineProperty(module, "loaded", { 5449 enumerable: true, 5450 get: function() { 5451 return module.l; 5452 } 5453 }); 5454 Object.defineProperty(module, "id", { 5455 enumerable: true, 5456 get: function() { 5457 return module.i; 5458 } 5459 }); 5460 module.webpackPolyfill = 1; 5461 } 5462 return module; 5463}; 5464 5465 5466/***/ }), 5467/* 98 */ 5468/***/ (function(module, exports) { 5469 5470/** 5471 * Creates a unary function that invokes `func` with its argument transformed. 5472 * 5473 * @private 5474 * @param {Function} func The function to wrap. 5475 * @param {Function} transform The argument transform. 5476 * @returns {Function} Returns the new function. 5477 */ 5478function overArg(func, transform) { 5479 return function(arg) { 5480 return func(transform(arg)); 5481 }; 5482} 5483 5484module.exports = overArg; 5485 5486 5487/***/ }), 5488/* 99 */ 5489/***/ (function(module, exports, __webpack_require__) { 5490 5491var getNative = __webpack_require__(8), 5492 root = __webpack_require__(5); 5493 5494/* Built-in method references that are verified to be native. */ 5495var WeakMap = getNative(root, 'WeakMap'); 5496 5497module.exports = WeakMap; 5498 5499 5500/***/ }), 5501/* 100 */ 5502/***/ (function(module, exports, __webpack_require__) { 5503 5504var isObject = __webpack_require__(6); 5505 5506/** 5507 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 5508 * 5509 * @private 5510 * @param {*} value The value to check. 5511 * @returns {boolean} Returns `true` if `value` if suitable for strict 5512 * equality comparisons, else `false`. 5513 */ 5514function isStrictComparable(value) { 5515 return value === value && !isObject(value); 5516} 5517 5518module.exports = isStrictComparable; 5519 5520 5521/***/ }), 5522/* 101 */ 5523/***/ (function(module, exports) { 5524 5525/** 5526 * A specialized version of `matchesProperty` for source values suitable 5527 * for strict equality comparisons, i.e. `===`. 5528 * 5529 * @private 5530 * @param {string} key The key of the property to get. 5531 * @param {*} srcValue The value to match. 5532 * @returns {Function} Returns the new spec function. 5533 */ 5534function matchesStrictComparable(key, srcValue) { 5535 return function(object) { 5536 if (object == null) { 5537 return false; 5538 } 5539 return object[key] === srcValue && 5540 (srcValue !== undefined || (key in Object(object))); 5541 }; 5542} 5543 5544module.exports = matchesStrictComparable; 5545 5546 5547/***/ }), 5548/* 102 */ 5549/***/ (function(module, exports) { 5550 5551/** 5552 * A specialized version of `_.map` for arrays without support for iteratee 5553 * shorthands. 5554 * 5555 * @private 5556 * @param {Array} [array] The array to iterate over. 5557 * @param {Function} iteratee The function invoked per iteration. 5558 * @returns {Array} Returns the new mapped array. 5559 */ 5560function arrayMap(array, iteratee) { 5561 var index = -1, 5562 length = array == null ? 0 : array.length, 5563 result = Array(length); 5564 5565 while (++index < length) { 5566 result[index] = iteratee(array[index], index, array); 5567 } 5568 return result; 5569} 5570 5571module.exports = arrayMap; 5572 5573 5574/***/ }), 5575/* 103 */ 5576/***/ (function(module, exports) { 5577 5578/** 5579 * The base implementation of `_.property` without support for deep paths. 5580 * 5581 * @private 5582 * @param {string} key The key of the property to get. 5583 * @returns {Function} Returns the new accessor function. 5584 */ 5585function baseProperty(key) { 5586 return function(object) { 5587 return object == null ? undefined : object[key]; 5588 }; 5589} 5590 5591module.exports = baseProperty; 5592 5593 5594/***/ }), 5595/* 104 */
5596/***/ (function(module, exports) { 5597 5598/** 5599 * The base implementation of `_.findIndex` and `_.findLastIndex` without 5600 * support for iteratee shorthands. 5601 * 5602 * @private 5603 * @param {Array} array The array to inspect. 5604 * @param {Function} predicate The function invoked per iteration. 5605 * @param {number} fromIndex The index to search from. 5606 * @param {boolean} [fromRight] Specify iterating from right to left. 5607 * @returns {number} Returns the index of the matched value, else `-1`. 5608 */ 5609function baseFindIndex(array, predicate, fromIndex, fromRight) { 5610 var length = array.length, 5611 index = fromIndex + (fromRight ? 1 : -1); 5612 5613 while ((fromRight ? index-- : ++index < length)) { 5614 if (predicate(array[index], index, array)) { 5615 return index; 5616 } 5617 } 5618 return -1; 5619} 5620 5621module.exports = baseFindIndex; 5622 5623 5624/***/ }), 5625/* 105 */ 5626/***/ (function(module, exports, __webpack_require__) { 5627 5628var toFinite = __webpack_require__(242); 5629 5630/** 5631 * Converts `value` to an integer. 5632 * 5633 * **Note:** This method is loosely based on 5634 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). 5635 * 5636 * @static 5637 * @memberOf _ 5638 * @since 4.0.0 5639 * @category Lang 5640 * @param {*} value The value to convert. 5641 * @returns {number} Returns the converted integer. 5642 * @example 5643 * 5644 * _.toInteger(3.2); 5645 * // => 3 5646 * 5647 * _.toInteger(Number.MIN_VALUE); 5648 * // => 0 5649 * 5650 * _.toInteger(Infinity); 5651 * // => 1.7976931348623157e+308 5652 * 5653 * _.toInteger('3.2'); 5654 * // => 3 5655 */ 5656function toInteger(value) { 5657 var result = toFinite(value), 5658 remainder = result % 1; 5659 5660 return result === result ? (remainder ? result - remainder : result) : 0; 5661} 5662 5663module.exports = toInteger; 5664 5665 5666/***/ }), 5667/* 106 */ 5668/***/ (function(module, exports, __webpack_require__) { 5669 5670"use strict"; 5671 5672 5673var _interopRequireDefault = __webpack_require__(0); 5674 5675Object.defineProperty(exports, "__esModule", { 5676 value: true 5677}); 5678exports.inQuad = inQuad; 5679exports.outQuad = outQuad; 5680exports.inOutQuad = inOutQuad; 5681exports.inCubic = inCubic; 5682exports.outCubic = outCubic; 5683exports.inOutCubic = inOutCubic; 5684exports.inQuart = inQuart; 5685exports.outQuart = outQuart; 5686exports.inOutQuart = inOutQuart; 5687exports.inQuint = inQuint; 5688exports.outQuint = outQuint; 5689exports.inOutQuint = inOutQuint; 5690exports.inSine = inSine; 5691exports.outSine = outSine; 5692exports.inOutSine = inOutSine; 5693exports.inExpo = inExpo; 5694exports.outExpo = outExpo; 5695exports.inOutExpo = inOutExpo; 5696exports.inCirc = inCirc; 5697exports.outCirc = outCirc; 5698exports.inOutCirc = inOutCirc; 5699exports.outBounce = outBounce; 5700exports.inBack = inBack; 5701exports.outBack = outBack; 5702exports.inOutBack = inOutBack; 5703exports.inElastic = inElastic; 5704exports.outElastic = outElastic; 5705exports.inOutElastic = inOutElastic; 5706exports.swingFromTo = swingFromTo; 5707exports.swingFrom = swingFrom; 5708exports.swingTo = swingTo; 5709exports.bounce = bounce; 5710exports.bouncePast = bouncePast; 5711exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; 5712 5713var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn 5714// Easing Equations (c) 2003 Robert Penner, BSD license 5715// https://raw.github.com/danro/easing-js/master/LICENSE 5716 5717 5718var magicSwing = 1.70158; 5719var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); 5720exports.ease = ease; 5721var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); 5722exports.easeIn = easeIn; 5723var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); 5724exports.easeOut = easeOut; 5725var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); 5726exports.easeInOut = easeInOut; 5727 5728function inQuad(pos) { 5729 return Math.pow(pos, 2); 5730} 5731 5732function outQuad(pos) { 5733 return -(Math.pow(pos - 1, 2) - 1); 5734} 5735 5736function inOutQuad(pos) { 5737 if ((pos /= 0.5) < 1) { 5738 return 0.5 * Math.pow(pos, 2); 5739 } 5740 5741 return -0.5 * ((pos -= 2) * pos - 2); 5742} 5743 5744function inCubic(pos) { 5745 return Math.pow(pos, 3); 5746} 5747 5748function outCubic(pos) { 5749 return Math.pow(pos - 1, 3) + 1; 5750} 5751 5752function inOutCubic(pos) { 5753 if ((pos /= 0.5) < 1) { 5754 return 0.5 * Math.pow(pos, 3); 5755 } 5756 5757 return 0.5 * (Math.pow(pos - 2, 3) + 2); 5758} 5759 5760function inQuart(pos) { 5761 return Math.pow(pos, 4); 5762} 5763 5764function outQuart(pos) { 5765 return -(Math.pow(pos - 1, 4) - 1); 5766} 5767 5768function inOutQuart(pos) { 5769 if ((pos /= 0.5) < 1) { 5770 return 0.5 * Math.pow(pos, 4); 5771 } 5772 5773 return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); 5774} 5775 5776function inQuint(pos) { 5777 return Math.pow(pos, 5); 5778} 5779 5780function outQuint(pos) { 5781 return Math.pow(pos - 1, 5) + 1; 5782} 5783 5784function inOutQuint(pos) { 5785 if ((pos /= 0.5) < 1) { 5786 return 0.5 * Math.pow(pos, 5); 5787 } 5788 5789 return 0.5 * (Math.pow(pos - 2, 5) + 2); 5790} 5791 5792function inSine(pos) { 5793 return -Math.cos(pos * (Math.PI / 2)) + 1; 5794} 5795 5796function outSine(pos) { 5797 return Math.sin(pos * (Math.PI / 2)); 5798} 5799 5800function inOutSine(pos) { 5801 return -0.5 * (Math.cos(Math.PI * pos) - 1); 5802} 5803 5804function inExpo(pos) { 5805 return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); 5806} 5807 5808function outExpo(pos) { 5809 return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; 5810} 5811 5812function inOutExpo(pos) { 5813 if (pos === 0) { 5814 return 0; 5815 } 5816 5817 if (pos === 1) { 5818 return 1; 5819 } 5820 5821 if ((pos /= 0.5) < 1) { 5822 return 0.5 * Math.pow(2, 10 * (pos - 1)); 5823 } 5824 5825 return 0.5 * (-Math.pow(2, -10 * --pos) + 2); 5826} 5827 5828function inCirc(pos) { 5829 return -(Math.sqrt(1 - pos * pos) - 1); 5830} 5831 5832function outCirc(pos) { 5833 return Math.sqrt(1 - Math.pow(pos - 1, 2)); 5834} 5835 5836function inOutCirc(pos) { 5837 if ((pos /= 0.5) < 1) { 5838 return -0.5 * (Math.sqrt(1 - pos * pos) - 1); 5839 } 5840 5841 return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); 5842} 5843 5844function outBounce(pos) { 5845 if (pos < 1 / 2.75) { 5846 return 7.5625 * pos * pos; 5847 } else if (pos < 2 / 2.75) { 5848 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 5849 } else if (pos < 2.5 / 2.75) { 5850 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 5851 } else { 5852 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 5853 } 5854} 5855 5856function inBack(pos) { 5857 var s = magicSwing; 5858 return pos * pos * ((s + 1) * pos - s); 5859} 5860 5861function outBack(pos) { 5862 var s = magicSwing; 5863 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 5864} 5865 5866function inOutBack(pos) { 5867 var s = magicSwing; 5868 5869 if ((pos /= 0.5) < 1) { 5870 return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); 5871 } 5872 5873 return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); 5874} 5875 5876function inElastic(pos) { 5877 var s = magicSwing; 5878 var p = 0; 5879 var a = 1; 5880 5881 if (pos === 0) { 5882 return 0; 5883 } 5884 5885 if (pos === 1) { 5886 return 1; 5887 } 5888 5889 if (!p) { 5890 p = 0.3; 5891 } 5892 5893 if (a < 1) { 5894 a = 1; 5895 s = p / 4; 5896 } else { 5897 s = p / (2 * Math.PI) * Math.asin(1 / a); 5898 } 5899
5900 return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 5901} 5902 5903function outElastic(pos) { 5904 var s = magicSwing; 5905 var p = 0; 5906 var a = 1; 5907 5908 if (pos === 0) { 5909 return 0; 5910 } 5911 5912 if (pos === 1) { 5913 return 1; 5914 } 5915 5916 if (!p) { 5917 p = 0.3; 5918 } 5919 5920 if (a < 1) { 5921 a = 1; 5922 s = p / 4; 5923 } else { 5924 s = p / (2 * Math.PI) * Math.asin(1 / a); 5925 } 5926 5927 return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; 5928} 5929 5930function inOutElastic(pos) { 5931 var s = magicSwing; 5932 var p = 0; 5933 var a = 1; 5934 5935 if (pos === 0) { 5936 return 0; 5937 } 5938 5939 if ((pos /= 1 / 2) === 2) { 5940 return 1; 5941 } 5942 5943 if (!p) { 5944 p = 0.3 * 1.5; 5945 } 5946 5947 if (a < 1) { 5948 a = 1; 5949 s = p / 4; 5950 } else { 5951 s = p / (2 * Math.PI) * Math.asin(1 / a); 5952 } 5953 5954 if (pos < 1) { 5955 return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 5956 } 5957 5958 return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; 5959} 5960 5961function swingFromTo(pos) { 5962 var s = magicSwing; 5963 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); 5964} 5965 5966function swingFrom(pos) { 5967 var s = magicSwing; 5968 return pos * pos * ((s + 1) * pos - s); 5969} 5970 5971function swingTo(pos) { 5972 var s = magicSwing; 5973 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 5974} 5975 5976function bounce(pos) { 5977 if (pos < 1 / 2.75) { 5978 return 7.5625 * pos * pos; 5979 } else if (pos < 2 / 2.75) { 5980 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 5981 } else if (pos < 2.5 / 2.75) { 5982 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 5983 } else { 5984 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 5985 } 5986} 5987 5988function bouncePast(pos) { 5989 if (pos < 1 / 2.75) { 5990 return 7.5625 * pos * pos; 5991 } else if (pos < 2 / 2.75) { 5992 return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); 5993 } else if (pos < 2.5 / 2.75) { 5994 return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); 5995 } else { 5996 return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); 5997 } 5998} 5999 6000/***/ }), 6001/* 107 */ 6002/***/ (function(module, exports) { 6003 6004/** 6005 * https://github.com/gre/bezier-easing 6006 * BezierEasing - use bezier curve for transition easing function 6007 * by Gaëtan Renaudeau 2014 - 2015 â MIT License 6008 */ 6009 6010// These values are established by empiricism with tests (tradeoff: performance VS precision) 6011var NEWTON_ITERATIONS = 4; 6012var NEWTON_MIN_SLOPE = 0.001; 6013var SUBDIVISION_PRECISION = 0.0000001; 6014var SUBDIVISION_MAX_ITERATIONS = 10; 6015 6016var kSplineTableSize = 11; 6017var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); 6018 6019var float32ArraySupported = typeof Float32Array === 'function'; 6020 6021function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } 6022function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } 6023function C (aA1) { return 3.0 * aA1; } 6024 6025// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. 6026function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } 6027 6028// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. 6029function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } 6030 6031function binarySubdivide (aX, aA, aB, mX1, mX2) { 6032 var currentX, currentT, i = 0; 6033 do { 6034 currentT = aA + (aB - aA) / 2.0; 6035 currentX = calcBezier(currentT, mX1, mX2) - aX; 6036 if (currentX > 0.0) { 6037 aB = currentT; 6038 } else { 6039 aA = currentT; 6040 } 6041 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); 6042 return currentT; 6043} 6044 6045function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { 6046 for (var i = 0; i < NEWTON_ITERATIONS; ++i) { 6047 var currentSlope = getSlope(aGuessT, mX1, mX2); 6048 if (currentSlope === 0.0) { 6049 return aGuessT; 6050 } 6051 var currentX = calcBezier(aGuessT, mX1, mX2) - aX; 6052 aGuessT -= currentX / currentSlope; 6053 } 6054 return aGuessT; 6055} 6056 6057module.exports = function bezier (mX1, mY1, mX2, mY2) { 6058 if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { 6059 throw new Error('bezier x values must be in [0, 1] range'); 6060 } 6061 6062 // Precompute samples table 6063 var sampleValues = float32ArraySupported ? new Float32Array(kS
6063plineTableSize) : new Array(kSplineTableSize); 6064 if (mX1 !== mY1 || mX2 !== mY2) { 6065 for (var i = 0; i < kSplineTableSize; ++i) { 6066 sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); 6067 } 6068 } 6069 6070 function getTForX (aX) { 6071 var intervalStart = 0.0; 6072 var currentSample = 1; 6073 var lastSample = kSplineTableSize - 1; 6074 6075 for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { 6076 intervalStart += kSampleStepSize; 6077 } 6078 --currentSample; 6079 6080 // Interpolate to provide an initial guess for t 6081 var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); 6082 var guessForT = intervalStart + dist * kSampleStepSize; 6083 6084 var initialSlope = getSlope(guessForT, mX1, mX2); 6085 if (initialSlope >= NEWTON_MIN_SLOPE) { 6086 return newtonRaphsonIterate(aX, guessForT, mX1, mX2); 6087 } else if (initialSlope === 0.0) { 6088 return guessForT; 6089 } else { 6090 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); 6091 } 6092 } 6093 6094 return function BezierEasing (x) { 6095 if (mX1 === mY1 && mX2 === mY2) { 6096 return x; // linear 6097 } 6098 // Because JavaScript number are imprecise, we should guarantee the extremes are right. 6099 if (x === 0) { 6100 return 0; 6101 } 6102 if (x === 1) { 6103 return 1; 6104 } 6105 return calcBezier(getTForX(x), mY1, mY2); 6106 }; 6107}; 6108 6109 6110/***/ }), 6111/* 108 */ 6112/***/ (function(module, exports, __webpack_require__) { 6113 6114"use strict"; 6115 6116 6117var _interopRequireDefault2 = __webpack_require__(0); 6118 6119var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); 6120 6121var _interopRequireDefault = __webpack_require__(0); 6122 6123var _interopRequireWildcard = __webpack_require__(13); 6124 6125Object.defineProperty(exports, "__esModule", { 6126 value: true 6127}); 6128exports.optimizeFloat = optimizeFloat; 6129exports.createBezierEasing = createBezierEasing; 6130exports.applyEasing = applyEasing; 6131 6132var easings = _interopRequireWildcard(__webpack_require__(106)); 6133 6134var _bezierEasing = _interopRequireDefault(__webpack_require__(107)); 6135 6136function optimizeFloat(value) { 6137 var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; 6138 var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; 6139 var pow = Math.pow(base, digits); 6140 6141 var _float = Number(Math.round(value * pow) / pow); 6142 6143 return Math.abs(_float) > 0.0001 ? _float : 0; 6144} 6145 6146function createBezierEasing(easing) { 6147 return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); 6148} 6149 6150function applyEasing(easing, position, customEasingFn) { 6151 if (position === 0) { 6152 return 0; 6153 } 6154 6155 if (position === 1) { 6156 return 1; 6157 } 6158 6159 if (customEasingFn) { 6160 return optimizeFloat(position > 0 ? customEasingFn(position) : position); 6161 } 6162 6163 return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); 6164} 6165 6166/***/ }), 6167/* 109 */ 6168/***/ (function(module, exports, __webpack_require__) { 6169 6170var arrayWithoutHoles = __webpack_require__(243); 6171 6172var iterableToArray = __webpack_require__(244); 6173 6174var nonIterableSpread = __webpack_require__(245); 6175 6176function _toConsumableArray(arr) { 6177 return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); 6178} 6179 6180module.exports = _toConsumableArray; 6181 6182/***/ }), 6183/* 110 */ 6184/***/ (function(module, exports, __webpack_require__) { 6185 6186"use strict"; 6187 6188 6189var _interopRequireDefault = __webpack_require__(0); 6190 6191var _defineProperty2 = _interopRequireDefault(__webpack_require__(27)); 6192 6193Object.defineProperty(exports, "__esModule", { 6194 value: true 6195}); 6196exports.isPluginType = isPluginType; 6197exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; 6198 6199var _IX2LottieUtils = __webpack_require__(247); 6200 6201var _constants = __webpack_require__(2); 6202 6203var _IX2BrowserSupport = __webpack_require__(45); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined 6204 6205 6206var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, {
6207 getConfig: _IX2LottieUtils.getPluginConfig, 6208 getOrigin: _IX2LottieUtils.getPluginOrigin, 6209 getDuration: _IX2LottieUtils.getPluginDuration, 6210 getDestination: _IX2LottieUtils.getPluginDestination, 6211 createInstance: _IX2LottieUtils.createPluginInstance, 6212 render: _IX2LottieUtils.renderPlugin, 6213 clear: _IX2LottieUtils.clearPlugin 6214}); 6215 6216function isPluginType(actionTypeId) { 6217 return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; 6218} 6219 6220var pluginMethod = function pluginMethod(methodName) { 6221 return function (actionTypeId) { 6222 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 6223 // IX2 plugins require browser libs for now 6224 return function () { 6225 return null; 6226 }; 6227 } 6228 6229 var plugin = pluginMethodMap[actionTypeId]; 6230 6231 if (!plugin) { 6232 throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); 6233 } 6234 6235 var method = plugin[methodName]; 6236 6237 if (!method) { 6238 throw new Error("IX2 invalid plugin method: ".concat(methodName)); 6239 } 6240 6241 return method; 6242 }; 6243}; 6244 6245var getPluginConfig = pluginMethod('getConfig'); 6246exports.getPluginConfig = getPluginConfig; 6247var getPluginOrigin = pluginMethod('getOrigin'); 6248exports.getPluginOrigin = getPluginOrigin; 6249var getPluginDuration = pluginMethod('getDuration'); 6250exports.getPluginDuration = getPluginDuration; 6251var getPluginDestination = pluginMethod('getDestination'); 6252exports.getPluginDestination = getPluginDestination; 6253var createPluginInstance = pluginMethod('createInstance'); 6254exports.createPluginInstance = createPluginInstance; 6255var renderPlugin = pluginMethod('render'); 6256exports.renderPlugin = renderPlugin; 6257var clearPlugin = pluginMethod('clear'); 6258exports.clearPlugin = clearPlugin; 6259 6260/***/ }), 6261/* 111 */ 6262/***/ (function(module, exports, __webpack_require__) { 6263 6264var baseForOwn = __webpack_require__(112), 6265 createBaseEach = __webpack_require__(254); 6266 6267/** 6268 * The base implementation of `_.forEach` without support for iteratee shorthands. 6269 * 6270 * @private 6271 * @param {Array|Object} collection The collection to iterate over. 6272 * @param {Function} iteratee The function invoked per iteration. 6273 * @returns {Array|Object} Returns `collection`. 6274 */ 6275var baseEach = createBaseEach(baseForOwn); 6276 6277module.exports = baseEach; 6278 6279 6280/***/ }), 6281/* 112 */ 6282/***/ (function(module, exports, __webpack_require__) { 6283 6284var baseFor = __webpack_require__(252), 6285 keys = __webpack_require__(33); 6286 6287/** 6288 * The base implementation of `_.forOwn` without support for iteratee shorthands. 6289 * 6290 * @private 6291 * @param {Object} object The object to iterate over. 6292 * @param {Function} iteratee The function invoked per iteration. 6293 * @returns {Object} Returns `object`. 6294 */ 6295function baseForOwn(object, iteratee) { 6296 return object && baseFor(object, iteratee, keys); 6297} 6298 6299module.exports = baseForOwn; 6300 6301 6302/***/ }), 6303/* 113 */ 6304/***/ (function(module, exports, __webpack_require__) { 6305 6306"use strict"; 6307 6308 6309var _interopRequireDefault = __webpack_require__(258); 6310 6311exports.__esModule = true; 6312exports.default = void 0; 6313 6314var _shallowEqual = _interopRequireDefault(__webpack_require__(259)); 6315 6316var _default = _shallowEqual.default; 6317exports.default = _default; 6318 6319/***/ }), 6320/* 114 */ 6321/***/ (function(module, exports, __webpack_require__) { 6322 6323"use strict"; 6324 6325 6326var _interopRequireDefault2 = __webpack_require__(0); 6327 6328var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(109)); 6329 6330var _interopRequireWildcard = __webpack_require__(13); 6331 6332var _interopRequireDefault = __webpack_require__(0); 6333 6334Object.defineProperty(exports, "__esModule", { 6335 value: true 6336}); 6337exports.observeRequests = observeRequests; 6338exports.startEngine = startEngine; 6339exports.stopEngine = stopEngine; 6340exports.stopAllActionGroups = stopAllActionGroups; 6341exports.stopActionGroup = stopActionGroup; 6342exports.startActionGroup = startActionGroup; 6343 6344var _extends2 = _interopRequireDefault(__webpack_require__(28)); 6345 6346var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(262)); 6347 6348var _find = _interopRequireDefault(__webpack_require__(85)); 6349 6350var _get = _interopRequireDefault(__webpack_require__(35)); 6351 6352var _size = _interopRequireDefault(__webpack_require__(263)); 6353 6354var _omitBy = _interopRequireDefault(__webpack_require__(269)); 6355 6356var _isEmpty = _interopRequireDefault(__webpack_require__(281)); 6357 6358var _mapValues = _interopRequireDefault(__webpack_require__(282)); 6359
6360var _forEach = _interopRequireDefault(__webpack_require__(283)); 6361 6362var _throttle = _interopRequireDefault(__webpack_require__(286)); 6363 6364var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); 6365 6366var _constants = __webpack_require__(2); 6367 6368var _utils = __webpack_require__(289); 6369 6370var _shared = __webpack_require__(10); 6371 6372var _IX2EngineActions = __webpack_require__(61); 6373 6374var elementApi = _interopRequireWildcard(__webpack_require__(291)); 6375 6376var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(292)); 6377/* eslint-env browser */ 6378 6379 6380var _constants$IX2EngineC = _constants.IX2EngineConstants, 6381 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 6382 BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, 6383 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 6384 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 6385 W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; 6386var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 6387 getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, 6388 getElementId = _shared$IX2VanillaUti.getElementId, 6389 getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, 6390 observeStore = _shared$IX2VanillaUti.observeStore, 6391 getInstanceId = _shared$IX2VanillaUti.getInstanceId, 6392 renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, 6393 clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, 6394 getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, 6395 getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, 6396 getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, 6397 reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, 6398 shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, 6399 getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, 6400 shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, 6401 cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, 6402 stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, 6403 mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual; 6404var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, 6405 isPluginType = _shared$IX2VanillaPlu.isPluginType, 6406 createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, 6407 getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; 6408var ua = navigator.userAgent; 6409var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy 6410 6411var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe 6412 6413function observeRequests(store) { 6414 observeStore({ 6415 store: store, 6416 select: function select(_ref) { 6417 var ixRequest = _ref.ixRequest; 6418 return ixRequest.preview; 6419 }, 6420 onChange: handlePreviewRequest 6421 }); 6422 observeStore({ 6423 store: store, 6424 select: function select(_ref2) { 6425 var ixRequest = _ref2.ixRequest; 6426 return ixRequest.playback; 6427 }, 6428 onChange: handlePlaybackRequest 6429 }); 6430 observeStore({ 6431 store: store, 6432 select: function select(_ref3) { 6433 var ixRequest = _ref3.ixRequest; 6434 return ixRequest.stop; 6435 }, 6436 onChange: handleStopRequest 6437 }); 6438 observeStore({ 6439 store: store, 6440 select: function select(_ref4) { 6441 var ixRequest = _ref4.ixRequest; 6442 return ixRequest.clear; 6443 }, 6444 onChange: handleClearRequest 6445 }); 6446} 6447 6448function observeMediaQueryChange(store) { 6449 observeStore({ 6450 store: store, 6451 select: function select(_ref5) { 6452 var ixSession = _ref5.ixSession; 6453 return ixSession.mediaQueryKey; 6454 }, 6455 onChange: function onChange() { 6456 stopEngine(store); 6457 clearAllStyles({ 6458 store: store, 6459 elementApi: elementApi 6460 }); 6461 startEngine({ 6462 store: store, 6463 allowEvents: true 6464 }); 6465 dispatchPageUpdateEvent(); 6466 } 6467 }); 6468} 6469 6470function observeOneRenderTick(store, onTick) { 6471 var unsubscribe = observeStore({ 6472 store: store, 6473 select: function select(_ref6) { 6474 var ixSession = _ref6.ixSession; 6475 return ixSession.tick; 6476 }, 6477 onChange: function onChange(tick) { 6478 onTick(tick); 6479 unsubscribe(); 6480 } 6481 }); 6482} 6483 6484function handlePreviewRequest(_ref7, store) { 6485 var rawData = _ref7.rawData, 6486 defer = _ref7.defer; 6487 6488 var start = function start() { 6489 startEngine({ 6490 store: store, 6491 rawData: rawData, 6492 allowEvents: true 6493 }); 6494 dispatchPageUpdateEvent(); 6495 }; 6496 6497 defer ? setTimeout(start, 0) : start(); 6498} 6499 6500function dispatchPageUpdateEvent() { 6501 document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); 6502} 6503 6504function handlePlaybackRequest(playback, store) { 6505 var actionTypeId = playback.actionTypeId, 6506 actionListId = playback.actionListId, 6507 actionItemId = playback.actionItemId, 6508 eventId = playback.eventId, 6509 allowEvents = playback.allowEvents, 6510 immediate = playback.immediate, 6511 testManual = playback.testManual, 6512 _playback$verbose = playback.verbose, 6513 verbose = _playback$verbose === void 0 ? true : _playback$verbose; 6514 var rawData = playback.rawData; 6515 6516 if (actionListId && actionItemId && rawData && immediate) { 6517 var actionList = rawData.actionLists[actionListId]; 6518 6519 if (actionList) { 6520 rawData = reduceListToGroup({ 6521 actionList: actionList, 6522 actionItemId: actionItemId, 6523 rawData: rawData 6524 }); 6525 } 6526 } 6527 6528 startEngine({ 6529 store: store, 6530 rawData: rawData, 6531 allowEvents: allowEvents, 6532 testManual: testManual 6533 }); 6534 6535 if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || (0, _utils.isQuickEffect)(actionTypeId)) { 6536 stopActionGroup({ 6537 store: store, 6538 actionListId: actionListId 6539 }); 6540 renderInitialGroup({ 6541 store: store, 6542 actionListId: actionListId, 6543 eventId: eventId 6544 }); 6545 var started = startActionGroup({ 6546 store: store, 6547 eventId: eventId, 6548 actionListId: actionListId, 6549 immediate: immediate,
6550 verbose: verbose 6551 }); 6552 6553 if (verbose && started) { 6554 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 6555 actionListId: actionListId, 6556 isPlaying: !immediate 6557 })); 6558 } 6559 } 6560} 6561 6562function handleStopRequest(_ref8, store) { 6563 var actionListId = _ref8.actionListId; 6564 6565 if (actionListId) { 6566 stopActionGroup({ 6567 store: store, 6568 actionListId: actionListId 6569 }); 6570 } else { 6571 stopAllActionGroups({ 6572 store: store 6573 }); 6574 } 6575 6576 stopEngine(store); 6577} 6578 6579function handleClearRequest(state, store) { 6580 stopEngine(store); 6581 clearAllStyles({ 6582 store: store, 6583 elementApi: elementApi 6584 }); 6585} // $FlowFixMe 6586 6587 6588function startEngine(_ref9) { 6589 var store = _ref9.store, 6590 rawData = _ref9.rawData, 6591 allowEvents = _ref9.allowEvents, 6592 testManual = _ref9.testManual; 6593 6594 var _store$getState = store.getState(), 6595 ixSession = _store$getState.ixSession; 6596 6597 if (rawData) { 6598 store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); 6599 } 6600 6601 if (!ixSession.active) { 6602 store.dispatch((0, _IX2EngineActions.sessionInitialized)({ 6603 hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)) 6604 })); 6605 6606 if (allowEvents) { 6607 bindEvents(store); 6608 addDocumentClass(); 6609 6610 if (store.getState().ixSession.hasDefinedMediaQueries) { 6611 observeMediaQueryChange(store); 6612 } 6613 } 6614 6615 store.dispatch((0, _IX2EngineActions.sessionStarted)()); 6616 startRenderLoop(store, testManual); 6617 } 6618} 6619 6620function addDocumentClass() { 6621 var _document = document, 6622 documentElement = _document.documentElement; // $FlowFixMe 6623 6624 if (documentElement.className.indexOf(W_MOD_IX) === -1) { 6625 // $FlowFixMe 6626 documentElement.className += " ".concat(W_MOD_IX); 6627 } 6628} 6629 6630function startRenderLoop(store, testManual) { 6631 var handleFrame = function handleFrame(now) { 6632 var _store$getState2 = store.getState(), 6633 ixSession = _store$getState2.ixSession, 6634 ixParameters = _store$getState2.ixParameters; 6635 6636 if (ixSession.active) { 6637 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); 6638 6639 if (testManual) { 6640 observeOneRenderTick(store, handleFrame); 6641 } else { 6642 requestAnimationFrame(handleFrame); 6643 } 6644 } 6645 }; 6646 6647 handleFrame(window.performance.now()); 6648} // $FlowFixMe 6649 6650 6651function stopEngine(store) { 6652 var _store$getState3 = store.getState(), 6653 ixSession = _store$getState3.ixSession; 6654 6655 if (ixSession.active) { 6656 var eventListeners = ixSession.eventListeners; 6657 eventListeners.forEach(clearEventListener); 6658 store.dispatch((0, _IX2EngineActions.sessionStopped)()); 6659 } 6660} 6661 6662function clearEventListener(_ref10) { 6663 var target = _ref10.target, 6664 listenerParams = _ref10.listenerParams; 6665 target.removeEventListener.apply(target, listenerParams); 6666} 6667 6668function createGroupInstances(_ref11) { 6669 var store = _ref11.store, 6670 eventStateKey = _ref11.eventStateKey, 6671 eventTarget = _ref11.eventTarget, 6672 eventId = _ref11.eventId, 6673 eventConfig = _ref11.eventConfig, 6674 actionListId = _ref11.actionListId, 6675 parameterGroup = _ref11.parameterGroup, 6676 smoothing = _ref11.smoothing, 6677 restingValue = _ref11.restingValue; 6678 6679 var _store$getState4 = store.getState(), 6680 ixData = _store$getState4.ixData, 6681 ixSession = _store$getState4.ixSession; 6682 6683 var events = ixData.events; 6684 var event = events[eventId]; 6685 var eventTypeId = event.eventTypeId; 6686 var targetCache = {}; 6687 var instanceActionGroups = {}; 6688 var instanceConfigs = []; 6689 var continuousActionGroups = parameterGroup.continuousActionGroups; 6690 var parameterId = parameterGroup.id; 6691 6692 if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { 6693 parameterId = getNamespacedParameterId(eventStateKey, parameterId); 6694 } // Limit affected elements when event target is within a boundary node 6695 6696 6697 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 6698 continuousActionGroups.forEach(function (actionGroup) { 6699 var keyframe = actionGroup.keyframe, 6700 actionItems = actionGroup.actionItems;
6701 actionItems.forEach(function (actionItem) { 6702 var actionTypeId = actionItem.actionTypeId; 6703 var target = actionItem.config.target; 6704 6705 if (!target) { 6706 return; 6707 } 6708 6709 var elementRoot = target.boundaryMode ? eventElementRoot : null; 6710 var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; 6711 instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); 6712 6713 if (!targetCache[key]) { 6714 targetCache[key] = true; 6715 var config = actionItem.config; 6716 getAffectedElements({ 6717 config: config, 6718 event: event, 6719 eventTarget: eventTarget, 6720 elementRoot: elementRoot, 6721 elementApi: elementApi 6722 }).forEach(function (element) { 6723 instanceConfigs.push({ 6724 element: element, 6725 key: key 6726 }); 6727 }); 6728 } 6729 }); 6730 }); 6731 instanceConfigs.forEach(function (_ref12) { 6732 var element = _ref12.element, 6733 key = _ref12.key; 6734 var actionGroups = instanceActionGroups[key]; 6735 var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); 6736 var actionTypeId = actionItem.actionTypeId; 6737 var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe 6738 createPluginInstance(actionTypeId)(element, actionItem) : null; 6739 var destination = getDestinationValues({ 6740 element: element, 6741 actionItem: actionItem, 6742 elementApi: elementApi 6743 }, // $FlowFixMe 6744 pluginInstance); 6745 createInstance({ 6746 store: store, 6747 element: element, 6748 eventId: eventId, 6749 actionListId: actionListId, 6750 actionItem: actionItem, 6751 destination: destination, 6752 continuous: true, 6753 parameterId: parameterId, 6754 actionGroups: actionGroups, 6755 smoothing: smoothing, 6756 restingValue: restingValue, 6757 pluginInstance: pluginInstance 6758 }); 6759 }); 6760} 6761 6762function appendActionItem() { 6763 var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 6764 var keyframe = arguments.length > 1 ? arguments[1] : undefined; 6765 var actionItem = arguments.length > 2 ? arguments[2] : undefined; 6766 var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); 6767 var groupIndex; 6768 newActionGroups.some(function (group, index) { 6769 if (group.keyframe === keyframe) { 6770 groupIndex = index; 6771 return true; 6772 } 6773 6774 return false; 6775 }); 6776 6777 if (groupIndex == null) { 6778 groupIndex = newActionGroups.length; 6779 newActionGroups.push({ 6780 keyframe: keyframe, 6781 actionItems: [] 6782 }); 6783 } 6784 6785 newActionGroups[groupIndex].actionItems.push(actionItem); 6786 return newActionGroups; 6787} 6788 6789function bindEvents(store) { 6790 var _store$getState5 = store.getState(), 6791 ixData = _store$getState5.ixData; 6792 6793 var eventTypeMap = ixData.eventTypeMap; 6794 updateViewportWidth(store); 6795 (0, _forEach["default"])(eventTypeMap, function (events, key) { 6796 var logic = _IX2VanillaEvents["default"][key]; 6797 6798 if (!logic) { 6799 console.warn("IX2 event type not configured: ".concat(key)); 6800 return; 6801 } 6802 6803 bindEventType({ 6804 logic: logic, 6805 store: store, 6806 events: events 6807 }); 6808 }); 6809 6810 var _store$getState6 = store.getState(), 6811 ixSession = _store$getState6.ixSession; 6812 6813 if (ixSession.eventListeners.length) { 6814 bindResizeEvents(store); 6815 } 6816} 6817 6818var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; 6819 6820function bindResizeEvents(store) { 6821 var handleResize = function handleResize() { 6822 updateViewportWidth(store); 6823 }; 6824 6825 WINDOW_RESIZE_EVENTS.forEach(function (type) { 6826 window.addEventListener(type, handleResize); 6827 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); 6828 }); 6829 handleResize(); 6830} 6831 6832function updateViewportWidth(store) { 6833 var _store$getState7 = store.getState(), 6834 ixSession = _store$getState7.ixSession, 6835 ixData = _store$getState7.ixData; 6836 6837 var width = window.innerWidth; 6838 6839 if (width !== ixSession.viewportWidth) { 6840 var mediaQueries = ixData.mediaQueries; 6841 store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ 6842 width: width, 6843 mediaQueries: mediaQueries 6844 })); 6845 } 6846} 6847 6848var mapFoundValues = function mapFoundValues(object, iteratee) { 6849 return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); 6850}; 6851
6852var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { 6853 (0, _forEach["default"])(eventTargets, function (elements, eventId) { 6854 elements.forEach(function (element, index) { 6855 var eventStateKey = eventId + COLON_DELIMITER + index; 6856 eventCallback(element, eventId, eventStateKey); 6857 }); 6858 }); 6859}; 6860 6861var getAffectedForEvent = function getAffectedForEvent(_ref13) { 6862 var singleTarget = _ref13.target, 6863 targets = _ref13.targets; 6864 6865 if (targets && targets.length) { 6866 return targets.reduce(function (acc, target) { 6867 var config = { 6868 target: target 6869 }; 6870 return acc.concat(getAffectedElements({ 6871 config: config, 6872 elementApi: elementApi 6873 })); 6874 }, []); 6875 } else { 6876 var config = { 6877 target: singleTarget 6878 }; 6879 return getAffectedElements({ 6880 config: config, 6881 elementApi: elementApi 6882 }); 6883 } 6884}; 6885 6886function bindEventType(_ref14) { 6887 var logic = _ref14.logic, 6888 store = _ref14.store, 6889 events = _ref14.events; 6890 injectBehaviorCSSFixes(events); 6891 var eventTypes = logic.types, 6892 eventHandler = logic.handler; 6893 6894 var _store$getState8 = store.getState(), 6895 ixData = _store$getState8.ixData; 6896 6897 var actionLists = ixData.actionLists; 6898 var eventTargets = mapFoundValues(events, getAffectedForEvent); 6899 6900 if (!(0, _size["default"])(eventTargets)) { 6901 return; 6902 } 6903 6904 (0, _forEach["default"])(eventTargets, function (elements, key) { 6905 var event = events[key]; 6906 var eventAction = event.action, 6907 eventId = event.id, 6908 _event$mediaQueries = event.mediaQueries, 6909 mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; 6910 var actionListId = eventAction.config.actionListId; 6911 6912 if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { 6913 store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); 6914 } 6915 6916 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 6917 var configs = Array.isArray(event.config) ? event.config : [event.config]; 6918 configs.forEach(function (eventConfig) { 6919 var continuousParameterGroupId = eventConfig.continuousParameterGroupId; 6920 var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); 6921 var parameterGroup = (0, _find["default"])(paramGroups, function (_ref15) { 6922 var id = _ref15.id; 6923 return id === continuousParameterGroupId; 6924 }); 6925 var smoothing = (eventConfig.smoothing || 0) / 100; 6926 var restingValue = (eventConfig.restingState || 0) / 100; 6927 6928 if (!parameterGroup) { 6929 return; 6930 } 6931 6932 elements.forEach(function (eventTarget, index) { 6933 var eventStateKey = eventId + COLON_DELIMITER + index; 6934 createGroupInstances({ 6935 store: store, 6936 eventStateKey: eventStateKey, 6937 eventTarget: eventTarget, 6938 eventId: eventId, 6939 eventConfig: eventConfig, 6940 actionListId: actionListId, 6941 parameterGroup: parameterGroup, 6942 smoothing: smoothing, 6943 restingValue: restingValue 6944 }); 6945 }); 6946 }); 6947 } 6948 6949 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || (0, _utils.isQuickEffect)(eventAction.actionTypeId)) { 6950 renderInitialGroup({ 6951 store: store, 6952 actionListId: actionListId, 6953 eventId: eventId 6954 }); 6955 } 6956 }); 6957 6958 var handleEvent = function handleEvent(nativeEvent) { 6959 var _store$getState9 = store.getState(), 6960 ixSession = _store$getState9.ixSession; 6961 6962 forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { 6963 var event = events[eventId]; 6964 var oldState = ixSession.eventState[eventStateKey]; 6965 var eventAction = event.action, 6966 _event$mediaQueries2 = event.mediaQueries, 6967 mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config 6968 6969 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 6970 return; 6971 } 6972 6973 var handleEventWithConfig = function handleEventWithConfig() { 6974 var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 6975 var newState = eventHandler({ 6976 store: store, 6977 element: element, 6978 event: event, 6979 eventConfig: eventConfig, 6980 nativeEvent: nativeEvent, 6981 eventStateKey: eventStateKey 6982 }, oldState); 6983 6984 if (!(0, _shallowEqual["default"])(newState, oldState)) { 6985 store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); 6986 } 6987 }; 6988 6989 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 6990 var configs = Array.isArray(event.config) ? event.config : [event.config];
6991 configs.forEach(handleEventWithConfig); 6992 } else { 6993 handleEventWithConfig(); 6994 } 6995 }); 6996 }; 6997 6998 var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); 6999 7000 var addListeners = function addListeners(_ref16) { 7001 var _ref16$target = _ref16.target, 7002 target = _ref16$target === void 0 ? document : _ref16$target, 7003 types = _ref16.types, 7004 shouldThrottle = _ref16.throttle; 7005 types.split(' ').filter(Boolean).forEach(function (type) { 7006 var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe 7007 7008 target.addEventListener(type, handlerFunc); 7009 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); 7010 }); 7011 }; 7012 7013 if (Array.isArray(eventTypes)) { 7014 eventTypes.forEach(addListeners); 7015 } else if (typeof eventTypes === 'string') { 7016 addListeners(logic); 7017 } 7018} 7019/** 7020 * Injects CSS into the document to fix behavior issues across 7021 * different devices. 7022 */ 7023 7024 7025function injectBehaviorCSSFixes(events) { 7026 if (!IS_MOBILE_SAFARI) { 7027 return; 7028 } 7029 7030 var injectedSelectors = {}; 7031 var cssText = ''; 7032 7033 for (var eventId in events) { 7034 var _events$eventId = events[eventId], 7035 eventTypeId = _events$eventId.eventTypeId, 7036 target = _events$eventId.target; 7037 var selector = elementApi.getQuerySelector(target); // $FlowFixMe 7038 7039 if (injectedSelectors[selector]) { 7040 continue; 7041 } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices 7042 7043 7044 if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { 7045 // $FlowFixMe 7046 injectedSelectors[selector] = true; 7047 cssText += // $FlowFixMe 7048 selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; 7049 } 7050 } 7051 7052 if (cssText) { 7053 var style = document.createElement('style'); 7054 style.textContent = cssText; // $FlowFixMe 7055 7056 document.body.appendChild(style); 7057 } 7058} 7059 7060function renderInitialGroup(_ref17) { 7061 var store = _ref17.store, 7062 actionListId = _ref17.actionListId, 7063 eventId = _ref17.eventId; 7064 7065 var _store$getState10 = store.getState(), 7066 ixData = _store$getState10.ixData, 7067 ixSession = _store$getState10.ixSession; 7068 7069 var actionLists = ixData.actionLists, 7070 events = ixData.events; 7071 var event = events[eventId]; 7072 var actionList = actionLists[actionListId]; 7073 7074 if (actionList && actionList.useFirstGroupAsInitialState) { 7075 var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config 7076 7077 var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); 7078 7079 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7080 return; 7081 } 7082 7083 initialStateItems.forEach(function (actionItem) { 7084 var config = actionItem.config, 7085 actionTypeId = actionItem.actionTypeId; 7086 var itemElements = getAffectedElements({ 7087 config: config, 7088 event: event, 7089 elementApi: elementApi 7090 }); 7091 var shouldUsePlugin = isPluginType(actionTypeId); 7092 itemElements.forEach(function (element) { 7093 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7094 createPluginInstance(actionTypeId)(element, actionItem) : null; 7095 createInstance({ 7096 destination: getDestinationValues({ 7097 element: element, 7098 actionItem: actionItem, 7099 elementApi: elementApi 7100 }, // $FlowFixMe 7101 pluginInstance), 7102 immediate: true, 7103 store: store, 7104 element: element, 7105 eventId: eventId, 7106 actionItem: actionItem, 7107 actionListId: actionListId, 7108 pluginInstance: pluginInstance 7109 }); 7110 }); 7111 }); 7112 } 7113} // $FlowFixMe 7114 7115 7116function stopAllActionGroups(_ref18) { 7117 var store = _ref18.store; 7118 7119 var _store$getState11 = store.getState(), 7120 ixInstances = _store$getState11.ixInstances; 7121 7122 (0, _forEach["default"])(ixInstances, function (instance) { 7123 if (!instance.continuous) { 7124 var actionListId = instance.actionListId, 7125 verbose = instance.verbose; 7126 removeInstance(instance, store); 7127 7128 if (verbose) { 7129 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7130 actionListId: actionListId, 7131 isPlaying: false 7132 })); 7133 } 7134 } 7135 }); 7136} // $FlowFixMe 7137 7138 7139function stopActionGroup(_ref19) { 7140 var store = _ref19.store, 7141 eventId = _ref19.eventId, 7142 eventTarget = _ref19.eventTarget, 7143 eventStateKey = _ref19.eventStateKey, 7144 actionListId = _ref19.actionListId; 7145 7146 var _store$getState12 = store.getState(), 7147 ixInstances = _store$getState12.ixInstances, 7148 ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances 7149 7150 7151 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null;
7152 (0, _forEach["default"])(ixInstances, function (instance) { 7153 var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true 7154 7155 var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids 7156 7157 if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { 7158 // Avoid removal when root boundary does not contain instance element 7159 if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { 7160 return; 7161 } 7162 7163 removeInstance(instance, store); 7164 7165 if (instance.verbose) { 7166 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7167 actionListId: actionListId, 7168 isPlaying: false 7169 })); 7170 } 7171 } 7172 }); 7173} // $FlowFixMe 7174 7175 7176function startActionGroup(_ref20) { 7177 var store = _ref20.store, 7178 eventId = _ref20.eventId, 7179 eventTarget = _ref20.eventTarget, 7180 eventStateKey = _ref20.eventStateKey, 7181 actionListId = _ref20.actionListId, 7182 _ref20$groupIndex = _ref20.groupIndex, 7183 groupIndex = _ref20$groupIndex === void 0 ? 0 : _ref20$groupIndex, 7184 immediate = _ref20.immediate, 7185 verbose = _ref20.verbose; 7186 7187 var _event$action; 7188 7189 var _store$getState13 = store.getState(), 7190 ixData = _store$getState13.ixData, 7191 ixSession = _store$getState13.ixSession; 7192 7193 var events = ixData.events; 7194 var event = events[eventId] || {}; 7195 var _event$mediaQueries3 = event.mediaQueries, 7196 mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; 7197 var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); 7198 var actionItemGroups = actionList.actionItemGroups, 7199 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups 7200 7201 if (!actionItemGroups || !actionItemGroups.length) { 7202 return false; 7203 } // Reset to first group when event loop is configured 7204 7205 7206 if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { 7207 groupIndex = 0; 7208 } // Skip initial state group during action list playback, as it should already be applied 7209 7210 7211 if (groupIndex === 0 && useFirstGroupAsInitialState) { 7212 groupIndex++; 7213 } // Identify first animated group and apply the initial QuickEffect delay 7214 7215 7216 var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; 7217 var instanceDelay = isFirstGroup && (0, _utils.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 7218 7219 var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); 7220 7221 if (!actionItems.length) { 7222 return false; 7223 } // Abort playback if current media query is not listed in event config 7224 7225 7226 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7227 return false; 7228 } // Limit affected elements when event target is within a boundary node 7229 7230 7231 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7232 var carrierIndex = getMaxDurationItemIndex(actionItems); 7233 var groupStartResult = false;
7234 actionItems.forEach(function (actionItem, actionIndex) { 7235 var config = actionItem.config, 7236 actionTypeId = actionItem.actionTypeId; 7237 var shouldUsePlugin = isPluginType(actionTypeId); 7238 var target = config.target; 7239 7240 if (!target) { 7241 return; 7242 } 7243 7244 var elementRoot = target.boundaryMode ? eventElementRoot : null; 7245 var elements = getAffectedElements({ 7246 config: config, 7247 event: event, 7248 eventTarget: eventTarget, 7249 elementRoot: elementRoot, 7250 elementApi: elementApi 7251 }); 7252 elements.forEach(function (element, elementIndex) { 7253 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7254 createPluginInstance(actionTypeId)(element, actionItem) : null; 7255 var pluginDuration = shouldUsePlugin ? // $FlowFixMe 7256 getPluginDuration(actionTypeId)(element, actionItem) : null; 7257 groupStartResult = true; 7258 var isCarrier = carrierIndex === actionIndex && elementIndex === 0; 7259 var computedStyle = getComputedStyle({ 7260 element: element, 7261 actionItem: actionItem 7262 }); 7263 var destination = getDestinationValues({ 7264 element: element, 7265 actionItem: actionItem, 7266 elementApi: elementApi 7267 }, // $FlowFixMe 7268 pluginInstance); 7269 createInstance({ 7270 store: store, 7271 element: element, 7272 actionItem: actionItem, 7273 eventId: eventId, 7274 eventTarget: eventTarget, 7275 eventStateKey: eventStateKey, 7276 actionListId: actionListId, 7277 groupIndex: groupIndex, 7278 isCarrier: isCarrier, 7279 computedStyle: computedStyle, 7280 destination: destination, 7281 immediate: immediate, 7282 verbose: verbose, 7283 pluginInstance: pluginInstance, 7284 pluginDuration: pluginDuration, 7285 instanceDelay: instanceDelay 7286 }); 7287 }); 7288 }); 7289 return groupStartResult; 7290} 7291 7292function createInstance(options) { 7293 // $FlowFixMe 7294 var store = options.store, 7295 computedStyle = options.computedStyle, 7296 rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); // $FlowFixMe 7297 7298 var autoStart = !rest.continuous; // $FlowFixMe 7299 7300 var element = rest.element, 7301 actionItem = rest.actionItem, 7302 immediate = rest.immediate, 7303 pluginInstance = rest.pluginInstance; 7304 var instanceId = getInstanceId(); 7305 7306 var _store$getState14 = store.getState(), 7307 ixElements = _store$getState14.ixElements, 7308 ixSession = _store$getState14.ixSession; 7309 7310 var elementId = getElementId(ixElements, element); 7311 7312 var _ref21 = ixElements[elementId] || {}, 7313 refState = _ref21.refState; 7314 7315 var refType = elementApi.getRefType(element); 7316 var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe 7317 pluginInstance); 7318 store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ 7319 instanceId: instanceId, 7320 elementId: elementId, 7321 origin: origin, 7322 refType: refType 7323 }, rest))); 7324 dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); 7325 7326 if (immediate) { 7327 renderImmediateInstance(store, instanceId); 7328 return; 7329 } 7330 7331 observeStore({ 7332 store: store, 7333 select: function select(_ref22) { 7334 var ixInstances = _ref22.ixInstances; 7335 return ixInstances[instanceId]; 7336 }, 7337 onChange: handleInstanceChange 7338 }); 7339 7340 if (autoStart) { 7341 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); 7342 } 7343} 7344 7345function removeInstance(instance, store) { 7346 dispatchCustomEvent(document.body, 'ix2-animation-stopping', { 7347 instanceId: instance.id, 7348 state: store.getState() 7349 }); 7350 var elementId = instance.elementId, 7351 actionItem = instance.actionItem; 7352 7353 var _store$getState15 = store.getState(), 7354 ixElements = _store$getState15.ixElements; 7355 7356 var _ref23 = ixElements[elementId] || {}, 7357 ref = _ref23.ref, 7358 refType = _ref23.refType; 7359 7360 if (refType === HTML_ELEMENT) { 7361 cleanupHTMLElement(ref, actionItem, elementApi); 7362 } 7363 7364 store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); 7365} 7366 7367function dispatchCustomEvent(element, eventName, detail) { 7368 var event = document.createEvent('CustomEvent'); 7369 event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe 7370 7371 element.dispatchEvent(event); 7372} 7373 7374function renderImmediateInstance(store, instanceId) { 7375 var _store$getState16 = store.getState(), 7376 ixParameters = _store$getState16.ixParameters; 7377 7378 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); 7379 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); 7380 7381 var _store$getState17 = store.getState(), 7382 ixInstances = _store$getState17.ixInstances; 7383 7384 handleInstanceChange(ixInstances[instanceId], store); 7385} 7386 7387function handleInstanceChange(instance, store) { 7388 var active = instance.active, 7389 continuous = instance.continuous, 7390 complete = instance.complete, 7391 elementId = instance.elementId, 7392 actionItem = instance.actionItem, 7393 actionTypeId = instance.actionTypeId, 7394 renderType = instance.renderType, 7395 current = instance.current, 7396 groupIndex = instance.groupIndex, 7397 eventId = instance.eventId, 7398 eventTarget = instance.eventTarget, 7399 eventStateKey = instance.eventStateKey, 7400 actionListId = instance.actionListId, 7401 isCarrier = instance.isCarrier, 7402 styleProp = instance.styleProp, 7403 verbose = instance.verbose, 7404 pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config 7405 7406 var _store$getState18 = store.getState(), 7407 ixData = _store$getState18.ixData, 7408 ixSession = _store$getState18.ixSession; 7409 7410 var events = ixData.events; 7411 var event = events[eventId] || {}; 7412 var _event$mediaQueries4 = event.mediaQueries, 7413 mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; 7414 7415 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7416 return; 7417 } 7418 7419 if (continuous || active || complete) { 7420 if (current || renderType === RENDER_GENERAL && complete) { 7421 // Render current values to ref state and grab latest 7422 store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); 7423 7424 var _store$getState19 = store.getState(), 7425 ixElements = _store$getState19.ixElements; 7426 7427 var _ref24 = ixElements[elementId] || {}, 7428 ref = _ref24.ref, 7429 refType = _ref24.refType, 7430 refState = _ref24.refState; 7431 7432 var actionState = refState && refState[actionTypeId]; // Choose render based on ref type 7433 7434 switch (refType) { 7435 case HTML_ELEMENT: 7436 { 7437 renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); 7438 break; 7439 } 7440 } 7441 } 7442 7443 if (complete) { 7444 if (isCarrier) { 7445 var started = startActionGroup({ 7446 store: store, 7447 eventId: eventId, 7448 eventTarget: eventTarget, 7449 eventStateKey: eventStateKey, 7450 actionListId: actionListId, 7451 groupIndex: groupIndex + 1,
7452 verbose: verbose 7453 }); 7454 7455 if (verbose && !started) { 7456 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7457 actionListId: actionListId, 7458 isPlaying: false 7459 })); 7460 } 7461 } 7462 7463 removeInstance(instance, store); 7464 } 7465 } 7466} 7467 7468/***/ }), 7469/* 115 */ 7470/***/ (function(module, exports, __webpack_require__) { 7471 7472var defineProperty = __webpack_require__(116); 7473 7474/** 7475 * The base implementation of `assignValue` and `assignMergeValue` without 7476 * value checks. 7477 * 7478 * @private 7479 * @param {Object} object The object to modify. 7480 * @param {string} key The key of the property to assign. 7481 * @param {*} value The value to assign. 7482 */ 7483function baseAssignValue(object, key, value) { 7484 if (key == '__proto__' && defineProperty) { 7485 defineProperty(object, key, { 7486 'configurable': true, 7487 'enumerable': true, 7488 'value': value, 7489 'writable': true 7490 }); 7491 } else { 7492 object[key] = value; 7493 } 7494} 7495 7496module.exports = baseAssignValue; 7497 7498 7499/***/ }), 7500/* 116 */ 7501/***/ (function(module, exports, __webpack_require__) { 7502 7503var getNative = __webpack_require__(8); 7504 7505var defineProperty = (function() { 7506 try { 7507 var func = getNative(Object, 'defineProperty'); 7508 func({}, '', {}); 7509 return func; 7510 } catch (e) {} 7511}()); 7512 7513module.exports = defineProperty; 7514 7515 7516/***/ }), 7517/* 117 */ 7518/***/ (function(module, exports, __webpack_require__) { 7519 7520var isObject = __webpack_require__(6); 7521 7522/** Built-in value references. */ 7523var objectCreate = Object.create; 7524 7525/** 7526 * The base implementation of `_.create` without support for assigning 7527 * properties to the created object. 7528 * 7529 * @private 7530 * @param {Object} proto The object to inherit from. 7531 * @returns {Object} Returns the new object. 7532 */ 7533var baseCreate = (function() { 7534 function object() {} 7535 return function(proto) { 7536 if (!isObject(proto)) { 7537 return {}; 7538 } 7539 if (objectCreate) { 7540 return objectCreate(proto); 7541 } 7542 object.prototype = proto; 7543 var result = new object; 7544 object.prototype = undefined; 7545 return result; 7546 }; 7547}()); 7548 7549module.exports = baseCreate; 7550 7551 7552/***/ }), 7553/* 118 */ 7554/***/ (function(module, exports, __webpack_require__) { 7555 7556var metaMap = __webpack_require__(305), 7557 noop = __webpack_require__(306); 7558 7559/** 7560 * Gets metadata for `func`. 7561 * 7562 * @private 7563 * @param {Function} func The function to query. 7564 * @returns {*} Returns the metadata for `func`. 7565 */ 7566var getData = !metaMap ? noop : function(func) { 7567 return metaMap.get(func); 7568}; 7569 7570module.exports = getData; 7571 7572 7573/***/ }), 7574/* 119 */ 7575/***/ (function(module, exports, __webpack_require__) { 7576 7577var realNames = __webpack_require__(307); 7578 7579/** Used for built-in method references. */ 7580var objectProto = Object.prototype; 7581 7582/** Used to check objects for own properties. */ 7583var hasOwnProperty = objectProto.hasOwnProperty; 7584 7585/** 7586 * Gets the name of `func`. 7587 * 7588 * @private 7589 * @param {Function} func The function to query. 7590 * @returns {string} Returns the function name. 7591 */ 7592function getFuncName(func) { 7593 var result = (func.name + ''), 7594 array = realNames[result], 7595 length = hasOwnProperty.call(realNames, result) ? array.length : 0; 7596 7597 while (length--) { 7598 var data = array[length], 7599 otherFunc = data.func; 7600 if (otherFunc == null || otherFunc == func) { 7601 return data.name; 7602 } 7603 } 7604 return result; 7605} 7606 7607module.exports = getFuncName; 7608 7609 7610/***/ }), 7611/* 120 */ 7612/***/ (function(module, exports, __webpack_require__) { 7613 7614__webpack_require__(121); 7615__webpack_require__(22); 7616__webpack_require__(124); 7617__webpack_require__(314); 7618__webpack_require__(315); 7619__webpack_require__(316); 7620__webpack_require__(317); 7621__webpack_require__(318); 7622__webpack_require__(323); 7623__webpack_require__(324); 7624__webpack_require__(325); 7625module.exports = __webpack_require__(326); 7626 7627 7628/***/ }), 7629/* 121 */ 7630/***/ (function(module, exports, __webpack_require__) { 7631 7632"use strict"; 7633 // @wf-will-never-add-flow-to-this-file 7634 7635/* globals document, window, navigator */ 7636 7637/* eslint-disable no-var */ 7638 7639/** 7640 * Webflow: Brand pages on the subdomain 7641 */ 7642 7643var Webflow = __webpack_require__(3); 7644 7645Webflow.define('brand', module.exports = function ($) { 7646 var api = {}; 7647 var doc = document; 7648 var $html = $('html'); 7649 var $body = $('body'); 7650 var namespace = '.w-webflow-badge'; 7651 var location = window.location; 7652 var isPhantom = /PhantomJS/i.test(navigator.userAgent); 7653 var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; 7654 var brandElement; // ----------------------------------- 7655 // Module methods 7656 7657 api.ready = function () { 7658 var shouldBrand = $html.attr('data-wf-status'); 7659 var publishedDomain = $html.attr('data-wf-domain') || ''; 7660 7661 if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { 7662 shouldBrand = true; 7663 } 7664 7665 if (shouldBrand && !isPhantom) { 7666 brandElement = brandElement || createBadge(); 7667 ensureBrand(); 7668 setTimeout(ensureBrand, 500); 7669 $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); 7670 } 7671 }; 7672 7673 function onFullScreenChange() { 7674 var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement);
7675 $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); 7676 } 7677 7678 function createBadge() { 7679 var $brand = $('<a class="w-webflow-badge"></a>').attr('href', 'https://webflow.com?utm_campaign=brandjs'); 7680 var $logoArt = $('<img>').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ 7681 marginRight: '8px', 7682 width: '16px' 7683 }); 7684 var $logoText = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); 7685 $brand.append($logoArt, $logoText); 7686 return $brand[0]; 7687 } 7688 7689 function ensureBrand() { 7690 var found = $body.children(namespace); 7691 var match = found.length && found.get(0) === brandElement; 7692 var inEditor = Webflow.env('editor'); 7693 7694 if (match) { 7695 // Remove brand when Editor is active 7696 if (inEditor) { 7697 found.remove(); 7698 } // Exit early, brand is in place 7699 7700 7701 return; 7702 } // Remove any invalid brand elements 7703 7704 7705 if (found.length) { 7706 found.remove(); 7707 } // Append the brand (unless Editor is active) 7708 7709 7710 if (!inEditor) { 7711 $body.append(brandElement); 7712 } 7713 } // Export module 7714 7715 7716 return api; 7717}); 7718 7719/***/ }), 7720/* 122 */ 7721/***/ (function(module, exports, __webpack_require__) { 7722 7723"use strict"; 7724 // @wf-will-never-add-flow-to-this-file 7725// Include tram for frame-throttling 7726 7727/* globals window */ 7728 7729/* eslint-disable no-var */ 7730 7731var $ = window.$; 7732var tram = __webpack_require__(65) && $.tram; 7733/*! 7734 * Webflow._ (aka) Underscore.js 1.6.0 (custom build) 7735 * _.each 7736 * _.map 7737 * _.find 7738 * _.filter 7739 * _.any 7740 * _.contains 7741 * _.delay 7742 * _.defer 7743 * _.throttle (webflow) 7744 * _.debounce 7745 * _.keys 7746 * _.has 7747 * _.now 7748 * 7749 * http://underscorejs.org 7750 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 7751 * Underscore may be freely distributed under the MIT license. 7752 * @license MIT 7753 */ 7754 7755module.exports = function () { 7756 var _ = {}; // Current version. 7757 7758 _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. 7759 7760 var breaker = {}; // Save bytes in the minified (but not gzipped) version: 7761 7762 /* eslint-disable one-var */ 7763 7764 var ArrayProto = Array.prototype, 7765 ObjProto = Object.prototype, 7766 FuncProto = Function.prototype; 7767 /* eslint-enable one-var */ 7768 // Create quick reference variables for speed access to core prototypes. 7769 7770 /* eslint-disable one-var, no-unused-vars */ 7771 7772 var push = ArrayProto.push, 7773 slice = ArrayProto.slice, 7774 concat = ArrayProto.concat, 7775 toString = ObjProto.toString, 7776 hasOwnProperty = ObjProto.hasOwnProperty; 7777 /* eslint-enable one-var, no-unused-vars */ 7778 // All **ECMAScript 5** native function implementations that we hope to use 7779 // are declared here. 7780 7781 /* eslint-disable one-var, no-unused-vars */ 7782 7783 var nativeForEach = ArrayProto.forEach, 7784 nativeMap = ArrayProto.map, 7785 nativeReduce = ArrayProto.reduce, 7786 nativeReduceRight = ArrayProto.reduceRight, 7787 nativeFilter = ArrayProto.filter, 7788 nativeEvery = ArrayProto.every, 7789 nativeSome = ArrayProto.some, 7790 nativeIndexOf = ArrayProto.indexOf, 7791 nativeLastIndexOf = ArrayProto.lastIndexOf, 7792 nativeIsArray = Array.isArray, 7793 nativeKeys = Object.keys, 7794 nativeBind = FuncProto.bind; 7795 /* eslint-enable one-var, no-unused-vars */ 7796 // Collection Functions 7797 // -------------------- 7798 // The cornerstone, an `each` implementation, aka `forEach`. 7799 // Handles objects with the built-in `forEach`, arrays, and raw objects. 7800 // Delegates to **ECMAScript 5**'s native `forEach` if available. 7801 7802 var each = _.each = _.forEach = function (obj, iterator, context) { 7803 /* jshint shadow:true */ 7804 if (obj == null) return obj; 7805 7806 if (nativeForEach && obj.forEach === nativeForEach) { 7807 obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion 7808 } else if (obj.length === +obj.length) { 7809 for (var i = 0, length = obj.length; i < length; i++) { 7810 if (iterator.call(context, obj[i], i, obj) === breaker) return; 7811 } 7812 } else { 7813 var keys = _.keys(obj); // eslint-disable-next-line no-redeclare 7814 7815 7816 for (var i = 0, length = keys.length; i < length; i++) { 7817 if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 7818 } 7819 } 7820 7821 return obj; 7822 }; // Return the results of applying the iterator to each element. 7823 // Delegates to **ECMAScript 5**'s native `map` if available. 7824 7825 7826 _.map = _.collect = function (obj, iterator, context) { 7827 var results = []; 7828 if (obj == null) return results; 7829 if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); 7830 each(obj, function (value, index, list) { 7831 results.push(iterator.call(context, value, index, list)); 7832 }); 7833 return results; 7834 }; // Return the first value which passes a truth test. Aliased as `detect`. 7835 7836 7837 _.find = _.detect = function (obj, predicate, context) { 7838 var result; 7839 any(obj, function (value, index, list) { 7840 if (predicate.call(context, value, index, list)) { 7841 result = value; 7842 return true; 7843 } 7844 }); 7845 return result; 7846 }; // Return all the elements that pass a truth test. 7847 // Delegates to **ECMAScript 5**'s native `filter` if available. 7848 // Aliased as `select`. 7849 7850 7851 _.filter = _.select = function (obj, predicate, context) { 7852 var results = []; 7853 if (obj == null) return results; 7854 if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); 7855 each(obj, function (value, index, list) { 7856 if (predicate.call(context, value, index, list)) results.push(value); 7857 }); 7858 return results; 7859 }; // Determine if at least one element in the object matches a truth test. 7860 // Delegates to **ECMAScript 5**'s native `some` if available. 7861 // Aliased as `any`. 7862 7863 7864 var any = _.some = _.any = function (obj, predicate, context) { 7865 predicate || (predicate = _.identity); 7866 var result = false;
7867 if (obj == null) return result; 7868 if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); 7869 each(obj, function (value, index, list) { 7870 if (result || (result = predicate.call(context, value, index, list))) return breaker; 7871 }); 7872 return !!result; // eslint-disable-line no-implicit-coercion 7873 }; // Determine if the array or object contains a given value (using `===`). 7874 // Aliased as `include`. 7875 7876 7877 _.contains = _.include = function (obj, target) { 7878 if (obj == null) return false; 7879 if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq 7880 return obj.indexOf(target) != -1; 7881 return any(obj, function (value) { 7882 return value === target; 7883 }); 7884 }; // Function (ahem) Functions 7885 // -------------------- 7886 // Delays a function for the given number of milliseconds, and then calls 7887 // it with the arguments supplied. 7888 7889 7890 _.delay = function (func, wait) { 7891 var args = slice.call(arguments, 2); 7892 return setTimeout(function () { 7893 return func.apply(null, args); 7894 }, wait); 7895 }; // Defers a function, scheduling it to run after the current call stack has 7896 // cleared. 7897 7898 7899 _.defer = function (func) { 7900 return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); 7901 }; // Returns a function, that, when invoked, will only be triggered once every 7902 // browser animation frame - using tram's requestAnimationFrame polyfill. 7903 7904 7905 _.throttle = function (func) { 7906 // eslint-disable-next-line one-var 7907 var wait, args, context; 7908 return function () { 7909 if (wait) return; 7910 wait = true; 7911 args = arguments; 7912 context = this; 7913 tram.frame(function () { 7914 wait = false; 7915 func.apply(context, args); 7916 }); 7917 }; 7918 }; // Returns a function, that, as long as it continues to be invoked, will not 7919 // be triggered. The function will be called after it stops being called for 7920 // N milliseconds. If `immediate` is passed, trigger the function on the 7921 // leading edge, instead of the trailing. 7922 7923 7924 _.debounce = function (func, wait, immediate) { 7925 // eslint-disable-next-line one-var 7926 var timeout, args, context, timestamp, result; 7927 7928 var later = function later() { 7929 var last = _.now() - timestamp; 7930 7931 if (last < wait) { 7932 timeout = setTimeout(later, wait - last); 7933 } else { 7934 timeout = null; 7935 7936 if (!immediate) { 7937 result = func.apply(context, args); 7938 context = args = null; 7939 } 7940 } 7941 }; 7942 7943 return function () { 7944 context = this; 7945 args = arguments; 7946 timestamp = _.now(); 7947 var callNow = immediate && !timeout; 7948 7949 if (!timeout) { 7950 timeout = setTimeout(later, wait); 7951 } 7952 7953 if (callNow) { 7954 result = func.apply(context, args); 7955 context = args = null; 7956 } 7957 7958 return result; 7959 }; 7960 }; // Object Functions 7961 // ---------------- 7962 // Fill in a given object with default properties. 7963 7964 7965 _.defaults = function (obj) { 7966 if (!_.isObject(obj)) return obj; 7967 7968 for (var i = 1, length = arguments.length; i < length; i++) { 7969 var source = arguments[i]; 7970 7971 for (var prop in source) { 7972 // eslint-disable-next-line no-void 7973 if (obj[prop] === void 0) obj[prop] = source[prop]; 7974 } 7975 } 7976 7977 return obj; 7978 }; // Retrieve the names of an object's properties. 7979 // Delegates to **ECMAScript 5**'s native `Object.keys` 7980 7981 7982 _.keys = function (obj) { 7983 if (!_.isObject(obj)) return []; 7984 if (nativeKeys) return nativeKeys(obj); 7985 var keys = []; 7986 7987 for (var key in obj) { 7988 if (_.has(obj, key)) keys.push(key); 7989 } 7990 7991 return keys; 7992 }; // Shortcut function for checking if an object has a given property directly 7993 // on itself (in other words, not on a prototype). 7994 7995 7996 _.has = function (obj, key) { 7997 return hasOwnProperty.call(obj, key); 7998 }; // Is a given variable an object? 7999 8000 8001 _.isObject = function (obj) { 8002 return obj === Object(obj); 8003 }; // Utility Functions 8004 // ----------------- 8005 // A (possibly faster) way to get the current timestamp as an integer. 8006 8007 8008 _.now = Date.now || function () { 8009 return new Date().getTime(); 8010 }; // By default, Underscore uses ERB-style template delimiters, change the 8011 // following template settings to use alternative delimiters. 8012 8013 8014 _.templateSettings = { 8015 evaluate: /<%([\s\S]+?)%>/g, 8016 interpolate: /<%=([\s\S]+?)%>/g, 8017 escape: /<%-([\s\S]+?)%>/g 8018 }; // When customizing `templateSettings`, if you don't want to define an 8019 // interpolation, evaluation or escaping regex, we need one that is 8020 // guaranteed not to match. 8021 8022 var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a 8023 // string literal. 8024 8025 var escapes = { 8026 "'": "'", 8027 '\\': '\\', 8028 '\r': 'r', 8029 '\n': 'n', 8030 "\u2028": 'u2028', 8031 "\u2029": 'u2029' 8032 }; 8033 var escaper = /\\|'|\r|\n|\u2028|\u2029/g; 8034 8035 var escapeChar = function escapeChar(match) { 8036 return '\\' + escapes[match]; 8037 }; // JavaScript micro-templating, similar to John Resig's implementation. 8038 // Underscore templating handles arbitrary delimiters, preserves whitespace, 8039 // and correctly escapes quotes within interpolated code. 8040 // NB: `oldSettings` only exists for backwards compatibility. 8041 8042 8043 _.template = function (text, settings, oldSettings) { 8044 if (!settings && oldSettings) settings = oldSettings; 8045 settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. 8046 8047 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. 8048 8049 var index = 0; 8050 var source = "__p+='"; 8051 text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { 8052 source += text.slice(index, offset).replace(escaper, escapeChar); 8053 index = offset + match.length; 8054 8055 if (escape) { 8056 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 8057 } else if (interpolate) { 8058 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
8059 } else if (evaluate) { 8060 source += "';\n" + evaluate + "\n__p+='"; 8061 } // Adobe VMs need the match returned to produce the correct offest. 8062 8063 8064 return match; 8065 }); 8066 source += "';\n"; // If a variable is not specified, place data values in local scope. 8067 8068 if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; 8069 source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; 8070 8071 try { 8072 // eslint-disable-next-line no-new-func 8073 var render = new Function(settings.variable || 'obj', '_', source); 8074 } catch (e) { 8075 e.source = source; 8076 throw e; 8077 } 8078 8079 var template = function template(data) { 8080 return render.call(this, data, _); 8081 }; // Provide the compiled source as a convenience for precompilation. 8082 8083 8084 var argument = settings.variable || 'obj'; 8085 template.source = 'function(' + argument + '){\n' + source + '}'; 8086 return template; 8087 }; // Export underscore 8088 8089 8090 return _; 8091}(); 8092/* eslint-enable */ 8093 8094/***/ }), 8095/* 123 */ 8096/***/ (function(module, exports, __webpack_require__) { 8097 8098"use strict";
8099// @wf-will-never-add-flow-to-this-file 8100 8101/* globals window */ 8102 8103/* eslint-disable no-var */ 8104 8105/** 8106 * Webflow: IX Event triggers for other modules 8107 */ 8108// eslint-disable-next-line strict 8109 8110 8111var $ = window.jQuery; 8112var api = {}; 8113var eventQueue = []; 8114var namespace = '.w-ix'; 8115var eventTriggers = { 8116 reset: function reset(i, el) { 8117 el.__wf_intro = null; 8118 }, 8119 intro: function intro(i, el) { 8120 if (el.__wf_intro) { 8121 return; 8122 } 8123 8124 el.__wf_intro = true; 8125 $(el).triggerHandler(api.types.INTRO); 8126 }, 8127 outro: function outro(i, el) { 8128 if (!el.__wf_intro) { 8129 return; 8130 } 8131 8132 el.__wf_intro = null; 8133 $(el).triggerHandler(api.types.OUTRO); 8134 } 8135}; 8136api.triggers = {}; 8137api.types = { 8138 INTRO: 'w-ix-intro' + namespace, 8139 OUTRO: 'w-ix-outro' + namespace 8140}; // Trigger any events in queue + restore trigger methods 8141 8142api.init = function () { 8143 var count = eventQueue.length; 8144 8145 for (var i = 0; i < count; i++) { 8146 var memo = eventQueue[i]; 8147 memo[0](0, memo[1]); 8148 } 8149 8150 eventQueue = []; 8151 $.extend(api.triggers, eventTriggers); 8152}; // Replace all triggers with async wrapper to queue events until init 8153 8154 8155api.async = function () { 8156 for (var key in eventTriggers) { 8157 var func = eventTriggers[key]; 8158 8159 if (!eventTriggers.hasOwnProperty(key)) { 8160 continue; 8161 } // Replace trigger method with async wrapper 8162 8163 8164 api.triggers[key] = function (i, el) { 8165 eventQueue.push([func, el]); 8166 }; 8167 } 8168}; // Default triggers to async queue 8169 8170 8171api.async(); 8172module.exports = api; 8173 8174/***/ }), 8175/* 124 */ 8176/***/ (function(module, exports, __webpack_require__) { 8177 8178"use strict"; 8179 // @wf-will-never-add-flow-to-this-file 8180 8181/* eslint-disable no-var */ 8182 8183/** 8184 * Webflow: Interactions 2 8185 */ 8186 8187var Webflow = __webpack_require__(3); 8188 8189var ix2 = __webpack_require__(125); 8190 8191ix2.setEnv(Webflow.env); 8192Webflow.define('ix2', module.exports = function () { 8193 return ix2; 8194}); 8195 8196/***/ }), 8197/* 125 */ 8198/***/ (function(module, exports, __webpack_require__) { 8199 8200"use strict"; 8201 8202 8203var _interopRequireWildcard = __webpack_require__(13); 8204 8205var _interopRequireDefault = __webpack_require__(0); 8206 8207Object.defineProperty(exports, "__esModule", { 8208 value: true 8209}); 8210exports.setEnv = setEnv; 8211exports.init = init; 8212exports.destroy = destroy; 8213exports.actions = exports.store = void 0; 8214 8215__webpack_require__(126); 8216 8217var _redux = __webpack_require__(78); 8218 8219var _IX2Reducer = _interopRequireDefault(__webpack_require__(167)); 8220 8221var _IX2VanillaEngine = __webpack_require__(114); 8222 8223var actions = _interopRequireWildcard(__webpack_require__(61)); 8224 8225exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects 8226 8227var store = (0, _redux.createStore)(_IX2Reducer["default"]); 8228exports.store = store; 8229 8230function setEnv(env) { 8231 if (env()) { 8232 (0, _IX2VanillaEngine.observeRequests)(store); 8233 } 8234} 8235 8236function init(rawData) { 8237 destroy(); 8238 (0, _IX2VanillaEngine.startEngine)({ 8239 store: store, 8240 rawData: rawData, 8241 allowEvents: true 8242 }); 8243} 8244 8245function destroy() { 8246 (0, _IX2VanillaEngine.stopEngine)(store); 8247} 8248 8249/***/ }), 8250/* 126 */ 8251/***/ (function(module, exports, __webpack_require__) { 8252 8253module.exports = __webpack_require__(127); 8254 8255 8256/***/ }), 8257/* 127 */ 8258/***/ (function(module, exports, __webpack_require__) { 8259 8260__webpack_require__(128); 8261var entryUnbind = __webpack_require__(153); 8262 8263module.exports = entryUnbind('Array', 'includes'); 8264 8265 8266/***/ }), 8267/* 128 */ 8268/***/ (function(module, exports, __webpack_require__) { 8269 8270"use strict"; 8271 8272var $ = __webpack_require__(129); 8273var $includes = __webpack_require__(76).includes; 8274var addToUnscopables = __webpack_require__(146); 8275 8276// `Array.prototype.includes` method 8277// https://tc39.github.io/ecma262/#sec-array.prototype.includes 8278$({ target: 'Array', proto: true }, { 8279 includes: function includes(el /* , fromIndex = 0 */) { 8280 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 8281 } 8282}); 8283 8284// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 8285addToUnscopables('includes'); 8286 8287 8288/***/ }), 8289/* 129 */ 8290/***/ (function(module, exports, __webpack_require__) { 8291 8292var global = __webpack_require__(4); 8293var getOwnPropertyDescriptor = __webpack_require__(66).f; 8294var hide = __webpack_require__(17); 8295var redefine = __webpack_require__(134); 8296var setGlobal = __webpack_require__(40); 8297var copyConstructorProperties = __webpack_require__(138); 8298var isForced = __webpack_require__(145); 8299 8300/* 8301 options.target - name of the target object 8302 options.global - target is the global object 8303 options.stat - export as static methods of target 8304 options.proto - export as prototype methods of target 8305 options.real - real prototype method for the `pure` version 8306 options.forced - export even if the native feature is available
vendor: 15,063 bytes, lines 8307-8841
8307 options.bind - bind methods to the target, required for the `pure` version 8308 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 8309 options.unsafe - use the simple assignment of property instead of delete + defineProperty 8310 options.sham - add a flag to not completely full polyfills 8311 options.enumerable - export as enumerable property 8312 options.noTargetGet - prevent calling a getter on target 8313*/ 8314module.exports = function (options, source) { 8315 var TARGET = options.target; 8316 var GLOBAL = options.global; 8317 var STATIC = options.stat; 8318 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 8319 if (GLOBAL) { 8320 target = global; 8321 } else if (STATIC) { 8322 target = global[TARGET] || setGlobal(TARGET, {}); 8323 } else { 8324 target = (global[TARGET] || {}).prototype; 8325 } 8326 if (target) for (key in source) { 8327 sourceProperty = source[key]; 8328 if (options.noTargetGet) { 8329 descriptor = getOwnPropertyDescriptor(target, key); 8330 targetProperty = descriptor && descriptor.value; 8331 } else targetProperty = target[key]; 8332 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 8333 // contained in target 8334 if (!FORCED && targetProperty !== undefined) { 8335 if (typeof sourceProperty === typeof targetProperty) continue; 8336 copyConstructorProperties(sourceProperty, targetProperty); 8337 } 8338 // add a flag to not completely full polyfills 8339 if (options.sham || (targetProperty && targetProperty.sham)) { 8340 hide(sourceProperty, 'sham', true); 8341 } 8342 // extend global 8343 redefine(target, key, sourceProperty, options); 8344 } 8345}; 8346 8347 8348/***/ }), 8349/* 130 */ 8350/***/ (function(module, exports, __webpack_require__) { 8351 8352"use strict"; 8353 8354var nativePropertyIsEnumerable = {}.propertyIsEnumerable; 8355var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 8356 8357// Nashorn ~ JDK8 bug 8358var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); 8359 8360// `Object.prototype.propertyIsEnumerable` method implementation 8361// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable 8362exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 8363 var descriptor = getOwnPropertyDescriptor(this, V); 8364 return !!descriptor && descriptor.enumerable; 8365} : nativePropertyIsEnumerable; 8366 8367 8368/***/ }), 8369/* 131 */ 8370/***/ (function(module, exports, __webpack_require__) { 8371 8372var fails = __webpack_require__(15); 8373var classof = __webpack_require__(132); 8374 8375var split = ''.split; 8376 8377// fallback for non-array-like ES3 and non-enumerable old V8 strings 8378module.exports = fails(function () { 8379 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 8380 // eslint-disable-next-line no-prototype-builtins 8381 return !Object('z').propertyIsEnumerable(0); 8382}) ? function (it) { 8383 return classof(it) == 'String' ? split.call(it, '') : Object(it); 8384} : Object; 8385 8386 8387/***/ }), 8388/* 132 */ 8389/***/ (function(module, exports) { 8390 8391var toString = {}.toString; 8392 8393module.exports = function (it) { 8394 return toString.call(it).slice(8, -1); 8395}; 8396 8397 8398/***/ }), 8399/* 133 */ 8400/***/ (function(module, exports) { 8401 8402// `RequireObjectCoercible` abstract operation 8403// https://tc39.github.io/ecma262/#sec-requireobjectcoercible 8404module.exports = function (it) { 8405 if (it == undefined) throw TypeError("Can't call method on " + it); 8406 return it; 8407}; 8408 8409 8410/***/ }), 8411/* 134 */ 8412/***/ (function(module, exports, __webpack_require__) { 8413 8414var global = __webpack_require__(4); 8415var shared = __webpack_require__(26); 8416var hide = __webpack_require__(17); 8417var has = __webpack_require__(16); 8418var setGlobal = __webpack_require__(40); 8419var nativeFunctionToString = __webpack_require__(71); 8420var InternalStateModule = __webpack_require__(136); 8421 8422var getInternalState = InternalStateModule.get; 8423var enforceInternalState = InternalStateModule.enforce; 8424var TEMPLATE = String(nativeFunctionToString).split('toString'); 8425 8426shared('inspectSource', function (it) { 8427 return nativeFunctionToString.call(it); 8428}); 8429 8430(module.exports = function (O, key, value, options) { 8431 var unsafe = options ? !!options.unsafe : false; 8432 var simple = options ? !!options.enumerable : false; 8433 var noTargetGet = options ? !!options.noTargetGet : false; 8434 if (typeof value == 'function') { 8435 if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key); 8436 enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); 8437 } 8438 if (O === global) { 8439 if (simple) O[key] = value; 8440 else setGlobal(key, value); 8441 return; 8442 } else if (!unsafe) { 8443 delete O[key]; 8444 } else if (!noTargetGet && O[key]) { 8445 simple = true; 8446 } 8447 if (simple) O[key] = value; 8448 else hide(O, key, value); 8449// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 8450})(Function.prototype, 'toString', function toString() { 8451 return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this); 8452}); 8453 8454 8455/***/ }), 8456/* 135 */ 8457/***/ (function(module, exports) { 8458 8459module.exports = false; 8460 8461 8462/***/ }), 8463/* 136 */ 8464/***/ (function(module, exports, __webpack_require__) { 8465 8466var NATIVE_WEAK_MAP = __webpack_require__(137); 8467var global = __webpack_require__(4); 8468var isObject = __webpack_require__(24); 8469var hide = __webpack_require__(17); 8470var objectHas = __webpack_require__(16); 8471var sharedKey = __webpack_require__(72); 8472var hiddenKeys = __webpack_require__(41); 8473 8474var WeakMap = global.WeakMap; 8475var set, get, has; 8476 8477var enforce = function (it) { 8478 return has(it) ? get(it) : set(it, {}); 8479}; 8480 8481var getterFor = function (TYPE) { 8482 return function (it) { 8483 var state; 8484 if (!isObject(it) || (state = get(it)).type !== TYPE) { 8485 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 8486 } return state; 8487 }; 8488}; 8489 8490if (NATIVE_WEAK_MAP) { 8491 var store = new WeakMap(); 8492 var wmget = store.get; 8493 var wmhas = store.has; 8494 var wmset = store.set; 8495 set = function (it, metadata) { 8496 wmset.call(store, it, metadata); 8497 return metadata; 8498 }; 8499 get = function (it) { 8500 return wmget.call(store, it) || {}; 8501 }; 8502 has = function (it) { 8503 return wmhas.call(store, it); 8504 }; 8505} else { 8506 var STATE = sharedKey('state'); 8507 hiddenKeys[STATE] = true; 8508 set = function (it, metadata) { 8509 hide(it, STATE, metadata); 8510 return metadata; 8511 }; 8512 get = function (it) { 8513 return objectHas(it, STATE) ? it[STATE] : {}; 8514 }; 8515 has = function (it) { 8516 return objectHas(it, STATE); 8517 }; 8518} 8519 8520module.exports = { 8521 set: set, 8522 get: get, 8523 has: has, 8524 enforce: enforce, 8525 getterFor: getterFor 8526}; 8527 8528 8529/***/ }), 8530/* 137 */ 8531/***/ (function(module, exports, __webpack_require__) { 8532 8533var global = __webpack_require__(4); 8534var nativeFunctionToString = __webpack_require__(71); 8535 8536var WeakMap = global.WeakMap; 8537 8538module.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap)); 8539 8540 8541/***/ }), 8542/* 138 */ 8543/***/ (function(module, exports, __webpack_require__) { 8544 8545var has = __webpack_require__(16); 8546var ownKeys = __webpack_require__(139); 8547var getOwnPropertyDescriptorModule = __webpack_require__(66); 8548var definePropertyModule = __webpack_require__(39); 8549 8550module.exports = function (target, source) { 8551 var keys = ownKeys(source); 8552 var defineProperty = definePropertyModule.f; 8553 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 8554 for (var i = 0; i < keys.length; i++) { 8555 var key = keys[i]; 8556 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 8557 } 8558}; 8559 8560 8561/***/ }), 8562/* 139 */ 8563/***/ (function(module, exports, __webpack_require__) { 8564 8565var getBuiltIn = __webpack_require__(74); 8566var getOwnPropertyNamesModule = __webpack_require__(141); 8567var getOwnPropertySymbolsModule = __webpack_require__(144); 8568var anObject = __webpack_require__(25); 8569 8570// all object keys, includes non-enumerable and symbols 8571module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 8572 var keys = getOwnPropertyNamesModule.f(anObject(it)); 8573 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 8574 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; 8575}; 8576 8577 8578/***/ }), 8579/* 140 */ 8580/***/ (function(module, exports, __webpack_require__) { 8581 8582module.exports = __webpack_require__(4); 8583 8584 8585/***/ }), 8586/* 141 */ 8587/***/ (function(module, exports, __webpack_require__) { 8588 8589var internalObjectKeys = __webpack_require__(75); 8590var enumBugKeys = __webpack_require__(42); 8591 8592var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 8593 8594// `Object.getOwnPropertyNames` method 8595// https://tc39.github.io/ecma262/#sec-object.getownpropertynames 8596exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 8597 return internalObjectKeys(O, hiddenKeys); 8598}; 8599 8600 8601/***/ }), 8602/* 142 */ 8603/***/ (function(module, exports, __webpack_require__) { 8604 8605var toInteger = __webpack_require__(77); 8606 8607var min = Math.min; 8608 8609// `ToLength` abstract operation 8610// https://tc39.github.io/ecma262/#sec-tolength 8611module.exports = function (argument) { 8612 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 8613}; 8614 8615 8616/***/ }), 8617/* 143 */ 8618/***/ (function(module, exports, __webpack_require__) { 8619 8620var toInteger = __webpack_require__(77); 8621 8622var max = Math.max; 8623var min = Math.min; 8624 8625// Helper for a popular repeating case of the spec: 8626// Let integer be ? ToInteger(index). 8627// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length). 8628module.exports = function (index, length) { 8629 var integer = toInteger(index); 8630 return integer < 0 ? max(integer + length, 0) : min(integer, length); 8631}; 8632 8633 8634/***/ }), 8635/* 144 */ 8636/***/ (function(module, exports) { 8637 8638exports.f = Object.getOwnPropertySymbols; 8639 8640 8641/***/ }), 8642/* 145 */ 8643/***/ (function(module, exports, __webpack_require__) { 8644 8645var fails = __webpack_require__(15); 8646 8647var replacement = /#|\.prototype\./; 8648 8649var isForced = function (feature, detection) { 8650 var value = data[normalize(feature)]; 8651 return value == POLYFILL ? true 8652 : value == NATIVE ? false 8653 : typeof detection == 'function' ? fails(detection) 8654 : !!detection; 8655}; 8656 8657var normalize = isForced.normalize = function (string) { 8658 return String(string).replace(replacement, '.').toLowerCase(); 8659}; 8660 8661var data = isForced.data = {}; 8662var NATIVE = isForced.NATIVE = 'N'; 8663var POLYFILL = isForced.POLYFILL = 'P'; 8664 8665module.exports = isForced; 8666 8667 8668/***/ }), 8669/* 146 */ 8670/***/ (function(module, exports, __webpack_require__) { 8671 8672var wellKnownSymbol = __webpack_require__(147); 8673var create = __webpack_require__(149); 8674var hide = __webpack_require__(17); 8675 8676var UNSCOPABLES = wellKnownSymbol('unscopables'); 8677var ArrayPrototype = Array.prototype; 8678 8679// Array.prototype[@@unscopables] 8680// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 8681if (ArrayPrototype[UNSCOPABLES] == undefined) { 8682 hide(ArrayPrototype, UNSCOPABLES, create(null)); 8683} 8684 8685// add a key to Array.prototype[@@unscopables] 8686module.exports = function (key) { 8687 ArrayPrototype[UNSCOPABLES][key] = true; 8688}; 8689 8690 8691/***/ }), 8692/* 147 */ 8693/***/ (function(module, exports, __webpack_require__) { 8694 8695var global = __webpack_require__(4); 8696var shared = __webpack_require__(26); 8697var uid = __webpack_require__(73); 8698var NATIVE_SYMBOL = __webpack_require__(148); 8699 8700var Symbol = global.Symbol; 8701var store = shared('wks'); 8702 8703module.exports = function (name) { 8704 return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name] 8705 || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 8706}; 8707 8708 8709/***/ }), 8710/* 148 */ 8711/***/ (function(module, exports, __webpack_require__) { 8712 8713var fails = __webpack_require__(15); 8714 8715module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 8716 // Chrome 38 Symbol has incorrect toString conversion 8717 // eslint-disable-next-line no-undef 8718 return !String(Symbol()); 8719}); 8720 8721 8722/***/ }), 8723/* 149 */ 8724/***/ (function(module, exports, __webpack_require__) { 8725 8726var anObject = __webpack_require__(25); 8727var defineProperties = __webpack_require__(150); 8728var enumBugKeys = __webpack_require__(42); 8729var hiddenKeys = __webpack_require__(41); 8730var html = __webpack_require__(152); 8731var documentCreateElement = __webpack_require__(70); 8732var sharedKey = __webpack_require__(72); 8733var IE_PROTO = sharedKey('IE_PROTO'); 8734 8735var PROTOTYPE = 'prototype'; 8736var Empty = function () { /* empty */ }; 8737 8738// Create object with fake `null` prototype: use iframe Object with cleared prototype 8739var createDict = function () { 8740 // Thrash, waste and sodomy: IE GC bug 8741 var iframe = documentCreateElement('iframe'); 8742 var length = enumBugKeys.length; 8743 var lt = '<'; 8744 var script = 'script'; 8745 var gt = '>'; 8746 var js = 'java' + script + ':'; 8747 var iframeDocument; 8748 iframe.style.display = 'none'; 8749 html.appendChild(iframe); 8750 iframe.src = String(js); 8751 iframeDocument = iframe.contentWindow.document; 8752 iframeDocument.open(); 8753 iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt); 8754 iframeDocument.close(); 8755 createDict = iframeDocument.F; 8756 while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; 8757 return createDict(); 8758}; 8759 8760// `Object.create` method 8761// https://tc39.github.io/ecma262/#sec-object.create 8762module.exports = Object.create || function create(O, Properties) { 8763 var result; 8764 if (O !== null) { 8765 Empty[PROTOTYPE] = anObject(O); 8766 result = new Empty(); 8767 Empty[PROTOTYPE] = null; 8768 // add "__proto__" for Object.getPrototypeOf polyfill 8769 result[IE_PROTO] = O; 8770 } else result = createDict(); 8771 return Properties === undefined ? result : defineProperties(result, Properties); 8772}; 8773 8774hiddenKeys[IE_PROTO] = true; 8775 8776 8777/***/ }), 8778/* 150 */ 8779/***/ (function(module, exports, __webpack_require__) { 8780 8781var DESCRIPTORS = __webpack_require__(14); 8782var definePropertyModule = __webpack_require__(39); 8783var anObject = __webpack_require__(25); 8784var objectKeys = __webpack_require__(151); 8785 8786// `Object.defineProperties` method 8787// https://tc39.github.io/ecma262/#sec-object.defineproperties 8788module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 8789 anObject(O); 8790 var keys = objectKeys(Properties); 8791 var length = keys.length; 8792 var index = 0; 8793 var key; 8794 while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); 8795 return O; 8796}; 8797 8798 8799/***/ }), 8800/* 151 */ 8801/***/ (function(module, exports, __webpack_require__) { 8802 8803var internalObjectKeys = __webpack_require__(75); 8804var enumBugKeys = __webpack_require__(42); 8805 8806// `Object.keys` method 8807// https://tc39.github.io/ecma262/#sec-object.keys 8808module.exports = Object.keys || function keys(O) { 8809 return internalObjectKeys(O, enumBugKeys); 8810}; 8811 8812 8813/***/ }), 8814/* 152 */ 8815/***/ (function(module, exports, __webpack_require__) { 8816 8817var getBuiltIn = __webpack_require__(74); 8818 8819module.exports = getBuiltIn('document', 'documentElement'); 8820 8821 8822/***/ }), 8823/* 153 */ 8824/***/ (function(module, exports, __webpack_require__) { 8825 8826var global = __webpack_require__(4); 8827var bind = __webpack_require__(154); 8828 8829var call = Function.call; 8830 8831module.exports = function (CONSTRUCTOR, METHOD, length) { 8832 return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); 8833}; 8834 8835 8836/***/ }), 8837/* 154 */ 8838/***/ (function(module, exports, __webpack_require__) { 8839 8840var aFunction = __webpack_require__(155); 8841
8842// optional / simple context binding 8843module.exports = function (fn, that, length) { 8844 aFunction(fn); 8845 if (that === undefined) return fn; 8846 switch (length) { 8847 case 0: return function () { 8848 return fn.call(that); 8849 }; 8850 case 1: return function (a) { 8851 return fn.call(that, a); 8852 }; 8853 case 2: return function (a, b) { 8854 return fn.call(that, a, b); 8855 }; 8856 case 3: return function (a, b, c) { 8857 return fn.call(that, a, b, c); 8858 }; 8859 } 8860 return function (/* ...args */) { 8861 return fn.apply(that, arguments); 8862 }; 8863}; 8864 8865 8866/***/ }), 8867/* 155 */ 8868/***/ (function(module, exports) { 8869 8870module.exports = function (it) { 8871 if (typeof it != 'function') { 8872 throw TypeError(String(it) + ' is not a function'); 8873 } return it; 8874}; 8875 8876 8877/***/ }), 8878/* 156 */ 8879/***/ (function(module, __webpack_exports__, __webpack_require__) { 8880 8881"use strict"; 8882__webpack_require__.r(__webpack_exports__); 8883/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); 8884/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(159); 8885/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(160); 8886 8887 8888 8889 8890/** `Object#toString` result references. */ 8891var nullTag = '[object Null]', 8892 undefinedTag = '[object Undefined]'; 8893 8894/** Built-in value references. */ 8895var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 8896 8897/** 8898 * The base implementation of `getTag` without fallbacks for buggy environments. 8899 * 8900 * @private 8901 * @param {*} value The value to query. 8902 * @returns {string} Returns the `toStringTag`. 8903 */ 8904function baseGetTag(value) { 8905 if (value == null) { 8906 return value === undefined ? undefinedTag : nullTag; 8907 } 8908 return (symToStringTag && symToStringTag in Object(value)) 8909 ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) 8910 : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); 8911} 8912 8913/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); 8914 8915 8916/***/ }), 8917/* 157 */ 8918/***/ (function(module, __webpack_exports__, __webpack_require__) { 8919 8920"use strict"; 8921__webpack_require__.r(__webpack_exports__); 8922/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(158); 8923 8924 8925/** Detect free variable `self`. */ 8926var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 8927 8928/** Used as a reference to the global object. */ 8929var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); 8930 8931/* harmony default export */ __webpack_exports__["default"] = (root); 8932 8933 8934/***/ }), 8935/* 158 */ 8936/***/ (function(module, __webpack_exports__, __webpack_require__) { 8937 8938"use strict"; 8939__webpack_require__.r(__webpack_exports__); 8940/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 8941var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 8942 8943/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); 8944 8945/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23))) 8946 8947/***/ }), 8948/* 159 */ 8949/***/ (function(module, __webpack_exports__, __webpack_require__) { 8950 8951"use strict"; 8952__webpack_require__.r(__webpack_exports__); 8953/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); 8954 8955 8956/** Used for built-in method references. */ 8957var objectProto = Object.prototype; 8958 8959/** Used to check objects for own properties. */ 8960var hasOwnProperty = objectProto.hasOwnProperty; 8961 8962/** 8963 * Used to resolve the 8964 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 8965 * of values. 8966 */ 8967var nativeObjectToString = objectProto.toString; 8968 8969/** Built-in value references. */ 8970var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 8971 8972/** 8973 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 8974 * 8975 * @private 8976 * @param {*} value The value to query. 8977 * @returns {string} Returns the raw `toStringTag`. 8978 */ 8979function getRawTag(value) { 8980 var isOwn = hasOwnProperty.call(value, symToStringTag), 8981 tag = value[symToStringTag]; 8982 8983 try { 8984 value[symToStringTag] = undefined; 8985 var unmasked = true; 8986 } catch (e) {} 8987 8988 var result = nativeObjectToString.call(value); 8989 if (unmasked) { 8990 if (isOwn) { 8991 value[symToStringTag] = tag; 8992 } else { 8993 delete value[symToStringTag]; 8994 } 8995 } 8996 return result; 8997} 8998 8999/* harmony default export */ __webpack_exports__["default"] = (getRawTag); 9000 9001 9002/***/ }), 9003/* 160 */ 9004/***/ (function(module, __webpack_exports__, __webpack_require__) { 9005 9006"use strict"; 9007__webpack_require__.r(__webpack_exports__); 9008/** Used for built-in method references. */ 9009var objectProto = Object.prototype; 9010 9011/** 9012 * Used to resolve the 9013 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 9014 * of values. 9015 */ 9016var nativeObjectToString = objectProto.toString; 9017 9018/** 9019 * Converts `value` to a string using `Object.prototype.toString`. 9020 * 9021 * @private 9022 * @param {*} value The value to convert. 9023 * @returns {string} Returns the converted string. 9024 */ 9025function objectToString(value) { 9026 return nativeObjectToString.call(value); 9027} 9028 9029/* harmony default export */ __webpack_exports__["default"] = (objectToString); 9030 9031 9032/***/ }), 9033/* 161 */ 9034/***/ (function(module, __webpack_exports__, __webpack_require__) { 9035 9036"use strict"; 9037__webpack_require__.r(__webpack_exports__); 9038/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(162); 9039 9040 9041/** Built-in value references. */ 9042var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); 9043 9044/* harmony default export */ __webpack_exports__["default"] = (getPrototype); 9045 9046 9047/***/ }), 9048/* 162 */ 9049/***/ (function(module, __webpack_exports__, __webpack_require__) { 9050 9051"use strict"; 9052__webpack_require__.r(__webpack_exports__); 9053/** 9054 * Creates a unary function that invokes `func` with its argument transformed. 9055 * 9056 * @private 9057 * @param {Function} func The function to wrap. 9058 * @param {Function} transform The argument transform. 9059 * @returns {Function} Returns the new function. 9060 */ 9061function overArg(func, transform) { 9062 return function(arg) { 9063 return func(transform(arg)); 9064 }; 9065} 9066 9067/* harmony default export */ __webpack_exports__["default"] = (overArg); 9068 9069
9070/***/ }), 9071/* 163 */ 9072/***/ (function(module, __webpack_exports__, __webpack_require__) { 9073 9074"use strict"; 9075__webpack_require__.r(__webpack_exports__); 9076/** 9077 * Checks if `value` is object-like. A value is object-like if it's not `null` 9078 * and has a `typeof` result of "object". 9079 * 9080 * @static 9081 * @memberOf _ 9082 * @since 4.0.0 9083 * @category Lang 9084 * @param {*} value The value to check. 9085 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 9086 * @example 9087 * 9088 * _.isObjectLike({}); 9089 * // => true 9090 * 9091 * _.isObjectLike([1, 2, 3]); 9092 * // => true 9093 * 9094 * _.isObjectLike(_.noop); 9095 * // => false 9096 * 9097 * _.isObjectLike(null); 9098 * // => false 9099 */ 9100function isObjectLike(value) { 9101 return value != null && typeof value == 'object'; 9102} 9103 9104/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); 9105 9106 9107/***/ }), 9108/* 164 */ 9109/***/ (function(module, __webpack_exports__, __webpack_require__) { 9110 9111"use strict"; 9112__webpack_require__.r(__webpack_exports__); 9113/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(166); 9114/* global window */ 9115 9116 9117var root; 9118 9119if (typeof self !== 'undefined') { 9120 root = self; 9121} else if (typeof window !== 'undefined') { 9122 root = window; 9123} else if (typeof global !== 'undefined') { 9124 root = global; 9125} else if (true) { 9126 root = module; 9127} else {} 9128 9129var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); 9130/* harmony default export */ __webpack_exports__["default"] = (result); 9131 9132/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(23), __webpack_require__(165)(module))) 9133 9134/***/ }), 9135/* 165 */ 9136/***/ (function(module, exports) { 9137 9138module.exports = function(originalModule) { 9139 if (!originalModule.webpackPolyfill) { 9140 var module = Object.create(originalModule); 9141 // module.parent = undefined by default 9142 if (!module.children) module.children = []; 9143 Object.defineProperty(module, "loaded", { 9144 enumerable: true, 9145 get: function() { 9146 return module.l; 9147 } 9148 }); 9149 Object.defineProperty(module, "id", { 9150 enumerable: true, 9151 get: function() { 9152 return module.i; 9153 } 9154 }); 9155 Object.defineProperty(module, "exports", { 9156 enumerable: true 9157 }); 9158 module.webpackPolyfill = 1; 9159 } 9160 return module; 9161}; 9162 9163 9164/***/ }), 9165/* 166 */ 9166/***/ (function(module, __webpack_exports__, __webpack_require__) { 9167 9168"use strict"; 9169__webpack_require__.r(__webpack_exports__); 9170/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); 9171function symbolObservablePonyfill(root) { 9172 var result; 9173 var Symbol = root.Symbol; 9174 9175 if (typeof Symbol === 'function') { 9176 if (Symbol.observable) { 9177 result = Symbol.observable; 9178 } else { 9179 result = Symbol('observable'); 9180 Symbol.observable = result; 9181 } 9182 } else { 9183 result = '@@observable'; 9184 } 9185 9186 return result; 9187}; 9188 9189 9190/***/ }), 9191/* 167 */ 9192/***/ (function(module, exports, __webpack_require__) { 9193 9194"use strict"; 9195 9196 9197Object.defineProperty(exports, "__esModule", { 9198 value: true 9199}); 9200exports["default"] = void 0; 9201 9202var _redux = __webpack_require__(78); 9203 9204var _IX2DataReducer = __webpack_require__(168); 9205 9206var _IX2RequestReducer = __webpack_require__(174); 9207 9208var _IX2SessionReducer = __webpack_require__(175); 9209 9210var _shared = __webpack_require__(10); 9211 9212var _IX2InstancesReducer = __webpack_require__(260); 9213 9214var _IX2ParametersReducer = __webpack_require__(261); 9215 9216var ixElements = _shared.IX2ElementsReducer.ixElements; 9217 9218var _default = (0, _redux.combineReducers)({ 9219 ixData: _IX2DataReducer.ixData, 9220 ixRequest: _IX2RequestReducer.ixRequest, 9221 ixSession: _IX2SessionReducer.ixSession, 9222 ixElements: ixElements, 9223 ixInstances: _IX2InstancesReducer.ixInstances, 9224 ixParameters: _IX2ParametersReducer.ixParameters 9225}); 9226 9227exports["default"] = _default; 9228 9229/***/ }), 9230/* 168 */ 9231/***/ (function(module, exports, __webpack_require__) { 9232 9233"use strict"; 9234 9235 9236Object.defineProperty(exports, "__esModule", { 9237 value: true 9238}); 9239exports.ixData = void 0; 9240 9241var _constants = __webpack_require__(2); 9242 9243var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; 9244 9245var ixData = function ixData() { 9246 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 9247 var action = arguments.length > 1 ? arguments[1] : undefined; 9248 9249 switch (action.type) {
9250 case IX2_RAW_DATA_IMPORTED: 9251 { 9252 return action.payload.ixData || Object.freeze({}); 9253 } 9254 9255 default: 9256 { 9257 return state; 9258 } 9259 } 9260}; 9261 9262exports.ixData = ixData; 9263 9264/***/ }), 9265/* 169 */ 9266/***/ (function(module, exports, __webpack_require__) { 9267 9268"use strict"; 9269 9270 9271Object.defineProperty(exports, "__esModule", { 9272 value: true 9273}); 9274exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; 9275/** 9276 * Event Type IDs 9277 */ 9278 9279var EventTypeConsts = { 9280 NAVBAR_OPEN: 'NAVBAR_OPEN', 9281 NAVBAR_CLOSE: 'NAVBAR_CLOSE', 9282 TAB_ACTIVE: 'TAB_ACTIVE', 9283 TAB_INACTIVE: 'TAB_INACTIVE', 9284 SLIDER_ACTIVE: 'SLIDER_ACTIVE', 9285 SLIDER_INACTIVE: 'SLIDER_INACTIVE', 9286 DROPDOWN_OPEN: 'DROPDOWN_OPEN', 9287 DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', 9288 MOUSE_CLICK: 'MOUSE_CLICK', 9289 MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', 9290 MOUSE_DOWN: 'MOUSE_DOWN', 9291 MOUSE_UP: 'MOUSE_UP', 9292 MOUSE_OVER: 'MOUSE_OVER', 9293 MOUSE_OUT: 'MOUSE_OUT', 9294 MOUSE_MOVE: 'MOUSE_MOVE', 9295 MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', 9296 SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', 9297 SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', 9298 SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', 9299 ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', 9300 ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', 9301 PAGE_START: 'PAGE_START', 9302 PAGE_FINISH: 'PAGE_FINISH', 9303 PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', 9304 PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', 9305 PAGE_SCROLL: 'PAGE_SCROLL' 9306}; 9307/** 9308 * Event Config Enums 9309 */ 9310 9311exports.EventTypeConsts = EventTypeConsts; 9312var EventAppliesTo = { 9313 ELEMENT: 'ELEMENT', 9314 CLASS: 'CLASS', 9315 PAGE: 'PAGE' 9316}; 9317exports.EventAppliesTo = EventAppliesTo; 9318var EventBasedOn = { 9319 ELEMENT: 'ELEMENT', 9320 VIEWPORT: 'VIEWPORT' 9321}; 9322exports.EventBasedOn = EventBasedOn; 9323var EventContinuousMouseAxes = { 9324 X_AXIS: 'X_AXIS', 9325 Y_AXIS: 'Y_AXIS' 9326}; 9327exports.EventContinuousMouseAxes = EventContinuousMouseAxes; 9328var EventLimitAffectedElements = { 9329 CHILDREN: 'CHILDREN', 9330 SIBLINGS: 'SIBLINGS', 9331 IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' 9332}; 9333/** 9334 * Quick Effect Enums 9335 */ 9336 9337exports.EventLimitAffectedElements = EventLimitAffectedElements; 9338var QuickEffectIds = { 9339 FADE_EFFECT: 'FADE_EFFECT', 9340 SLIDE_EFFECT: 'SLIDE_EFFECT', 9341 GROW_EFFECT: 'GROW_EFFECT', 9342 SHRINK_EFFECT: 'SHRINK_EFFECT', 9343 SPIN_EFFECT: 'SPIN_EFFECT', 9344 FLY_EFFECT: 'FLY_EFFECT', 9345 POP_EFFECT: 'POP_EFFECT', 9346 FLIP_EFFECT: 'FLIP_EFFECT', 9347 JIGGLE_EFFECT: 'JIGGLE_EFFECT', 9348 PULSE_EFFECT: 'PULSE_EFFECT', 9349 DROP_EFFECT: 'DROP_EFFECT', 9350 BLINK_EFFECT: 'BLINK_EFFECT', 9351 BOUNCE_EFFECT: 'BOUNCE_EFFECT', 9352 FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', 9353 FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', 9354 RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', 9355 JELLO_EFFECT: 'JELLO_EFFECT', 9356 GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', 9357 SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', 9358 PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' 9359}; 9360/** 9361 * Quick Effect Direction Enums 9362 */ 9363 9364exports.QuickEffectIds = QuickEffectIds; 9365var QuickEffectDirectionConsts = { 9366 LEFT: 'LEFT', 9367 RIGHT: 'RIGHT', 9368 BOTTOM: 'BOTTOM', 9369 TOP: 'TOP', 9370 BOTTOM_LEFT: 'BOTTOM_LEFT', 9371 BOTTOM_RIGHT: 'BOTTOM_RIGHT', 9372 TOP_RIGHT: 'TOP_RIGHT', 9373 TOP_LEFT: 'TOP_LEFT', 9374 CLOCKWISE: 'CLOCKWISE', 9375 COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' 9376}; 9377exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; 9378 9379/***/ }), 9380/* 170 */ 9381/***/ (function(module, exports, __webpack_require__) { 9382 9383"use strict"; 9384 9385 9386Object.defineProperty(exports, "__esModule", { 9387 value: true 9388}); 9389exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; 9390var ActionTypeConsts = { 9391 TRANSFORM_MOVE: 'TRANSFORM_MOVE', 9392 TRANSFORM_SCALE: 'TRANSFORM_SCALE', 9393 TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', 9394 TRANSFORM_SKEW: 'TRANSFORM_SKEW', 9395 STYLE_OPACITY: 'STYLE_OPACITY', 9396 STYLE_SIZE: 'STYLE_SIZE', 9397 STYLE_FILTER: 'STYLE_FILTER', 9398 STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', 9399 STYLE_BORDER: 'STYLE_BORDER', 9400 STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', 9401 PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', 9402 GENERAL_DISPLAY: 'GENERAL_DISPLAY', 9403 GENERAL_START_ACTION: 'GENERAL_START_ACTION', 9404 GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', 9405 // TODO: Clean these up below because they're not used at this time 9406 GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', 9407 GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', 9408 GENERAL_LOOP: 'GENERAL_LOOP', 9409 STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' 9410}; 9411exports.ActionTypeConsts = ActionTypeConsts; 9412var ActionAppliesTo = { 9413 ELEMENT: 'ELEMENT', 9414 ELEMENT_CLASS: 'ELEMENT_CLASS', 9415 TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' 9416}; 9417exports.ActionAppliesTo = ActionAppliesTo; 9418 9419/***/ }), 9420/* 171 */ 9421/***/ (function(module, exports, __webpack_require__) { 9422 9423"use strict"; 9424 9425 9426Object.defineProperty(exports, "__esModule", { 9427 value: true 9428}); 9429exports.InteractionTypeConsts = void 0; 9430var InteractionTypeConsts = { 9431 MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', 9432 MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', 9433 MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', 9434 SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', 9435 SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', 9436 MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', 9437 PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', 9438 PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', 9439 PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', 9440 NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', 9441 DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', 9442 ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', 9443 TAB_INTERACTION: 'TAB_INTERACTION', 9444 SLIDER_INTERACTION: 'SLIDER_INTERACTION' 9445}; 9446exports.InteractionTypeConsts = InteractionTypeConsts; 9447 9448/***/ }), 9449/* 172 */ 9450/***/ (function(module, exports, __webpack_require__) { 9451 9452"use strict"; 9453 9454 9455Object.defineProperty(exports, "__esModule", { 9456 value: true 9457});
9458exports.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; 9459var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; 9460exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; 9461var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; 9462exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; 9463var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; 9464exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; 9465var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; 9466exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; 9467var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; 9468exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; 9469var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; 9470exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; 9471var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; 9472exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; 9473var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; 9474exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; 9475var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; 9476exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; 9477var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; 9478exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; 9479var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; 9480exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; 9481var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; 9482exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; 9483var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; 9484exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; 9485var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; 9486exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; 9487var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; 9488exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; 9489var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; 9490exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; 9491var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; 9492exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; 9493var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; 9494exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; 9495var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; 9496exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; 9497var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; 9498exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; 9499 9500/***/ }), 9501/* 173 */ 9502/***/ (function(module, exports, __webpack_require__) { 9503 9504"use strict"; 9505 9506 9507Object.defineProperty(exports, "__esModule", { 9508 value: true 9509}); 9510exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exp
9510orts.ABSTRACT_NODE = exports.PLAIN_OBJECT = exports.HTML_ELEMENT = exports.PRESERVE_3D = exports.PARENT = exports.SIBLINGS = exports.IMMEDIATE_CHILDREN = exports.CHILDREN = exports.BAR_DELIMITER = exports.COLON_DELIMITER = exports.COMMA_DELIMITER = exports.AUTO = exports.WILL_CHANGE = exports.FLEX = exports.DISPLAY = exports.COLOR = exports.BORDER_COLOR = exports.BACKGROUND = exports.BACKGROUND_COLOR = exports.HEIGHT = exports.WIDTH = exports.FILTER = exports.OPACITY = exports.SKEW_Y = exports.SKEW_X = exports.SKEW = exports.ROTATE_Z = exports.ROTATE_Y = exports.ROTATE_X = exports.SCALE_3D = exports.SCALE_Z = exports.SCALE_Y = exports.SCALE_X = exports.TRANSLATE_3D = exports.TRANSLATE_Z = exports.TRANSLATE_Y = exports.TRANSLATE_X = exports.TRANSFORM = exports.CONFIG_UNIT = exports.CONFIG_Z_UNIT = exports.CONFIG_Y_UNIT = exports.CONFIG_X_UNIT = exports.CONFIG_VALUE = exports.CONFIG_Z_VALUE = exports.CONFIG_Y_VALUE = exports.CONFIG_X_VALUE = exports.BOUNDARY_SELECTOR = exports.W_MOD_IX = exports.W_MOD_JS = exports.WF_PAGE = exports.IX2_ID_DELIMITER = void 0; 9511var IX2_ID_DELIMITER = '|'; 9512exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; 9513var WF_PAGE = 'data-wf-page'; 9514exports.WF_PAGE = WF_PAGE; 9515var W_MOD_JS = 'w-mod-js'; 9516exports.W_MOD_JS = W_MOD_JS; 9517var W_MOD_IX = 'w-mod-ix'; 9518exports.W_MOD_IX = W_MOD_IX; 9519var BOUNDARY_SELECTOR = '.w-dyn-item'; 9520exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; 9521var CONFIG_X_VALUE = 'xValue'; 9522exports.CONFIG_X_VALUE = CONFIG_X_VALUE; 9523var CONFIG_Y_VALUE = 'yValue'; 9524exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; 9525var CONFIG_Z_VALUE = 'zValue'; 9526exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; 9527var CONFIG_VALUE = 'value'; 9528exports.CONFIG_VALUE = CONFIG_VALUE; 9529var CONFIG_X_UNIT = 'xUnit'; 9530exports.CONFIG_X_UNIT = CONFIG_X_UNIT; 9531var CONFIG_Y_UNIT = 'yUnit'; 9532exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; 9533var CONFIG_Z_UNIT = 'zUnit'; 9534exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; 9535var CONFIG_UNIT = 'unit'; 9536exports.CONFIG_UNIT = CONFIG_UNIT; 9537var TRANSFORM = 'transform'; 9538exports.TRANSFORM = TRANSFORM; 9539var TRANSLATE_X = 'translateX'; 9540exports.TRANSLATE_X = TRANSLATE_X; 9541var TRANSLATE_Y = 'translateY'; 9542exports.TRANSLATE_Y = TRANSLATE_Y; 9543var TRANSLATE_Z = 'translateZ'; 9544exports.TRANSLATE_Z = TRANSLATE_Z; 9545var TRANSLATE_3D = 'translate3d'; 9546exports.TRANSLATE_3D = TRANSLATE_3D; 9547var SCALE_X = 'scaleX'; 9548exports.SCALE_X = SCALE_X; 9549var SCALE_Y = 'scaleY'; 9550exports.SCALE_Y = SCALE_Y; 9551var SCALE_Z = 'scaleZ'; 9552exports.SCALE_Z = SCALE_Z; 9553var SCALE_3D = 'scale3d'; 9554exports.SCALE_3D = SCALE_3D; 9555var ROTATE_X = 'rotateX'; 9556exports.ROTATE_X = ROTATE_X; 9557var ROTATE_Y = 'rotateY'; 9558exports.ROTATE_Y = ROTATE_Y; 9559var ROTATE_Z = 'rotateZ'; 9560exports.ROTATE_Z = ROTATE_Z; 9561var SKEW = 'skew'; 9562exports.SKEW = SKEW; 9563var SKEW_X = 'skewX'; 9564exports.SKEW_X = SKEW_X; 9565var SKEW_Y = 'skewY'; 9566exports.SKEW_Y = SKEW_Y; 9567var OPACITY = 'opacity'; 9568exports.OPACITY = OPACITY; 9569var FILTER = 'filter'; 9570exports.FILTER = FILTER; 9571var WIDTH = 'width'; 9572exports.WIDTH = WIDTH; 9573var HEIGHT = 'height'; 9574exports.HEIGHT = HEIGHT; 9575var BACKGROUND_COLOR = 'backgroundColor'; 9576exports.BACKGROUND_COLOR = BACKGROUND_COLOR; 9577var BACKGROUND = 'background'; 9578exports.BACKGROUND = BACKGROUND; 9579var BORDER_COLOR = 'borderColor'; 9580exports.BORDER_COLOR = BORDER_COLOR; 9581var COLOR = 'color'; 9582exports.COLOR = COLOR; 9583var DISPLAY = 'display'; 9584exports.DISPLAY = DISPLAY; 9585var FLEX = 'flex'; 9586exports.FLEX = FLEX; 9587var WILL_CHANGE = 'willChange'; 9588exports.WILL_CHANGE = WILL_CHANGE; 9589var AUTO = 'AUTO'; 9590exports.AUTO = AUTO; 9591var COMMA_DELIMITER = ','; 9592exports.COMMA_DELIMITER = COMMA_DELIMITER; 9593var COLON_DELIMITER = ':'; 9594exports.COLON_DELIMITER = COLON_DELIMITER; 9595var BAR_DELIMITER = '|'; 9596exports.BAR_DELIMITER = BAR_DELIMITER; 9597var CHILDREN = 'CHILDREN'; 9598exports.CHILDREN = CHILDREN; 9599var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; 9600exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; 9601var SIBLINGS = 'SIBLINGS'; 9602exports.SIBLINGS = SIBLINGS; 9603var PARENT = 'PARENT'; 9604exports.PARENT = PARENT; 9605var PRESERVE_3D = 'preserve-3d'; 9606exports.PRESERVE_3D = PRESERVE_3D; 9607var HTML_ELEMENT = 'HTML_ELEMENT'; 9608exports.HTML_ELEMENT = HTML_ELEMENT; 9609var PLAIN_OBJECT = 'PLAIN_OBJECT'; 9610exports.PLAIN_OBJECT = PLAIN_OBJECT; 9611var ABSTRACT_NODE = 'ABSTRACT_NODE'; 9612exports.ABSTRACT_NODE = ABSTRACT_NODE; 9613var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; 9614exports.RENDER_TRANSFORM = RENDER_TRANSFORM; 9615var RENDER_GENERAL = 'RENDER_GENERAL'; 9616exports.RENDER_GENERAL = RENDER_GENERAL; 9617var RENDER_STYLE = 'RENDER_STYLE'; 9618exports.RENDER_STYLE = RENDER_STYLE; 9619var RENDER_PLUGIN = 'RENDER_PLUGIN'; 9620exports.RENDER_PLUGIN = RENDER_PLUGIN; 9621 9622/***/ }), 9623/* 174 */ 9624/***/ (function(module, exports, __webpack_require__) { 9625 9626"use strict"; 9627 9628 9629var _interopRequireDefault2 = __webpack_require__(0); 9630 9631var _defineProperty2 = _interopRequireDefault2(__webpack_require__(27)); 9632
9633var _Object$create; 9634 9635var _interopRequireDefault = __webpack_require__(0); 9636 9637Object.defineProperty(exports, "__esModule", { 9638 value: true 9639}); 9640exports.ixRequest = void 0; 9641 9642var _extends2 = _interopRequireDefault(__webpack_require__(28)); 9643 9644var _constants = __webpack_require__(2); 9645 9646var _timm = __webpack_require__(18); 9647 9648var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 9649 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 9650 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 9651 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 9652 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; 9653var initialState = { 9654 preview: {}, 9655 playback: {}, 9656 stop: {}, 9657 clear: {} 9658}; 9659var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { 9660 value: 'preview' 9661}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { 9662 value: 'playback' 9663}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { 9664 value: 'stop' 9665}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { 9666 value: 'clear' 9667}), _Object$create)); 9668 9669var ixRequest = function ixRequest() { 9670 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 9671 var action = arguments.length > 1 ? arguments[1] : undefined; 9672 9673 if (action.type in stateKeys) { 9674 var key = [stateKeys[action.type]]; 9675 return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); 9676 } 9677 9678 return state; 9679}; 9680 9681exports.ixRequest = ixRequest; 9682 9683/***/ }), 9684/* 175 */ 9685/***/ (function(module, exports, __webpack_require__) { 9686 9687"use strict"; 9688 9689 9690Object.defineProperty(exports, "__esModule", { 9691 value: true 9692}); 9693exports.ixSession = void 0; 9694 9695var _constants = __webpack_require__(2); 9696 9697var _timm = __webpack_require__(18); 9698 9699var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 9700 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 9701 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 9702 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 9703 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 9704 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 9705 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 9706 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 9707 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 9708 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 9709 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 9710var initialState = { 9711 active: false, 9712 tick: 0, 9713 eventListeners: [], 9714 eventState: {}, 9715 playbackState: {}, 9716 viewportWidth: 0, 9717 mediaQueryKey: null, 9718 hasBoundaryNodes: false, 9719 hasDefinedMediaQueries: false 9720}; 9721var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe 9722 9723var ixSession = function ixSession() { 9724 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 9725 var action = arguments.length > 1 ? arguments[1] : undefined; 9726 9727 switch (action.type) { 9728 case IX2_SESSION_INITIALIZED: 9729 { 9730 var hasBoundaryNodes = action.payload.hasBoundaryNodes; 9731 return (0, _timm.set)(state, 'hasBoundaryNodes', hasBoundaryNodes); 9732 } 9733 9734 case IX2_SESSION_STARTED: 9735 { 9736 return (0, _timm.set)(state, 'active', true); 9737 } 9738 9739 case IX2_TEST_FRAME_RENDERED: 9740 { 9741 var _action$payload$step = action.payload.step, 9742 step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; 9743 return (0, _timm.set)(state, 'tick', state.tick + step); 9744 } 9745 9746 case IX2_SESSION_STOPPED: 9747 { 9748 return initialState; 9749 } 9750 9751 case IX2_ANIMATION_FRAME_CHANGED: 9752 { 9753 var now = action.payload.now; 9754 return (0, _timm.set)(state, 'tick', now); 9755 } 9756 9757 case IX2_EVENT_LISTENER_ADDED: 9758 { 9759 var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); 9760 return (0, _timm.set)(state, 'eventListeners', eventListeners); 9761 } 9762 9763 case IX2_EVENT_STATE_CHANGED: 9764 { 9765 var _action$payload = action.payload, 9766 stateKey = _action$payload.stateKey, 9767 newState = _action$payload.newState; 9768 return (0, _timm.setIn)(state, ['eventState', stateKey], newState); 9769 } 9770 9771 case IX2_ACTION_LIST_PLAYBACK_CHANGED: 9772 { 9773 var _action$payload2 = action.payload, 9774 actionListId = _action$payload2.actionListId, 9775 isPlaying = _action$payload2.isPlaying; 9776 return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); 9777 } 9778 9779 case IX2_VIEWPORT_WIDTH_CHANGED: 9780 { 9781 var _action$payload3 = action.payload, 9782 width = _action$payload3.width, 9783 mediaQueries = _action$payload3.mediaQueries; 9784 var mediaQueryCount = mediaQueries.length; 9785 var mediaQueryKey = null; 9786 9787 for (var i = 0; i < mediaQueryCount; i++) { 9788 var _mediaQueries$i = mediaQueries[i], 9789 key = _mediaQueries$i.key, 9790 min = _mediaQueries$i.min, 9791 max = _mediaQueries$i.max; 9792 9793 if (width >= min && width <= max) { 9794 mediaQueryKey = key; 9795 break; 9796 } 9797 } 9798 9799 return (0, _timm.merge)(state, { 9800 viewportWidth: width, 9801 mediaQueryKey: mediaQueryKey 9802 }); 9803 } 9804 9805 case IX2_MEDIA_QUERIES_DEFINED: 9806 { 9807 return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); 9808 } 9809 9810 default: 9811 { 9812 return state; 9813 } 9814 } 9815}; 9816 9817exports.ixSession = ixSession; 9818 9819/***/ }), 9820/* 176 */ 9821/***/ (function(module, exports, __webpack_require__) { 9822 9823var baseIsMatch = __webpack_require__(177), 9824 getMatchData = __webpack_require__(229), 9825 matchesStrictComparable = __webpack_require__(101); 9826 9827/** 9828 * The base implementation of `_.matches` which doesn't clone `source`. 9829 * 9830 * @private 9831 * @param {Object} source The object of property values to match. 9832 * @returns {Function} Returns the new spec function. 9833 */ 9834function baseMatches(source) { 9835 var matchData = getMatchData(source); 9836 if (matchData.length == 1 && matchData[0][2]) { 9837 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 9838 } 9839 return function(object) { 9840 return object === source || baseIsMatch(object, source, matchData); 9841 }; 9842} 9843 9844module.exports = baseMatches; 9845 9846 9847/***/ }), 9848/* 177 */ 9849/***/ (function(module, exports, __webpack_require__) { 9850 9851var Stack = __webpack_require__(87), 9852 baseIsEqual = __webpack_require__(91); 9853 9854/** Used to compose bitmasks for value comparisons. */ 9855var COMPARE_PARTIAL_FLAG = 1, 9856 COMPARE_UNORDERED_FLAG = 2; 9857 9858/** 9859 * The base implementation of `_.isMatch` without support for iteratee shorthands. 9860 * 9861 * @private 9862 * @param {Object} object The object to inspect. 9863 * @param {Object} source The object of property values to match. 9864 * @param {Array} matchData The property names, values, and compare flags to match. 9865 * @param {Function} [customizer] The function to customize comparisons. 9866 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 9867 */ 9868function baseIsMatch(object, source, matchData, customizer) { 9869 var index = matchData.length, 9870 length = index, 9871 noCustomizer = !customizer; 9872 9873 if (object == null) { 9874 return !length; 9875 } 9876 object = Object(object); 9877 while (index--) { 9878 var data = matchData[index]; 9879 if ((noCustomizer && data[2]) 9880 ? data[1] !== object[data[0]] 9881 : !(data[0] in object) 9882 ) { 9883 return false;
9884 } 9885 } 9886 while (++index < length) { 9887 data = matchData[index]; 9888 var key = data[0], 9889 objValue = object[key], 9890 srcValue = data[1]; 9891 9892 if (noCustomizer && data[2]) { 9893 if (objValue === undefined && !(key in object)) { 9894 return false; 9895 } 9896 } else { 9897 var stack = new Stack; 9898 if (customizer) { 9899 var result = customizer(objValue, srcValue, key, object, source, stack); 9900 } 9901 if (!(result === undefined 9902 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 9903 : result 9904 )) { 9905 return false; 9906 } 9907 } 9908 } 9909 return true; 9910} 9911 9912module.exports = baseIsMatch; 9913 9914 9915/***/ }), 9916/* 178 */ 9917/***/ (function(module, exports) { 9918 9919/** 9920 * Removes all key-value entries from the list cache. 9921 * 9922 * @private 9923 * @name clear 9924 * @memberOf ListCache 9925 */ 9926function listCacheClear() { 9927 this.__data__ = []; 9928 this.size = 0; 9929} 9930 9931module.exports = listCacheClear; 9932 9933 9934/***/ }), 9935/* 179 */ 9936/***/ (function(module, exports, __webpack_require__) { 9937 9938var assocIndexOf = __webpack_require__(30); 9939 9940/** Used for built-in method references. */ 9941var arrayProto = Array.prototype; 9942 9943/** Built-in value references. */ 9944var splice = arrayProto.splice; 9945 9946/** 9947 * Removes `key` and its value from the list cache. 9948 * 9949 * @private 9950 * @name delete 9951 * @memberOf ListCache 9952 * @param {string} key The key of the value to remove. 9953 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 9954 */ 9955function listCacheDelete(key) { 9956 var data = this.__data__, 9957 index = assocIndexOf(data, key); 9958 9959 if (index < 0) { 9960 return false; 9961 } 9962 var lastIndex = data.length - 1; 9963 if (index == lastIndex) { 9964 data.pop(); 9965 } else { 9966 splice.call(data, index, 1); 9967 } 9968 --this.size; 9969 return true; 9970} 9971 9972module.exports = listCacheDelete; 9973 9974 9975/***/ }), 9976/* 180 */ 9977/***/ (function(module, exports, __webpack_require__) { 9978 9979var assocIndexOf = __webpack_require__(30); 9980 9981/** 9982 * Gets the list cache value for `key`. 9983 * 9984 * @private 9985 * @name get 9986 * @memberOf ListCache 9987 * @param {string} key The key of the value to get. 9988 * @returns {*} Returns the entry value. 9989 */ 9990function listCacheGet(key) { 9991 var data = this.__data__, 9992 index = assocIndexOf(data, key); 9993 9994 return index < 0 ? undefined : data[index][1]; 9995} 9996 9997module.exports = listCacheGet; 9998 9999 10000/***/ }), 10001/* 181 */ 10002/***/ (function(module, exports, __webpack_require__) { 10003 10004var assocIndexOf = __webpack_require__(30); 10005 10006/** 10007 * Checks if a list cache value for `key` exists. 10008 * 10009 * @private 10010 * @name has 10011 * @memberOf ListCache 10012 * @param {string} key The key of the entry to check. 10013 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10014 */ 10015function listCacheHas(key) { 10016 return assocIndexOf(this.__data__, key) > -1; 10017} 10018 10019module.exports = listCacheHas; 10020 10021 10022/***/ }), 10023/* 182 */ 10024/***/ (function(module, exports, __webpack_require__) { 10025 10026var assocIndexOf = __webpack_require__(30); 10027 10028/** 10029 * Sets the list cache `key` to `value`. 10030 * 10031 * @private 10032 * @name set 10033 * @memberOf ListCache 10034 * @param {string} key The key of the value to set. 10035 * @param {*} value The value to set. 10036 * @returns {Object} Returns the list cache instance. 10037 */ 10038function listCacheSet(key, value) { 10039 var data = this.__data__, 10040 index = assocIndexOf(data, key); 10041 10042 if (index < 0) { 10043 ++this.size; 10044 data.push([key, value]); 10045 } else { 10046 data[index][1] = value; 10047 } 10048 return this; 10049} 10050 10051module.exports = listCacheSet; 10052 10053 10054/***/ }), 10055/* 183 */ 10056/***/ (function(module, exports, __webpack_require__) { 10057 10058var ListCache = __webpack_require__(29); 10059 10060/** 10061 * Removes all key-value entries from the stack. 10062 * 10063 * @private 10064 * @name clear 10065 * @memberOf Stack 10066 */ 10067function stackClear() { 10068 this.__data__ = new ListCache; 10069 this.size = 0; 10070} 10071 10072module.exports = stackClear; 10073 10074 10075/***/ }), 10076/* 184 */ 10077/***/ (function(module, exports) { 10078 10079/** 10080 * Removes `key` and its value from the stack. 10081 * 10082 * @private 10083 * @name delete 10084 * @memberOf Stack 10085 * @param {string} key The key of the value to remove. 10086 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10087 */ 10088function stackDelete(key) { 10089 var data = this.__data__, 10090 result = data['delete'](key); 10091 10092 this.size = data.size; 10093 return result; 10094} 10095 10096module.exports = stackDelete; 10097 10098 10099/***/ }), 10100/* 185 */
vendor: 11,191 bytes, lines 10101-10597
10101/***/ (function(module, exports) { 10102 10103/** 10104 * Gets the stack value for `key`. 10105 * 10106 * @private 10107 * @name get 10108 * @memberOf Stack 10109 * @param {string} key The key of the value to get. 10110 * @returns {*} Returns the entry value. 10111 */ 10112function stackGet(key) { 10113 return this.__data__.get(key); 10114} 10115 10116module.exports = stackGet; 10117 10118 10119/***/ }), 10120/* 186 */ 10121/***/ (function(module, exports) { 10122 10123/** 10124 * Checks if a stack value for `key` exists. 10125 * 10126 * @private 10127 * @name has 10128 * @memberOf Stack 10129 * @param {string} key The key of the entry to check. 10130 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10131 */ 10132function stackHas(key) { 10133 return this.__data__.has(key); 10134} 10135 10136module.exports = stackHas; 10137 10138 10139/***/ }), 10140/* 187 */ 10141/***/ (function(module, exports, __webpack_require__) { 10142 10143var ListCache = __webpack_require__(29), 10144 Map = __webpack_require__(47), 10145 MapCache = __webpack_require__(48); 10146 10147/** Used as the size to enable large array optimizations. */ 10148var LARGE_ARRAY_SIZE = 200; 10149 10150/** 10151 * Sets the stack `key` to `value`. 10152 * 10153 * @private 10154 * @name set 10155 * @memberOf Stack 10156 * @param {string} key The key of the value to set. 10157 * @param {*} value The value to set. 10158 * @returns {Object} Returns the stack cache instance. 10159 */ 10160function stackSet(key, value) { 10161 var data = this.__data__; 10162 if (data instanceof ListCache) { 10163 var pairs = data.__data__; 10164 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 10165 pairs.push([key, value]); 10166 this.size = ++data.size; 10167 return this; 10168 } 10169 data = this.__data__ = new MapCache(pairs); 10170 } 10171 data.set(key, value); 10172 this.size = data.size; 10173 return this; 10174} 10175 10176module.exports = stackSet; 10177 10178 10179/***/ }), 10180/* 188 */ 10181/***/ (function(module, exports, __webpack_require__) { 10182 10183var isFunction = __webpack_require__(88), 10184 isMasked = __webpack_require__(191), 10185 isObject = __webpack_require__(6), 10186 toSource = __webpack_require__(90); 10187 10188/** 10189 * Used to match `RegExp` 10190 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 10191 */ 10192var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 10193 10194/** Used to detect host constructors (Safari). */ 10195var reIsHostCtor = /^\[object .+?Constructor\]$/; 10196 10197/** Used for built-in method references. */ 10198var funcProto = Function.prototype, 10199 objectProto = Object.prototype; 10200 10201/** Used to resolve the decompiled source of functions. */ 10202var funcToString = funcProto.toString; 10203 10204/** Used to check objects for own properties. */ 10205var hasOwnProperty = objectProto.hasOwnProperty; 10206 10207/** Used to detect if a method is native. */ 10208var reIsNative = RegExp('^' + 10209 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 10210 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 10211); 10212 10213/** 10214 * The base implementation of `_.isNative` without bad shim checks. 10215 * 10216 * @private 10217 * @param {*} value The value to check. 10218 * @returns {boolean} Returns `true` if `value` is a native function, 10219 * else `false`. 10220 */ 10221function baseIsNative(value) { 10222 if (!isObject(value) || isMasked(value)) { 10223 return false; 10224 } 10225 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 10226 return pattern.test(toSource(value)); 10227} 10228 10229module.exports = baseIsNative; 10230 10231 10232/***/ }), 10233/* 189 */ 10234/***/ (function(module, exports, __webpack_require__) { 10235 10236var Symbol = __webpack_require__(19); 10237 10238/** Used for built-in method references. */ 10239var objectProto = Object.prototype; 10240 10241/** Used to check objects for own properties. */ 10242var hasOwnProperty = objectProto.hasOwnProperty; 10243 10244/** 10245 * Used to resolve the 10246 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10247 * of values. 10248 */ 10249var nativeObjectToString = objectProto.toString; 10250 10251/** Built-in value references. */ 10252var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 10253 10254/** 10255 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 10256 * 10257 * @private 10258 * @param {*} value The value to query. 10259 * @returns {string} Returns the raw `toStringTag`. 10260 */ 10261function getRawTag(value) { 10262 var isOwn = hasOwnProperty.call(value, symToStringTag), 10263 tag = value[symToStringTag]; 10264 10265 try { 10266 value[symToStringTag] = undefined; 10267 var unmasked = true; 10268 } catch (e) {} 10269 10270 var result = nativeObjectToString.call(value); 10271 if (unmasked) { 10272 if (isOwn) { 10273 value[symToStringTag] = tag; 10274 } else { 10275 delete value[symToStringTag]; 10276 } 10277 } 10278 return result; 10279} 10280 10281module.exports = getRawTag; 10282 10283 10284/***/ }), 10285/* 190 */ 10286/***/ (function(module, exports) { 10287 10288/** Used for built-in method references. */ 10289var objectProto = Object.prototype; 10290 10291/** 10292 * Used to resolve the 10293 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10294 * of values. 10295 */ 10296var nativeObjectToString = objectProto.toString; 10297 10298/** 10299 * Converts `value` to a string using `Object.prototype.toString`. 10300 * 10301 * @private 10302 * @param {*} value The value to convert. 10303 * @returns {string} Returns the converted string. 10304 */ 10305function objectToString(value) { 10306 return nativeObjectToString.call(value); 10307} 10308 10309module.exports = objectToString; 10310 10311 10312/***/ }), 10313/* 191 */ 10314/***/ (function(module, exports, __webpack_require__) { 10315 10316var coreJsData = __webpack_require__(192); 10317 10318/** Used to detect methods masquerading as native. */ 10319var maskSrcKey = (function() { 10320 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 10321 return uid ? ('Symbol(src)_1.' + uid) : ''; 10322}()); 10323 10324/** 10325 * Checks if `func` has its source masked. 10326 * 10327 * @private 10328 * @param {Function} func The function to check. 10329 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 10330 */ 10331function isMasked(func) { 10332 return !!maskSrcKey && (maskSrcKey in func); 10333} 10334 10335module.exports = isMasked; 10336 10337 10338/***/ }), 10339/* 192 */ 10340/***/ (function(module, exports, __webpack_require__) { 10341 10342var root = __webpack_require__(5); 10343 10344/** Used to detect overreaching core-js shims. */ 10345var coreJsData = root['__core-js_shared__']; 10346 10347module.exports = coreJsData; 10348 10349 10350/***/ }), 10351/* 193 */ 10352/***/ (function(module, exports) { 10353 10354/** 10355 * Gets the value at `key` of `object`. 10356 * 10357 * @private 10358 * @param {Object} [object] The object to query. 10359 * @param {string} key The key of the property to get. 10360 * @returns {*} Returns the property value. 10361 */ 10362function getValue(object, key) { 10363 return object == null ? undefined : object[key]; 10364} 10365 10366module.exports = getValue; 10367 10368 10369/***/ }), 10370/* 194 */ 10371/***/ (function(module, exports, __webpack_require__) { 10372 10373var Hash = __webpack_require__(195), 10374 ListCache = __webpack_require__(29), 10375 Map = __webpack_require__(47); 10376 10377/** 10378 * Removes all key-value entries from the map. 10379 * 10380 * @private 10381 * @name clear 10382 * @memberOf MapCache 10383 */ 10384function mapCacheClear() { 10385 this.size = 0; 10386 this.__data__ = { 10387 'hash': new Hash, 10388 'map': new (Map || ListCache), 10389 'string': new Hash 10390 }; 10391} 10392 10393module.exports = mapCacheClear; 10394 10395 10396/***/ }), 10397/* 195 */ 10398/***/ (function(module, exports, __webpack_require__) { 10399 10400var hashClear = __webpack_require__(196), 10401 hashDelete = __webpack_require__(197), 10402 hashGet = __webpack_require__(198), 10403 hashHas = __webpack_require__(199), 10404 hashSet = __webpack_require__(200); 10405 10406/** 10407 * Creates a hash object. 10408 * 10409 * @private 10410 * @constructor 10411 * @param {Array} [entries] The key-value pairs to cache. 10412 */ 10413function Hash(entries) { 10414 var index = -1, 10415 length = entries == null ? 0 : entries.length; 10416 10417 this.clear(); 10418 while (++index < length) { 10419 var entry = entries[index]; 10420 this.set(entry[0], entry[1]); 10421 } 10422} 10423 10424// Add methods to `Hash`. 10425Hash.prototype.clear = hashClear; 10426Hash.prototype['delete'] = hashDelete; 10427Hash.prototype.get = hashGet; 10428Hash.prototype.has = hashHas; 10429Hash.prototype.set = hashSet; 10430 10431module.exports = Hash; 10432 10433 10434/***/ }), 10435/* 196 */ 10436/***/ (function(module, exports, __webpack_require__) { 10437 10438var nativeCreate = __webpack_require__(31); 10439 10440/** 10441 * Removes all key-value entries from the hash. 10442 * 10443 * @private 10444 * @name clear 10445 * @memberOf Hash 10446 */ 10447function hashClear() { 10448 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 10449 this.size = 0; 10450} 10451 10452module.exports = hashClear; 10453 10454 10455/***/ }), 10456/* 197 */ 10457/***/ (function(module, exports) { 10458 10459/** 10460 * Removes `key` and its value from the hash. 10461 * 10462 * @private 10463 * @name delete 10464 * @memberOf Hash 10465 * @param {Object} hash The hash to modify. 10466 * @param {string} key The key of the value to remove. 10467 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10468 */ 10469function hashDelete(key) { 10470 var result = this.has(key) && delete this.__data__[key]; 10471 this.size -= result ? 1 : 0; 10472 return result; 10473} 10474 10475module.exports = hashDelete; 10476 10477 10478/***/ }), 10479/* 198 */ 10480/***/ (function(module, exports, __webpack_require__) { 10481 10482var nativeCreate = __webpack_require__(31); 10483 10484/** Used to stand-in for `undefined` hash values. */ 10485var HASH_UNDEFINED = '__lodash_hash_undefined__'; 10486 10487/** Used for built-in method references. */ 10488var objectProto = Object.prototype; 10489 10490/** Used to check objects for own properties. */ 10491var hasOwnProperty = objectProto.hasOwnProperty; 10492 10493/** 10494 * Gets the hash value for `key`. 10495 * 10496 * @private 10497 * @name get 10498 * @memberOf Hash 10499 * @param {string} key The key of the value to get. 10500 * @returns {*} Returns the entry value. 10501 */ 10502function hashGet(key) { 10503 var data = this.__data__; 10504 if (nativeCreate) { 10505 var result = data[key]; 10506 return result === HASH_UNDEFINED ? undefined : result; 10507 } 10508 return hasOwnProperty.call(data, key) ? data[key] : undefined; 10509} 10510 10511module.exports = hashGet; 10512 10513 10514/***/ }), 10515/* 199 */ 10516/***/ (function(module, exports, __webpack_require__) { 10517 10518var nativeCreate = __webpack_require__(31); 10519 10520/** Used for built-in method references. */ 10521var objectProto = Object.prototype; 10522 10523/** Used to check objects for own properties. */ 10524var hasOwnProperty = objectProto.hasOwnProperty; 10525 10526/** 10527 * Checks if a hash value for `key` exists. 10528 * 10529 * @private 10530 * @name has 10531 * @memberOf Hash 10532 * @param {string} key The key of the entry to check. 10533 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10534 */ 10535function hashHas(key) { 10536 var data = this.__data__; 10537 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 10538} 10539 10540module.exports = hashHas; 10541 10542 10543/***/ }), 10544/* 200 */ 10545/***/ (function(module, exports, __webpack_require__) { 10546 10547var nativeCreate = __webpack_require__(31); 10548 10549/** Used to stand-in for `undefined` hash values. */ 10550var HASH_UNDEFINED = '__lodash_hash_undefined__'; 10551 10552/** 10553 * Sets the hash `key` to `value`. 10554 * 10555 * @private 10556 * @name set 10557 * @memberOf Hash 10558 * @param {string} key The key of the value to set. 10559 * @param {*} value The value to set. 10560 * @returns {Object} Returns the hash instance. 10561 */ 10562function hashSet(key, value) { 10563 var data = this.__data__; 10564 this.size += this.has(key) ? 0 : 1; 10565 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 10566 return this; 10567} 10568 10569module.exports = hashSet; 10570 10571 10572/***/ }), 10573/* 201 */ 10574/***/ (function(module, exports, __webpack_require__) { 10575 10576var getMapData = __webpack_require__(32); 10577 10578/** 10579 * Removes `key` and its value from the map. 10580 * 10581 * @private 10582 * @name delete 10583 * @memberOf MapCache 10584 * @param {string} key The key of the value to remove. 10585 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10586 */ 10587function mapCacheDelete(key) { 10588 var result = getMapData(this, key)['delete'](key); 10589 this.size -= result ? 1 : 0; 10590 return result; 10591} 10592 10593module.exports = mapCacheDelete; 10594 10595 10596/***/ }), 10597/* 202 */
vendor: 4,845 bytes, lines 10598-10769
10598/***/ (function(module, exports) { 10599 10600/** 10601 * Checks if `value` is suitable for use as unique object key. 10602 * 10603 * @private 10604 * @param {*} value The value to check. 10605 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 10606 */ 10607function isKeyable(value) { 10608 var type = typeof value; 10609 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 10610 ? (value !== '__proto__') 10611 : (value === null); 10612} 10613 10614module.exports = isKeyable; 10615 10616 10617/***/ }), 10618/* 203 */ 10619/***/ (function(module, exports, __webpack_require__) { 10620 10621var getMapData = __webpack_require__(32); 10622 10623/** 10624 * Gets the map value for `key`. 10625 * 10626 * @private 10627 * @name get 10628 * @memberOf MapCache 10629 * @param {string} key The key of the value to get. 10630 * @returns {*} Returns the entry value. 10631 */ 10632function mapCacheGet(key) { 10633 return getMapData(this, key).get(key); 10634} 10635 10636module.exports = mapCacheGet; 10637 10638 10639/***/ }), 10640/* 204 */ 10641/***/ (function(module, exports, __webpack_require__) { 10642 10643var getMapData = __webpack_require__(32); 10644 10645/** 10646 * Checks if a map value for `key` exists. 10647 * 10648 * @private 10649 * @name has 10650 * @memberOf MapCache 10651 * @param {string} key The key of the entry to check. 10652 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10653 */ 10654function mapCacheHas(key) { 10655 return getMapData(this, key).has(key); 10656} 10657 10658module.exports = mapCacheHas; 10659 10660 10661/***/ }), 10662/* 205 */ 10663/***/ (function(module, exports, __webpack_require__) { 10664 10665var getMapData = __webpack_require__(32); 10666 10667/** 10668 * Sets the map `key` to `value`. 10669 * 10670 * @private 10671 * @name set 10672 * @memberOf MapCache 10673 * @param {string} key The key of the value to set. 10674 * @param {*} value The value to set. 10675 * @returns {Object} Returns the map cache instance. 10676 */ 10677function mapCacheSet(key, value) { 10678 var data = getMapData(this, key), 10679 size = data.size; 10680 10681 data.set(key, value); 10682 this.size += data.size == size ? 0 : 1; 10683 return this; 10684} 10685 10686module.exports = mapCacheSet; 10687 10688 10689/***/ }), 10690/* 206 */ 10691/***/ (function(module, exports, __webpack_require__) { 10692 10693var Stack = __webpack_require__(87), 10694 equalArrays = __webpack_require__(92), 10695 equalByTag = __webpack_require__(212), 10696 equalObjects = __webpack_require__(216), 10697 getTag = __webpack_require__(56), 10698 isArray = __webpack_require__(1), 10699 isBuffer = __webpack_require__(50), 10700 isTypedArray = __webpack_require__(52); 10701 10702/** Used to compose bitmasks for value comparisons. */ 10703var COMPARE_PARTIAL_FLAG = 1; 10704 10705/** `Object#toString` result references. */ 10706var argsTag = '[object Arguments]', 10707 arrayTag = '[object Array]', 10708 objectTag = '[object Object]'; 10709 10710/** Used for built-in method references. */ 10711var objectProto = Object.prototype; 10712 10713/** Used to check objects for own properties. */ 10714var hasOwnProperty = objectProto.hasOwnProperty; 10715 10716/** 10717 * A specialized version of `baseIsEqual` for arrays and objects which performs 10718 * deep comparisons and tracks traversed objects enabling objects with circular 10719 * references to be compared. 10720 * 10721 * @private 10722 * @param {Object} object The object to compare. 10723 * @param {Object} other The other object to compare. 10724 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 10725 * @param {Function} customizer The function to customize comparisons. 10726 * @param {Function} equalFunc The function to determine equivalents of values. 10727 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 10728 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 10729 */ 10730function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 10731 var objIsArr = isArray(object), 10732 othIsArr = isArray(other), 10733 objTag = objIsArr ? arrayTag : getTag(object), 10734 othTag = othIsArr ? arrayTag : getTag(other); 10735 10736 objTag = objTag == argsTag ? objectTag : objTag; 10737 othTag = othTag == argsTag ? objectTag : othTag; 10738 10739 var objIsObj = objTag == objectTag, 10740 othIsObj = othTag == objectTag, 10741 isSameTag = objTag == othTag; 10742 10743 if (isSameTag && isBuffer(object)) { 10744 if (!isBuffer(other)) { 10745 return false; 10746 } 10747 objIsArr = true; 10748 objIsObj = false; 10749 } 10750 if (isSameTag && !objIsObj) { 10751 stack || (stack = new Stack); 10752 return (objIsArr || isTypedArray(object)) 10753 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 10754 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 10755 } 10756 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 10757 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 10758 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 10759 10760 if (objIsWrapped || othIsWrapped) { 10761 var objUnwrapped = objIsWrapped ? object.value() : object, 10762 othUnwrapped = othIsWrapped ? other.value() : other; 10763 10764 stack || (stack = new Stack); 10765 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 10766 } 10767 } 10768 if (!isSameTag) { 10769 return false;
10770 } 10771 stack || (stack = new Stack); 10772 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 10773} 10774 10775module.exports = baseIsEqualDeep; 10776 10777 10778/***/ }), 10779/* 207 */ 10780/***/ (function(module, exports, __webpack_require__) { 10781 10782var MapCache = __webpack_require__(48), 10783 setCacheAdd = __webpack_require__(208), 10784 setCacheHas = __webpack_require__(209); 10785 10786/** 10787 * 10788 * Creates an array cache object to store unique values. 10789 * 10790 * @private 10791 * @constructor 10792 * @param {Array} [values] The values to cache. 10793 */ 10794function SetCache(values) { 10795 var index = -1, 10796 length = values == null ? 0 : values.length; 10797 10798 this.__data__ = new MapCache; 10799 while (++index < length) { 10800 this.add(values[index]); 10801 } 10802} 10803 10804// Add methods to `SetCache`. 10805SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 10806SetCache.prototype.has = setCacheHas; 10807 10808module.exports = SetCache; 10809 10810 10811/***/ }), 10812/* 208 */ 10813/***/ (function(module, exports) { 10814 10815/** Used to stand-in for `undefined` hash values. */ 10816var HASH_UNDEFINED = '__lodash_hash_undefined__'; 10817 10818/** 10819 * Adds `value` to the array cache. 10820 * 10821 * @private 10822 * @name add 10823 * @memberOf SetCache 10824 * @alias push 10825 * @param {*} value The value to cache. 10826 * @returns {Object} Returns the cache instance. 10827 */ 10828function setCacheAdd(value) { 10829 this.__data__.set(value, HASH_UNDEFINED); 10830 return this; 10831} 10832 10833module.exports = setCacheAdd; 10834 10835 10836/***/ }), 10837/* 209 */ 10838/***/ (function(module, exports) { 10839 10840/** 10841 * Checks if `value` is in the array cache. 10842 * 10843 * @private 10844 * @name has 10845 * @memberOf SetCache 10846 * @param {*} value The value to search for. 10847 * @returns {number} Returns `true` if `value` is found, else `false`. 10848 */ 10849function setCacheHas(value) { 10850 return this.__data__.has(value); 10851} 10852 10853module.exports = setCacheHas; 10854 10855 10856/***/ }), 10857/* 210 */ 10858/***/ (function(module, exports) { 10859 10860/** 10861 * A specialized version of `_.some` for arrays without support for iteratee 10862 * shorthands. 10863 * 10864 * @private 10865 * @param {Array} [array] The array to iterate over. 10866 * @param {Function} predicate The function invoked per iteration. 10867 * @returns {boolean} Returns `true` if any element passes the predicate check, 10868 * else `false`. 10869 */ 10870function arraySome(array, predicate) { 10871 var index = -1, 10872 length = array == null ? 0 : array.length; 10873 10874 while (++index < length) { 10875 if (predicate(array[index], index, array)) { 10876 return true; 10877 } 10878 } 10879 return false; 10880} 10881 10882module.exports = arraySome; 10883 10884 10885/***/ }), 10886/* 211 */ 10887/***/ (function(module, exports) { 10888 10889/** 10890 * Checks if a `cache` value for `key` exists. 10891 * 10892 * @private 10893 * @param {Object} cache The cache to query. 10894 * @param {string} key The key of the entry to check. 10895 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10896 */ 10897function cacheHas(cache, key) { 10898 return cache.has(key); 10899} 10900 10901module.exports = cacheHas; 10902 10903 10904/***/ }), 10905/* 212 */ 10906/***/ (function(module, exports, __webpack_require__) { 10907 10908var Symbol = __webpack_require__(19), 10909 Uint8Array = __webpack_require__(213), 10910 eq = __webpack_require__(46), 10911 equalArrays = __webpack_require__(92), 10912 mapToArray = __webpack_require__(214), 10913 setToArray = __webpack_require__(215); 10914 10915/** Used to compose bitmasks for value comparisons. */ 10916var COMPARE_PARTIAL_FLAG = 1, 10917 COMPARE_UNORDERED_FLAG = 2; 10918 10919/** `Object#toString` result references. */ 10920var boolTag = '[object Boolean]', 10921 dateTag = '[object Date]', 10922 errorTag = '[object Error]', 10923 mapTag = '[object Map]', 10924 numberTag = '[object Number]', 10925 regexpTag = '[object RegExp]', 10926 setTag = '[object Set]', 10927 stringTag = '[object String]', 10928 symbolTag = '[object Symbol]'; 10929 10930var arrayBufferTag = '[object ArrayBuffer]', 10931 dataViewTag = '[object DataView]'; 10932 10933/** Used to convert symbols to primitives and strings. */ 10934var symbolProto = Symbol ? Symbol.prototype : undefined, 10935 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; 10936 10937/** 10938 * A specialized version of `baseIsEqualDeep` for comparing objects of 10939 * the same `toStringTag`. 10940 * 10941 * **Note:** This function only supports comparing values with tags of 10942 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 10943 * 10944 * @private 10945 * @param {Object} object The object to compare. 10946 * @param {Object} other The other object to compare. 10947 * @param {string} tag The `toStringTag` of the objects to compare. 10948 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 10949 * @param {Function} customizer The function to customize comparisons. 10950 * @param {Function} equalFunc The function to determine equivalents of values. 10951 * @param {Object} stack Tracks traversed `object` and `other` objects. 10952 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 10953 */ 10954function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 10955 switch (tag) { 10956 case dataViewTag: 10957 if ((object.byteLength != other.byteLength) || 10958 (object.byteOffset != other.byteOffset)) { 10959 return false;
vendor: 4,097 bytes, lines 10960-11118
10960 } 10961 object = object.buffer; 10962 other = other.buffer; 10963 10964 case arrayBufferTag: 10965 if ((object.byteLength != other.byteLength) || 10966 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 10967 return false; 10968 } 10969 return true; 10970 10971 case boolTag: 10972 case dateTag: 10973 case numberTag: 10974 // Coerce booleans to `1` or `0` and dates to milliseconds. 10975 // Invalid dates are coerced to `NaN`. 10976 return eq(+object, +other); 10977 10978 case errorTag: 10979 return object.name == other.name && object.message == other.message; 10980 10981 case regexpTag: 10982 case stringTag: 10983 // Coerce regexes to strings and treat strings, primitives and objects, 10984 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 10985 // for more details. 10986 return object == (other + ''); 10987 10988 case mapTag: 10989 var convert = mapToArray; 10990 10991 case setTag: 10992 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 10993 convert || (convert = setToArray); 10994 10995 if (object.size != other.size && !isPartial) { 10996 return false; 10997 } 10998 // Assume cyclic values are equal. 10999 var stacked = stack.get(object); 11000 if (stacked) { 11001 return stacked == other; 11002 } 11003 bitmask |= COMPARE_UNORDERED_FLAG; 11004 11005 // Recursively compare objects (susceptible to call stack limits). 11006 stack.set(object, other); 11007 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 11008 stack['delete'](object); 11009 return result; 11010 11011 case symbolTag: 11012 if (symbolValueOf) { 11013 return symbolValueOf.call(object) == symbolValueOf.call(other); 11014 } 11015 } 11016 return false; 11017} 11018 11019module.exports = equalByTag; 11020 11021 11022/***/ }), 11023/* 213 */ 11024/***/ (function(module, exports, __webpack_require__) { 11025 11026var root = __webpack_require__(5); 11027 11028/** Built-in value references. */ 11029var Uint8Array = root.Uint8Array; 11030 11031module.exports = Uint8Array; 11032 11033 11034/***/ }), 11035/* 214 */ 11036/***/ (function(module, exports) { 11037 11038/** 11039 * Converts `map` to its key-value pairs. 11040 * 11041 * @private 11042 * @param {Object} map The map to convert. 11043 * @returns {Array} Returns the key-value pairs. 11044 */ 11045function mapToArray(map) { 11046 var index = -1, 11047 result = Array(map.size); 11048 11049 map.forEach(function(value, key) { 11050 result[++index] = [key, value]; 11051 }); 11052 return result; 11053} 11054 11055module.exports = mapToArray; 11056 11057 11058/***/ }), 11059/* 215 */ 11060/***/ (function(module, exports) { 11061 11062/** 11063 * Converts `set` to an array of its values. 11064 * 11065 * @private 11066 * @param {Object} set The set to convert. 11067 * @returns {Array} Returns the values. 11068 */ 11069function setToArray(set) { 11070 var index = -1, 11071 result = Array(set.size); 11072 11073 set.forEach(function(value) { 11074 result[++index] = value; 11075 }); 11076 return result; 11077} 11078 11079module.exports = setToArray; 11080 11081 11082/***/ }), 11083/* 216 */ 11084/***/ (function(module, exports, __webpack_require__) { 11085 11086var getAllKeys = __webpack_require__(217); 11087 11088/** Used to compose bitmasks for value comparisons. */ 11089var COMPARE_PARTIAL_FLAG = 1; 11090 11091/** Used for built-in method references. */ 11092var objectProto = Object.prototype; 11093 11094/** Used to check objects for own properties. */ 11095var hasOwnProperty = objectProto.hasOwnProperty; 11096 11097/** 11098 * A specialized version of `baseIsEqualDeep` for objects with support for 11099 * partial deep comparisons. 11100 * 11101 * @private 11102 * @param {Object} object The object to compare. 11103 * @param {Object} other The other object to compare. 11104 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11105 * @param {Function} customizer The function to customize comparisons. 11106 * @param {Function} equalFunc The function to determine equivalents of values. 11107 * @param {Object} stack Tracks traversed `object` and `other` objects. 11108 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11109 */ 11110function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 11111 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 11112 objProps = getAllKeys(object), 11113 objLength = objProps.length, 11114 othProps = getAllKeys(other), 11115 othLength = othProps.length; 11116 11117 if (objLength != othLength && !isPartial) { 11118 return false;
vendor: 1,526 bytes, lines 11119-11166
11119 } 11120 var index = objLength; 11121 while (index--) { 11122 var key = objProps[index]; 11123 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 11124 return false; 11125 } 11126 } 11127 // Assume cyclic values are equal. 11128 var stacked = stack.get(object); 11129 if (stacked && stack.get(other)) { 11130 return stacked == other; 11131 } 11132 var result = true; 11133 stack.set(object, other); 11134 stack.set(other, object); 11135 11136 var skipCtor = isPartial; 11137 while (++index < objLength) { 11138 key = objProps[index]; 11139 var objValue = object[key], 11140 othValue = other[key]; 11141 11142 if (customizer) { 11143 var compared = isPartial 11144 ? customizer(othValue, objValue, key, other, object, stack) 11145 : customizer(objValue, othValue, key, object, other, stack); 11146 } 11147 // Recursively compare objects (susceptible to call stack limits). 11148 if (!(compared === undefined 11149 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 11150 : compared 11151 )) { 11152 result = false; 11153 break; 11154 } 11155 skipCtor || (skipCtor = key == 'constructor'); 11156 } 11157 if (result && !skipCtor) { 11158 var objCtor = object.constructor, 11159 othCtor = other.constructor; 11160 11161 // Non `Object` object instances with different constructors are not equal. 11162 if (objCtor != othCtor && 11163 ('constructor' in object && 'constructor' in other) && 11164 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 11165 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 11166 result = false;
vendor: 10,099 bytes, lines 11167-11560
11167 } 11168 } 11169 stack['delete'](object); 11170 stack['delete'](other); 11171 return result; 11172} 11173 11174module.exports = equalObjects; 11175 11176 11177/***/ }), 11178/* 217 */ 11179/***/ (function(module, exports, __webpack_require__) { 11180 11181var baseGetAllKeys = __webpack_require__(93), 11182 getSymbols = __webpack_require__(94), 11183 keys = __webpack_require__(33); 11184 11185/** 11186 * Creates an array of own enumerable property names and symbols of `object`. 11187 * 11188 * @private 11189 * @param {Object} object The object to query. 11190 * @returns {Array} Returns the array of property names and symbols. 11191 */ 11192function getAllKeys(object) { 11193 return baseGetAllKeys(object, keys, getSymbols); 11194} 11195 11196module.exports = getAllKeys; 11197 11198 11199/***/ }), 11200/* 218 */ 11201/***/ (function(module, exports) { 11202 11203/** 11204 * A specialized version of `_.filter` for arrays without support for 11205 * iteratee shorthands. 11206 * 11207 * @private 11208 * @param {Array} [array] The array to iterate over. 11209 * @param {Function} predicate The function invoked per iteration. 11210 * @returns {Array} Returns the new filtered array. 11211 */ 11212function arrayFilter(array, predicate) { 11213 var index = -1, 11214 length = array == null ? 0 : array.length, 11215 resIndex = 0, 11216 result = []; 11217 11218 while (++index < length) { 11219 var value = array[index]; 11220 if (predicate(value, index, array)) { 11221 result[resIndex++] = value; 11222 } 11223 } 11224 return result; 11225} 11226 11227module.exports = arrayFilter; 11228 11229 11230/***/ }), 11231/* 219 */ 11232/***/ (function(module, exports) { 11233 11234/** 11235 * The base implementation of `_.times` without support for iteratee shorthands 11236 * or max array length checks. 11237 * 11238 * @private 11239 * @param {number} n The number of times to invoke `iteratee`. 11240 * @param {Function} iteratee The function invoked per iteration. 11241 * @returns {Array} Returns the array of results. 11242 */ 11243function baseTimes(n, iteratee) { 11244 var index = -1, 11245 result = Array(n); 11246 11247 while (++index < n) { 11248 result[index] = iteratee(index); 11249 } 11250 return result; 11251} 11252 11253module.exports = baseTimes; 11254 11255 11256/***/ }), 11257/* 220 */ 11258/***/ (function(module, exports, __webpack_require__) { 11259 11260var baseGetTag = __webpack_require__(11), 11261 isObjectLike = __webpack_require__(9); 11262 11263/** `Object#toString` result references. */ 11264var argsTag = '[object Arguments]'; 11265 11266/** 11267 * The base implementation of `_.isArguments`. 11268 * 11269 * @private 11270 * @param {*} value The value to check. 11271 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 11272 */ 11273function baseIsArguments(value) { 11274 return isObjectLike(value) && baseGetTag(value) == argsTag; 11275} 11276 11277module.exports = baseIsArguments; 11278 11279 11280/***/ }), 11281/* 221 */ 11282/***/ (function(module, exports) { 11283 11284/** 11285 * This method returns `false`. 11286 * 11287 * @static 11288 * @memberOf _ 11289 * @since 4.13.0 11290 * @category Util 11291 * @returns {boolean} Returns `false`. 11292 * @example 11293 * 11294 * _.times(2, _.stubFalse); 11295 * // => [false, false] 11296 */ 11297function stubFalse() { 11298 return false; 11299} 11300 11301module.exports = stubFalse; 11302 11303 11304/***/ }), 11305/* 222 */ 11306/***/ (function(module, exports, __webpack_require__) { 11307 11308var baseGetTag = __webpack_require__(11), 11309 isLength = __webpack_require__(53), 11310 isObjectLike = __webpack_require__(9); 11311 11312/** `Object#toString` result references. */ 11313var argsTag = '[object Arguments]', 11314 arrayTag = '[object Array]', 11315 boolTag = '[object Boolean]', 11316 dateTag = '[object Date]', 11317 errorTag = '[object Error]', 11318 funcTag = '[object Function]', 11319 mapTag = '[object Map]', 11320 numberTag = '[object Number]', 11321 objectTag = '[object Object]', 11322 regexpTag = '[object RegExp]', 11323 setTag = '[object Set]', 11324 stringTag = '[object String]', 11325 weakMapTag = '[object WeakMap]'; 11326 11327var arrayBufferTag = '[object ArrayBuffer]', 11328 dataViewTag = '[object DataView]', 11329 float32Tag = '[object Float32Array]', 11330 float64Tag = '[object Float64Array]', 11331 int8Tag = '[object Int8Array]', 11332 int16Tag = '[object Int16Array]', 11333 int32Tag = '[object Int32Array]', 11334 uint8Tag = '[object Uint8Array]', 11335 uint8ClampedTag = '[object Uint8ClampedArray]', 11336 uint16Tag = '[object Uint16Array]', 11337 uint32Tag = '[object Uint32Array]'; 11338 11339/** Used to identify `toStringTag` values of typed arrays. */ 11340var typedArrayTags = {}; 11341typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 11342typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 11343typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 11344typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 11345typedArrayTags[uint32Tag] = true; 11346typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 11347typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] = 11348typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 11349typedArrayTags[errorTag] = typedArrayTags[funcTag] = 11350typedArrayTags[mapTag] = typedArrayTags[numberTag] = 11351typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 11352typedArrayTags[setTag] = typedArrayTags[stringTag] = 11353typedArrayTags[weakMapTag] = false; 11354 11355/** 11356 * The base implementation of `_.isTypedArray` without Node.js optimizations. 11357 * 11358 * @private 11359 * @param {*} value The value to check. 11360 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 11361 */ 11362function baseIsTypedArray(value) { 11363 return isObjectLike(value) && 11364 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 11365} 11366 11367module.exports = baseIsTypedArray; 11368 11369 11370/***/ }), 11371/* 223 */ 11372/***/ (function(module, exports) { 11373 11374/** 11375 * The base implementation of `_.unary` without support for storing metadata. 11376 * 11377 * @private 11378 * @param {Function} func The function to cap arguments for. 11379 * @returns {Function} Returns the new capped function. 11380 */ 11381function baseUnary(func) { 11382 return function(value) { 11383 return func(value); 11384 }; 11385} 11386 11387module.exports = baseUnary; 11388 11389 11390/***/ }), 11391/* 224 */ 11392/***/ (function(module, exports, __webpack_require__) { 11393 11394/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(89); 11395 11396/** Detect free variable `exports`. */ 11397var freeExports = true && exports && !exports.nodeType && exports; 11398 11399/** Detect free variable `module`. */ 11400var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 11401 11402/** Detect the popular CommonJS extension `module.exports`. */ 11403var moduleExports = freeModule && freeModule.exports === freeExports; 11404 11405/** Detect free variable `process` from Node.js. */ 11406var freeProcess = moduleExports && freeGlobal.process; 11407 11408/** Used to access faster Node.js helpers. */ 11409var nodeUtil = (function() { 11410 try { 11411 // Use `util.types` for Node.js 10+. 11412 var types = freeModule && freeModule.require && freeModule.require('util').types; 11413 11414 if (types) { 11415 return types; 11416 } 11417 11418 // Legacy `process.binding('util')` for Node.js < 10. 11419 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 11420 } catch (e) {} 11421}()); 11422 11423module.exports = nodeUtil; 11424 11425/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(97)(module))) 11426 11427/***/ }), 11428/* 225 */ 11429/***/ (function(module, exports, __webpack_require__) { 11430 11431var overArg = __webpack_require__(98); 11432 11433/* Built-in method references for those with the same name as other `lodash` methods. */ 11434var nativeKeys = overArg(Object.keys, Object); 11435 11436module.exports = nativeKeys; 11437 11438 11439/***/ }), 11440/* 226 */ 11441/***/ (function(module, exports, __webpack_require__) { 11442 11443var getNative = __webpack_require__(8), 11444 root = __webpack_require__(5); 11445 11446/* Built-in method references that are verified to be native. */ 11447var DataView = getNative(root, 'DataView'); 11448 11449module.exports = DataView; 11450 11451 11452/***/ }), 11453/* 227 */ 11454/***/ (function(module, exports, __webpack_require__) { 11455 11456var getNative = __webpack_require__(8), 11457 root = __webpack_require__(5); 11458 11459/* Built-in method references that are verified to be native. */ 11460var Promise = getNative(root, 'Promise'); 11461 11462module.exports = Promise; 11463 11464 11465/***/ }), 11466/* 228 */ 11467/***/ (function(module, exports, __webpack_require__) { 11468 11469var getNative = __webpack_require__(8), 11470 root = __webpack_require__(5); 11471 11472/* Built-in method references that are verified to be native. */ 11473var Set = getNative(root, 'Set'); 11474 11475module.exports = Set; 11476 11477 11478/***/ }), 11479/* 229 */ 11480/***/ (function(module, exports, __webpack_require__) { 11481 11482var isStrictComparable = __webpack_require__(100), 11483 keys = __webpack_require__(33); 11484 11485/** 11486 * Gets the property names, values, and compare flags of `object`. 11487 * 11488 * @private 11489 * @param {Object} object The object to query. 11490 * @returns {Array} Returns the match data of `object`. 11491 */ 11492function getMatchData(object) { 11493 var result = keys(object), 11494 length = result.length; 11495 11496 while (length--) { 11497 var key = result[length], 11498 value = object[key]; 11499 11500 result[length] = [key, value, isStrictComparable(value)]; 11501 } 11502 return result; 11503} 11504 11505module.exports = getMatchData; 11506 11507 11508/***/ }), 11509/* 230 */ 11510/***/ (function(module, exports, __webpack_require__) { 11511 11512var baseIsEqual = __webpack_require__(91), 11513 get = __webpack_require__(35), 11514 hasIn = __webpack_require__(236), 11515 isKey = __webpack_require__(58), 11516 isStrictComparable = __webpack_require__(100), 11517 matchesStrictComparable = __webpack_require__(101), 11518 toKey = __webpack_require__(20); 11519 11520/** Used to compose bitmasks for value comparisons. */ 11521var COMPARE_PARTIAL_FLAG = 1, 11522 COMPARE_UNORDERED_FLAG = 2; 11523 11524/** 11525 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 11526 * 11527 * @private 11528 * @param {string} path The path of the property to get. 11529 * @param {*} srcValue The value to match. 11530 * @returns {Function} Returns the new spec function. 11531 */ 11532function baseMatchesProperty(path, srcValue) { 11533 if (isKey(path) && isStrictComparable(srcValue)) { 11534 return matchesStrictComparable(toKey(path), srcValue); 11535 } 11536 return function(object) { 11537 var objValue = get(object, path); 11538 return (objValue === undefined && objValue === srcValue) 11539 ? hasIn(object, path) 11540 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 11541 }; 11542} 11543 11544module.exports = baseMatchesProperty; 11545 11546 11547/***/ }), 11548/* 231 */ 11549/***/ (function(module, exports, __webpack_require__) { 11550 11551var memoizeCapped = __webpack_require__(232); 11552 11553/** Used to match property names within property paths. */ 11554var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 11555 11556/** Used to match backslashes in property paths. */ 11557var reEscapeChar = /\\(\\)?/g; 11558 11559/** 11560 * Converts `string` to a property path array.
vendor: 5,053 bytes, lines 11561-11754
11561 * 11562 * @private 11563 * @param {string} string The string to convert. 11564 * @returns {Array} Returns the property path array. 11565 */ 11566var stringToPath = memoizeCapped(function(string) { 11567 var result = []; 11568 if (string.charCodeAt(0) === 46 /* . */) { 11569 result.push(''); 11570 } 11571 string.replace(rePropName, function(match, number, quote, subString) { 11572 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 11573 }); 11574 return result; 11575}); 11576 11577module.exports = stringToPath; 11578 11579 11580/***/ }), 11581/* 232 */ 11582/***/ (function(module, exports, __webpack_require__) { 11583 11584var memoize = __webpack_require__(233); 11585 11586/** Used as the maximum memoize cache size. */ 11587var MAX_MEMOIZE_SIZE = 500; 11588 11589/** 11590 * A specialized version of `_.memoize` which clears the memoized function's 11591 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 11592 * 11593 * @private 11594 * @param {Function} func The function to have its output memoized. 11595 * @returns {Function} Returns the new memoized function. 11596 */ 11597function memoizeCapped(func) { 11598 var result = memoize(func, function(key) { 11599 if (cache.size === MAX_MEMOIZE_SIZE) { 11600 cache.clear(); 11601 } 11602 return key; 11603 }); 11604 11605 var cache = result.cache; 11606 return result; 11607} 11608 11609module.exports = memoizeCapped; 11610 11611 11612/***/ }), 11613/* 233 */ 11614/***/ (function(module, exports, __webpack_require__) { 11615 11616var MapCache = __webpack_require__(48); 11617 11618/** Error message constants. */ 11619var FUNC_ERROR_TEXT = 'Expected a function'; 11620 11621/** 11622 * Creates a function that memoizes the result of `func`. If `resolver` is 11623 * provided, it determines the cache key for storing the result based on the 11624 * arguments provided to the memoized function. By default, the first argument 11625 * provided to the memoized function is used as the map cache key. The `func` 11626 * is invoked with the `this` binding of the memoized function. 11627 * 11628 * **Note:** The cache is exposed as the `cache` property on the memoized 11629 * function. Its creation may be customized by replacing the `_.memoize.Cache` 11630 * constructor with one whose instances implement the 11631 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 11632 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 11633 * 11634 * @static 11635 * @memberOf _ 11636 * @since 0.1.0 11637 * @category Function 11638 * @param {Function} func The function to have its output memoized. 11639 * @param {Function} [resolver] The function to resolve the cache key. 11640 * @returns {Function} Returns the new memoized function. 11641 * @example 11642 * 11643 * var object = { 'a': 1, 'b': 2 }; 11644 * var other = { 'c': 3, 'd': 4 }; 11645 * 11646 * var values = _.memoize(_.values); 11647 * values(object); 11648 * // => [1, 2] 11649 * 11650 * values(other); 11651 * // => [3, 4] 11652 * 11653 * object.a = 2; 11654 * values(object); 11655 * // => [1, 2] 11656 * 11657 * // Modify the result cache. 11658 * values.cache.set(object, ['a', 'b']); 11659 * values(object); 11660 * // => ['a', 'b'] 11661 * 11662 * // Replace `_.memoize.Cache`. 11663 * _.memoize.Cache = WeakMap; 11664 */ 11665function memoize(func, resolver) { 11666 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 11667 throw new TypeError(FUNC_ERROR_TEXT); 11668 } 11669 var memoized = function() { 11670 var args = arguments, 11671 key = resolver ? resolver.apply(this, args) : args[0], 11672 cache = memoized.cache; 11673 11674 if (cache.has(key)) { 11675 return cache.get(key); 11676 } 11677 var result = func.apply(this, args); 11678 memoized.cache = cache.set(key, result) || cache; 11679 return result; 11680 }; 11681 memoized.cache = new (memoize.Cache || MapCache); 11682 return memoized; 11683} 11684 11685// Expose `MapCache`. 11686memoize.Cache = MapCache; 11687 11688module.exports = memoize; 11689 11690 11691/***/ }), 11692/* 234 */ 11693/***/ (function(module, exports, __webpack_require__) { 11694 11695var baseToString = __webpack_require__(235); 11696 11697/** 11698 * Converts `value` to a string. An empty string is returned for `null` 11699 * and `undefined` values. The sign of `-0` is preserved. 11700 * 11701 * @static 11702 * @memberOf _ 11703 * @since 4.0.0 11704 * @category Lang 11705 * @param {*} value The value to convert. 11706 * @returns {string} Returns the converted string. 11707 * @example 11708 * 11709 * _.toString(null); 11710 * // => '' 11711 * 11712 * _.toString(-0); 11713 * // => '-0' 11714 * 11715 * _.toString([1, 2, 3]); 11716 * // => '1,2,3' 11717 */ 11718function toString(value) { 11719 return value == null ? '' : baseToString(value); 11720} 11721 11722module.exports = toString; 11723 11724 11725/***/ }), 11726/* 235 */ 11727/***/ (function(module, exports, __webpack_require__) { 11728 11729var Symbol = __webpack_require__(19), 11730 arrayMap = __webpack_require__(102), 11731 isArray = __webpack_require__(1), 11732 isSymbol = __webpack_require__(37); 11733 11734/** Used as references for various `Number` constants. */ 11735var INFINITY = 1 / 0; 11736 11737/** Used to convert symbols to primitives and strings. */ 11738var symbolProto = Symbol ? Symbol.prototype : undefined, 11739 symbolToString = symbolProto ? symbolProto.toString : undefined; 11740 11741/** 11742 * The base implementation of `_.toString` which doesn't convert nullish 11743 * values to empty strings. 11744 * 11745 * @private 11746 * @param {*} value The value to process. 11747 * @returns {string} Returns the string. 11748 */ 11749function baseToString(value) { 11750 // Exit early for strings to avoid a performance hit in some environments. 11751 if (typeof value == 'string') { 11752 return value; 11753 } 11754 if (isArray(value)) {
vendor: 2,364 bytes, lines 11755-11852
11755 // Recursively convert values (susceptible to call stack limits). 11756 return arrayMap(value, baseToString) + ''; 11757 } 11758 if (isSymbol(value)) { 11759 return symbolToString ? symbolToString.call(value) : ''; 11760 } 11761 var result = (value + ''); 11762 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 11763} 11764 11765module.exports = baseToString; 11766 11767 11768/***/ }), 11769/* 236 */ 11770/***/ (function(module, exports, __webpack_require__) { 11771 11772var baseHasIn = __webpack_require__(237), 11773 hasPath = __webpack_require__(238); 11774 11775/** 11776 * Checks if `path` is a direct or inherited property of `object`. 11777 * 11778 * @static 11779 * @memberOf _ 11780 * @since 4.0.0 11781 * @category Object 11782 * @param {Object} object The object to query. 11783 * @param {Array|string} path The path to check. 11784 * @returns {boolean} Returns `true` if `path` exists, else `false`. 11785 * @example 11786 * 11787 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 11788 * 11789 * _.hasIn(object, 'a'); 11790 * // => true 11791 * 11792 * _.hasIn(object, 'a.b'); 11793 * // => true 11794 * 11795 * _.hasIn(object, ['a', 'b']); 11796 * // => true 11797 * 11798 * _.hasIn(object, 'b'); 11799 * // => false 11800 */ 11801function hasIn(object, path) { 11802 return object != null && hasPath(object, path, baseHasIn); 11803} 11804 11805module.exports = hasIn; 11806 11807 11808/***/ }), 11809/* 237 */ 11810/***/ (function(module, exports) { 11811 11812/** 11813 * The base implementation of `_.hasIn` without support for deep paths. 11814 * 11815 * @private 11816 * @param {Object} [object] The object to query. 11817 * @param {Array|string} key The key to check. 11818 * @returns {boolean} Returns `true` if `key` exists, else `false`. 11819 */ 11820function baseHasIn(object, key) { 11821 return object != null && key in Object(object); 11822} 11823 11824module.exports = baseHasIn; 11825 11826 11827/***/ }), 11828/* 238 */ 11829/***/ (function(module, exports, __webpack_require__) { 11830 11831var castPath = __webpack_require__(36), 11832 isArguments = __webpack_require__(34), 11833 isArray = __webpack_require__(1), 11834 isIndex = __webpack_require__(51), 11835 isLength = __webpack_require__(53), 11836 toKey = __webpack_require__(20); 11837 11838/** 11839 * Checks if `path` exists on `object`. 11840 * 11841 * @private 11842 * @param {Object} object The object to query. 11843 * @param {Array|string} path The path to check. 11844 * @param {Function} hasFunc The function to check properties. 11845 * @returns {boolean} Returns `true` if `path` exists, else `false`. 11846 */ 11847function hasPath(object, path, hasFunc) { 11848 path = castPath(path, object); 11849 11850 var index = -1, 11851 length = path.length, 11852 result = false;
11853 11854 while (++index < length) { 11855 var key = toKey(path[index]); 11856 if (!(result = object != null && hasFunc(object, key))) { 11857 break; 11858 } 11859 object = object[key]; 11860 } 11861 if (result || ++index != length) { 11862 return result; 11863 } 11864 length = object == null ? 0 : object.length; 11865 return !!length && isLength(length) && isIndex(key, length) && 11866 (isArray(object) || isArguments(object)); 11867} 11868 11869module.exports = hasPath; 11870 11871 11872/***/ }), 11873/* 239 */ 11874/***/ (function(module, exports, __webpack_require__) { 11875 11876var baseProperty = __webpack_require__(103), 11877 basePropertyDeep = __webpack_require__(240), 11878 isKey = __webpack_require__(58), 11879 toKey = __webpack_require__(20); 11880 11881/** 11882 * Creates a function that returns the value at `path` of a given object. 11883 * 11884 * @static 11885 * @memberOf _ 11886 * @since 2.4.0 11887 * @category Util 11888 * @param {Array|string} path The path of the property to get. 11889 * @returns {Function} Returns the new accessor function. 11890 * @example 11891 * 11892 * var objects = [ 11893 * { 'a': { 'b': 2 } }, 11894 * { 'a': { 'b': 1 } } 11895 * ]; 11896 * 11897 * _.map(objects, _.property('a.b')); 11898 * // => [2, 1] 11899 * 11900 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 11901 * // => [1, 2] 11902 */ 11903function property(path) { 11904 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 11905} 11906 11907module.exports = property; 11908 11909 11910/***/ }), 11911/* 240 */ 11912/***/ (function(module, exports, __webpack_require__) { 11913 11914var baseGet = __webpack_require__(57); 11915 11916/** 11917 * A specialized version of `baseProperty` which supports deep paths. 11918 * 11919 * @private 11920 * @param {Array|string} path The path of the property to get. 11921 * @returns {Function} Returns the new accessor function. 11922 */ 11923function basePropertyDeep(path) { 11924 return function(object) { 11925 return baseGet(object, path); 11926 }; 11927} 11928 11929module.exports = basePropertyDeep; 11930 11931 11932/***/ }), 11933/* 241 */ 11934/***/ (function(module, exports, __webpack_require__) { 11935 11936var baseFindIndex = __webpack_require__(104), 11937 baseIteratee = __webpack_require__(7), 11938 toInteger = __webpack_require__(105); 11939 11940/* Built-in method references for those with the same name as other `lodash` methods. */ 11941var nativeMax = Math.max; 11942 11943/** 11944 * This method is like `_.find` except that it returns the index of the first 11945 * element `predicate` returns truthy for instead of the element itself. 11946 * 11947 * @static 11948 * @memberOf _ 11949 * @since 1.1.0 11950 * @category Array 11951 * @param {Array} array The array to inspect. 11952 * @param {Function} [predicate=_.identity] The function invoked per iteration. 11953 * @param {number} [fromIndex=0] The index to search from. 11954 * @returns {number} Returns the index of the found element, else `-1`. 11955 * @example 11956 * 11957 * var users = [ 11958 * { 'user': 'barney', 'active': false }, 11959 * { 'user': 'fred', 'active': false }, 11960 * { 'user': 'pebbles', 'active': true } 11961 * ]; 11962 * 11963 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 11964 * // => 0 11965 * 11966 * // The `_.matches` iteratee shorthand. 11967 * _.findIndex(users, { 'user': 'fred', 'active': false }); 11968 * // => 1 11969 * 11970 * // The `_.matchesProperty` iteratee shorthand. 11971 * _.findIndex(users, ['active', false]); 11972 * // => 0 11973 * 11974 * // The `_.property` iteratee shorthand. 11975 * _.findIndex(users, 'active'); 11976 * // => 2 11977 */ 11978function findIndex(array, predicate, fromIndex) { 11979 var length = array == null ? 0 : array.length; 11980 if (!length) { 11981 return -1; 11982 } 11983 var index = fromIndex == null ? 0 : toInteger(fromIndex); 11984 if (index < 0) { 11985 index = nativeMax(length + index, 0); 11986 } 11987 return baseFindIndex(array, baseIteratee(predicate, 3), index); 11988} 11989 11990module.exports = findIndex; 11991 11992 11993/***/ }), 11994/* 242 */ 11995/***/ (function(module, exports, __webpack_require__) { 11996 11997var toNumber = __webpack_require__(60); 11998 11999/** Used as references for various `Number` constants. */ 12000var INFINITY = 1 / 0, 12001 MAX_INTEGER = 1.7976931348623157e+308; 12002 12003/** 12004 * Converts `value` to a finite number. 12005 * 12006 * @static 12007 * @memberOf _ 12008 * @since 4.12.0 12009 * @category Lang 12010 * @param {*} value The value to convert. 12011 * @returns {number} Returns the converted number. 12012 * @example 12013 * 12014 * _.toFinite(3.2); 12015 * // => 3.2 12016 * 12017 * _.toFinite(Number.MIN_VALUE); 12018 * // => 5e-324 12019 * 12020 * _.toFinite(Infinity); 12021 * // => 1.7976931348623157e+308 12022 * 12023 * _.toFinite('3.2'); 12024 * // => 3.2 12025 */ 12026function toFinite(value) { 12027 if (!value) { 12028 return value === 0 ? value : 0; 12029 } 12030 value = toNumber(value); 12031 if (value === INFINITY || value === -INFINITY) { 12032 var sign = (value < 0 ? -1 : 1); 12033 return sign * MAX_INTEGER; 12034 } 12035 return value === value ? value : 0; 12036} 12037 12038module.exports = toFinite; 12039 12040 12041/***/ }), 12042/* 243 */
12043/***/ (function(module, exports) { 12044 12045function _arrayWithoutHoles(arr) { 12046 if (Array.isArray(arr)) { 12047 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 12048 arr2[i] = arr[i]; 12049 } 12050 12051 return arr2; 12052 } 12053} 12054 12055module.exports = _arrayWithoutHoles; 12056 12057/***/ }), 12058/* 244 */ 12059/***/ (function(module, exports) { 12060 12061function _iterableToArray(iter) { 12062 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 12063} 12064 12065module.exports = _iterableToArray; 12066 12067/***/ }), 12068/* 245 */ 12069/***/ (function(module, exports) { 12070 12071function _nonIterableSpread() { 12072 throw new TypeError("Invalid attempt to spread non-iterable instance"); 12073} 12074 12075module.exports = _nonIterableSpread; 12076 12077/***/ }), 12078/* 246 */ 12079/***/ (function(module, exports, __webpack_require__) { 12080 12081"use strict"; 12082 12083 12084Object.defineProperty(exports, "__esModule", { 12085 value: true 12086}); 12087exports.createElementState = createElementState; 12088exports.mergeActionState = mergeActionState; 12089exports.ixElements = void 0; 12090 12091var _timm = __webpack_require__(18); 12092 12093var _constants = __webpack_require__(2); 12094 12095var _constants$IX2EngineC = _constants.IX2EngineConstants, 12096 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 12097 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 12098 ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, 12099 CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, 12100 CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, 12101 CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, 12102 CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, 12103 CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, 12104 CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, 12105 CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, 12106 CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; 12107var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 12108 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 12109 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 12110 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; 12111var initialState = {}; 12112var refState = 'refState'; 12113 12114var ixElements = function ixElements() { 12115 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 12116 var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12117 12118 switch (action.type) { 12119 case IX2_SESSION_STOPPED: 12120 { 12121 return initialState; 12122 } 12123 12124 case IX2_INSTANCE_ADDED: 12125 { 12126 var _action$payload = action.payload, 12127 elementId = _action$payload.elementId, 12128 ref = _action$payload.element, 12129 origin = _action$payload.origin, 12130 actionItem = _action$payload.actionItem, 12131 refType = _action$payload.refType; 12132 var actionTypeId = actionItem.actionTypeId; 12133 var newState = state; // Create new ref entry if it doesn't exist 12134 12135 if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { 12136 newState = createElementState(newState, ref, refType, elementId, actionItem); 12137 } // Merge origin values into ref state 12138 12139 12140 return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); 12141 } 12142 12143 case IX2_ELEMENT_STATE_CHANGED: 12144 { 12145 var _action$payload2 = action.payload, 12146 _elementId = _action$payload2.elementId, 12147 _actionTypeId = _action$payload2.actionTypeId, 12148 current = _action$payload2.current, 12149 _actionItem = _action$payload2.actionItem; 12150 return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); 12151 } 12152 12153 default: 12154 { 12155 return state; 12156 } 12157 } 12158}; 12159 12160exports.ixElements = ixElements; 12161 12162function createElementState(state, ref, refType, elementId, actionItem) { 12163 var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; 12164 return (0, _timm.mergeIn)(state, [elementId], { 12165 id: elementId, 12166 ref: ref, 12167 refId: refId, 12168 refType: refType 12169 }); 12170} 12171 12172function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used 12173actionItem) { 12174 var units = pickUnits(actionItem); 12175 var mergePath = [elementId, refState, actionTypeId]; 12176 return (0, _timm.mergeIn)(state, mergePath, actionState, units); 12177} 12178 12179var 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 12180// eslint-disable-next-line flowtype/no-weak-types 12181 12182function pickUnits(actionItem) { 12183 var config = actionItem.config; 12184 return valueUnitPairs.reduce(function (result, pair) { 12185 var valueKey = pair[0]; 12186 var unitKey = pair[1]; 12187 var configValue = config[valueKey]; 12188 var configUnit = config[unitKey]; 12189 12190 if (configValue != null && configUnit != null) { 12191 result[unitKey] = configUnit; 12192 } 12193 12194 return result; 12195 }, {}); 12196} 12197 12198/***/ }), 12199/* 247 */ 12200/***/ (function(module, exports, __webpack_require__) { 12201 12202"use strict"; 12203 12204 12205Object.defineProperty(exports, "__esModule", { 12206 value: true 12207}); 12208exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; 12209/* eslint-env browser */ 12210// $FlowFixMe 12211 12212var getPluginConfig = function getPluginConfig(actionItemConfig) { 12213 return actionItemConfig.value; 12214}; // $FlowFixMe 12215 12216 12217exports.getPluginConfig = getPluginConfig; 12218 12219var getPluginDuration = function getPluginDuration(element, actionItem) { 12220 if (actionItem.config.duration !== 'auto') { 12221 return null; 12222 } 12223 12224 var duration = parseFloat(element.getAttribute('data-duration')); 12225 12226 if (duration > 0) { 12227 return duration * 1000; 12228 } 12229 12230 return parseFloat(element.getAttribute('data-default-duration')) * 1000; 12231}; // $FlowFixMe 12232 12233 12234exports.getPluginDuration = getPluginDuration; 12235 12236var getPluginOrigin = function getPluginOrigin(refState) { 12237 return refState || { 12238 value: 0 12239 }; 12240}; // $FlowFixMe 12241 12242 12243exports.getPluginOrigin = getPluginOrigin; 12244 12245var getPluginDestination = function getPluginDestination(actionItemConfig) { 12246 return { 12247 value: actionItemConfig.value 12248 }; 12249}; // $FlowFixMe 12250 12251 12252exports.getPluginDestination = getPluginDestination; 12253 12254var createPluginInstance = function createPluginInstance(element) { 12255 var instance = window.Webflow.require('lottie').createInstance(element); 12256 12257 instance.stop(); 12258 instance.setSubframe(true); 12259 return instance; 12260}; // $FlowFixMe 12261 12262 12263exports.createPluginInstance = createPluginInstance; 12264 12265var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { 12266 if (!pluginInstance) { 12267 return; 12268 } 12269 12270 var percent = refState[actionItem.actionTypeId].value / 100; 12271 pluginInstance.goToFrame(pluginInstance.frames * percent); 12272}; // $FlowFixMe 12273 12274 12275exports.renderPlugin = renderPlugin; 12276 12277var clearPlugin = function clearPlugin(element) { 12278 var instance = window.Webflow.require('lottie').createInstance(element); 12279 12280 instance.stop(); 12281}; 12282 12283exports.clearPlugin = clearPlugin; 12284 12285/***/ }), 12286/* 248 */ 12287/***/ (function(module, exports, __webpack_require__) { 12288 12289"use strict"; 12290 12291 12292var _interopRequireDefault2 = __webpack_require__(0); 12293 12294var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); 12295 12296var _defineProperty2 = _interopRequireDefault2(__webpack_require__(27)); 12297
12298var _Object$freeze, _Object$freeze2, _transformDefaults; 12299 12300var _interopRequireDefault = __webpack_require__(0); 12301 12302Object.defineProperty(exports, "__esModule", { 12303 value: true 12304}); 12305exports.getInstanceId = getInstanceId; 12306exports.getElementId = getElementId; 12307exports.reifyState = reifyState; 12308exports.observeStore = observeStore; 12309exports.getAffectedElements = getAffectedElements; 12310exports.getComputedStyle = getComputedStyle; 12311exports.getInstanceOrigin = getInstanceOrigin; 12312exports.getDestinationValues = getDestinationValues; 12313exports.getRenderType = getRenderType; 12314exports.getStyleProp = getStyleProp; 12315exports.renderHTMLElement = renderHTMLElement; 12316exports.clearAllStyles = clearAllStyles; 12317exports.cleanupHTMLElement = cleanupHTMLElement; 12318exports.getMaxDurationItemIndex = getMaxDurationItemIndex; 12319exports.getActionListProgress = getActionListProgress; 12320exports.reduceListToGroup = reduceListToGroup; 12321exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; 12322exports.getNamespacedParameterId = getNamespacedParameterId; 12323exports.shouldAllowMediaQuery = shouldAllowMediaQuery; 12324exports.mediaQueriesEqual = mediaQueriesEqual; 12325exports.stringifyTarget = stringifyTarget; 12326exports.getItemConfigByKey = void 0; 12327 12328var _defaultTo = _interopRequireDefault(__webpack_require__(249)); 12329 12330var _reduce = _interopRequireDefault(__webpack_require__(250)); 12331 12332var _findLast = _interopRequireDefault(__webpack_require__(256)); 12333 12334var _get = _interopRequireDefault(__webpack_require__(35)); 12335 12336var _timm = __webpack_require__(18); 12337 12338var _shallowEqual = _interopRequireDefault(__webpack_require__(113)); 12339 12340var _constants = __webpack_require__(2); 12341 12342var _IX2EasingUtils = __webpack_require__(108); 12343 12344var _IX2VanillaPlugins = __webpack_require__(110); 12345 12346var _IX2BrowserSupport = __webpack_require__(45); 12347/* eslint-env browser */ 12348 12349 12350var _constants$IX2EngineC = _constants.IX2EngineConstants, 12351 BACKGROUND = _constants$IX2EngineC.BACKGROUND, 12352 TRANSFORM = _constants$IX2EngineC.TRANSFORM, 12353 TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, 12354 SCALE_3D = _constants$IX2EngineC.SCALE_3D, 12355 ROTATE_X = _constants$IX2EngineC.ROTATE_X, 12356 ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, 12357 ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, 12358 SKEW = _constants$IX2EngineC.SKEW, 12359 PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, 12360 FLEX = _constants$IX2EngineC.FLEX, 12361 OPACITY = _constants$IX2EngineC.OPACITY, 12362 FILTER = _constants$IX2EngineC.FILTER, 12363 WIDTH = _constants$IX2EngineC.WIDTH, 12364 HEIGHT = _constants$IX2EngineC.HEIGHT, 12365 BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, 12366 BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, 12367 COLOR = _constants$IX2EngineC.COLOR, 12368 CHILDREN = _constants$IX2EngineC.CHILDREN, 12369 IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, 12370 SIBLINGS = _constants$IX2EngineC.SIBLINGS, 12371 PARENT = _constants$IX2EngineC.PARENT, 12372 DISPLAY = _constants$IX2EngineC.DISPLAY, 12373 WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, 12374 AUTO = _constants$IX2EngineC.AUTO, 12375 COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, 12376 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 12377 BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, 12378 RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, 12379 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 12380 RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, 12381 RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; 12382var _constants$ActionType = _constants.ActionTypeConsts, 12383 TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, 12384 TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, 12385 TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, 12386 TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, 12387 STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, 12388 STYLE_FILTER = _constants$ActionType.STYLE_FILTER, 12389 STYLE_SIZE = _constants$ActionType.STYLE_SIZE,
12390 STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, 12391 STYLE_BORDER = _constants$ActionType.STYLE_BORDER, 12392 STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, 12393 GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; 12394var OBJECT_VALUE = 'OBJECT_VALUE'; 12395 12396var trim = function trim(v) { 12397 return v.trim(); 12398}; 12399 12400var 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)); 12401var willChangeProps = Object.freeze((_Object$freeze2 = {}, (0, _defineProperty2["default"])(_Object$freeze2, _IX2BrowserSupport.TRANSFORM_PREFIXED, TRANSFORM), (0, _defineProperty2["default"])(_Object$freeze2, BACKGROUND_COLOR, BACKGROUND), (0, _defineProperty2["default"])(_Object$freeze2, OPACITY, OPACITY), (0, _defineProperty2["default"])(_Object$freeze2, FILTER, FILTER), (0, _defineProperty2["default"])(_Object$freeze2, WIDTH, WIDTH), (0, _defineProperty2["default"])(_Object$freeze2, HEIGHT, HEIGHT), _Object$freeze2)); 12402var objectCache = {}; 12403var instanceCount = 1; 12404 12405function getInstanceId() { 12406 return 'i' + instanceCount++; 12407} 12408 12409var elementCount = 1; // $FlowFixMe 12410 12411function getElementId(ixElements, ref) { 12412 // TODO: optimize element lookup 12413 for (var key in ixElements) { 12414 var ixEl = ixElements[key]; 12415 12416 if (ixEl && ixEl.ref === ref) { 12417 return ixEl.id; 12418 } 12419 } 12420 12421 return 'e' + elementCount++; 12422} // $FlowFixMe 12423 12424 12425function reifyState() { 12426 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 12427 events = _ref.events, 12428 actionLists = _ref.actionLists, 12429 site = _ref.site; 12430 12431 var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { 12432 var eventTypeId = event.eventTypeId; 12433 12434 if (!result[eventTypeId]) { 12435 result[eventTypeId] = {}; 12436 } 12437 12438 result[eventTypeId][event.id] = event; 12439 return result; 12440 }, {}); 12441 var mediaQueries = site && site.mediaQueries; 12442 var mediaQueryKeys = []; 12443 12444 if (mediaQueries) { 12445 mediaQueryKeys = mediaQueries.map(function (mq) { 12446 return mq.key; 12447 }); 12448 } else { 12449 mediaQueries = []; 12450 console.warn("IX2 missing mediaQueries in site data"); 12451 } 12452 12453 return { 12454 ixData: { 12455 events: events, 12456 actionLists: actionLists, 12457 eventTypeMap: eventTypeMap, 12458 mediaQueries: mediaQueries, 12459 mediaQueryKeys: mediaQueryKeys 12460 } 12461 }; 12462} 12463 12464var strictEqual = function strictEqual(a, b) { 12465 return a === b; 12466}; // $FlowFixMe 12467 12468 12469function observeStore(_ref2) { 12470 var store = _ref2.store, 12471 select = _ref2.select, 12472 onChange = _ref2.onChange, 12473 _ref2$comparator = _ref2.comparator, 12474 comparator = _ref2$comparator === void 0 ? strictEqual : _ref2$comparator; 12475 var getState = store.getState, 12476 subscribe = store.subscribe; 12477 var unsubscribe = subscribe(handleChange); 12478 var currentState = select(getState()); 12479 12480 function handleChange() { 12481 var nextState = select(getState()); 12482 12483 if (nextState == null) { 12484 unsubscribe(); 12485 return; 12486 } 12487 12488 if (!comparator(nextState, currentState)) { 12489 currentState = nextState; 12490 onChange(currentState, store); 12491 } 12492 } 12493 12494 return unsubscribe; 12495} 12496 12497function normalizeTarget(target) { 12498 var type = (0, _typeof2["default"])(target); 12499 12500 if (type === 'string') { 12501 return { 12502 id: target 12503 }; 12504 } else if (target != null && type === 'object') { 12505 var id = target.id, 12506 objectId = target.objectId, 12507 selector = target.selector, 12508 selectorGuids = target.selectorGuids, 12509 appliesTo = target.appliesTo, 12510 useEventTarget = target.useEventTarget; 12511 return { 12512 id: id, 12513 objectId: objectId, 12514 selector: selector, 12515 selectorGuids: selectorGuids, 12516 appliesTo: appliesTo, 12517 useEventTarget: useEventTarget 12518 }; 12519 } 12520 12521 return {}; 12522} // $FlowFixMe 12523 12524 12525function getAffectedElements(_ref3) { 12526 var config = _ref3.config, 12527 event = _ref3.event, 12528 eventTarget = _ref3.eventTarget, 12529 elementRoot = _ref3.elementRoot, 12530 elementApi = _ref3.elementApi; 12531 12532 if (!elementApi) { 12533 throw new Error('IX2 missing elementApi'); 12534 } 12535 12536 var getValidDocument = elementApi.getValidDocument, 12537 getQuerySelector = elementApi.getQuerySelector, 12538 queryDocument = elementApi.queryDocument, 12539 getChildElements = elementApi.getChildElements,
12540 getSiblingElements = elementApi.getSiblingElements, 12541 matchSelector = elementApi.matchSelector, 12542 elementContains = elementApi.elementContains, 12543 isSiblingNode = elementApi.isSiblingNode; 12544 var target = config.target; 12545 12546 if (!target) { 12547 return []; 12548 } 12549 12550 var _normalizeTarget = normalizeTarget(target), 12551 id = _normalizeTarget.id, 12552 objectId = _normalizeTarget.objectId, 12553 selector = _normalizeTarget.selector, 12554 selectorGuids = _normalizeTarget.selectorGuids, 12555 appliesTo = _normalizeTarget.appliesTo, 12556 useEventTarget = _normalizeTarget.useEventTarget; 12557 12558 if (objectId) { 12559 var ref = objectCache[objectId] || (objectCache[objectId] = {}); 12560 return [ref]; 12561 } 12562 12563 if (appliesTo === _constants.EventAppliesTo.PAGE) { 12564 var doc = getValidDocument(id); 12565 return doc ? [doc] : []; 12566 } 12567 12568 var overrides = (0, _get["default"])(event, 'action.config.affectedElements', {}); 12569 var override = overrides[id || selector] || {}; 12570 var validOverride = Boolean(override.id || override.selector); 12571 var limitAffectedElements; 12572 var baseSelector; 12573 var finalSelector; 12574 var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); 12575 12576 if (validOverride) { 12577 limitAffectedElements = override.limitAffectedElements; 12578 baseSelector = eventTargetSelector; 12579 finalSelector = getQuerySelector(override); 12580 } else { 12581 // pass in selectorGuids as well for server-side rendering. 12582 baseSelector = finalSelector = getQuerySelector({ 12583 id: id, 12584 selector: selector, 12585 selectorGuids: selectorGuids 12586 }); 12587 } 12588 12589 if (event && useEventTarget) { 12590 // eventTarget is not defined when this function is called in a clear request, so find 12591 // all target elements associated with the event data, and return affected elements. 12592 var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); 12593 12594 if (finalSelector) { 12595 if (useEventTarget === PARENT) { 12596 return queryDocument(finalSelector).filter(function (parentElement) { 12597 return eventTargets.some(function (targetElement) { 12598 return elementContains(parentElement, targetElement); 12599 }); 12600 }); 12601 } 12602 12603 if (useEventTarget === CHILDREN) { 12604 return queryDocument(finalSelector).filter(function (childElement) { 12605 return eventTargets.some(function (targetElement) { 12606 return elementContains(targetElement, childElement); 12607 }); 12608 }); 12609 } 12610 12611 if (useEventTarget === SIBLINGS) { 12612 return queryDocument(finalSelector).filter(function (siblingElement) { 12613 return eventTargets.some(function (targetElement) { 12614 return isSiblingNode(targetElement, siblingElement); 12615 }); 12616 }); 12617 } 12618 } 12619 12620 return eventTargets; 12621 } 12622 12623 if (baseSelector == null || finalSelector == null) { 12624 return []; 12625 } 12626 12627 if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { 12628 return queryDocument(finalSelector).filter(function (element) { 12629 return elementRoot.contains(element); 12630 }); 12631 } 12632 12633 if (limitAffectedElements === CHILDREN) { 12634 return queryDocument(baseSelector, finalSelector); 12635 } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { 12636 return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 12637 } else if (limitAffectedElements === SIBLINGS) { 12638 return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 12639 } else { 12640 return queryDocument(finalSelector); 12641 } 12642} // $FlowFixMe 12643 12644 12645function getComputedStyle(_ref4) { 12646 var element = _ref4.element, 12647 actionItem = _ref4.actionItem; 12648 12649 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 12650 return {}; 12651 } 12652 12653 var actionTypeId = actionItem.actionTypeId; 12654 12655 switch (actionTypeId) { 12656 case STYLE_SIZE: 12657 case STYLE_BACKGROUND_COLOR: 12658 case STYLE_BORDER: 12659 case STYLE_TEXT_COLOR: 12660 case GENERAL_DISPLAY: 12661 return window.getComputedStyle(element); 12662 12663 default: 12664 return {}; 12665 } 12666} 12667 12668var pxValueRegex = /px/; 12669 12670var getFilterDefaults = function getFilterDefaults(actionState, filters) { 12671 return filters.reduce(function (result, filter) { 12672 if (result[filter.type] == null) { 12673 result[filter.type] = filterDefaults[filter.type]; 12674 } 12675 12676 return result; 12677 }, actionState || {}); 12678}; 12679 12680function getInstanceOrigin( // $FlowFixMe 12681element) { 12682 var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12683 var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 12684 var // $FlowFixMe 12685 actionItem = arguments.length > 3 ? arguments[3] : undefined; 12686 var // $FlowFixMe 12687 elementApi = arguments.length > 4 ? arguments[4] : undefined;
12688 var getStyle = elementApi.getStyle; 12689 var actionTypeId = actionItem.actionTypeId, 12690 config = actionItem.config; 12691 12692 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12693 // $FlowFixMe 12694 return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); 12695 } 12696 12697 switch (actionTypeId) { 12698 case TRANSFORM_MOVE: 12699 case TRANSFORM_SCALE: 12700 case TRANSFORM_ROTATE: 12701 case TRANSFORM_SKEW: 12702 return refState[actionTypeId] || transformDefaults[actionTypeId]; 12703 12704 case STYLE_FILTER: 12705 return getFilterDefaults(refState[actionTypeId], actionItem.config.filters); 12706 12707 case STYLE_OPACITY: 12708 return { 12709 value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) 12710 }; 12711 12712 case STYLE_SIZE: 12713 { 12714 var inlineWidth = getStyle(element, WIDTH); 12715 var inlineHeight = getStyle(element, HEIGHT); 12716 var widthValue; 12717 var heightValue; // When destination unit is 'AUTO', ensure origin values are in px 12718 12719 if (config.widthUnit === AUTO) { 12720 widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); 12721 } else { 12722 widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); 12723 } 12724 12725 if (config.heightUnit === AUTO) { 12726 heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); 12727 } else { 12728 heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); 12729 } 12730 12731 return { 12732 widthValue: widthValue, 12733 heightValue: heightValue 12734 }; 12735 } 12736 12737 case STYLE_BACKGROUND_COLOR: 12738 case STYLE_BORDER: 12739 case STYLE_TEXT_COLOR: 12740 return parseColor({ 12741 element: element, 12742 actionTypeId: actionTypeId, 12743 computedStyle: computedStyle, 12744 getStyle: getStyle 12745 }); 12746 12747 case GENERAL_DISPLAY: 12748 return { 12749 value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) 12750 }; 12751 12752 case OBJECT_VALUE: 12753 return refState[actionTypeId] || { 12754 value: 0 12755 }; 12756 12757 default: 12758 return; 12759 } 12760} 12761 12762var reduceFilters = function reduceFilters(result, filter) { 12763 if (filter) { 12764 result[filter.type] = filter.value || 0; 12765 } 12766 12767 return result; 12768}; // $FlowFixMe 12769 12770 12771var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { 12772 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12773 // $FlowFixMe 12774 return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); 12775 } 12776 12777 switch (actionTypeId) { 12778 case STYLE_FILTER: 12779 { 12780 var filter = (0, _findLast["default"])(config.filters, function (_ref5) { 12781 var type = _ref5.type; 12782 return type === key; 12783 }); 12784 return filter ? filter.value : 0; 12785 } 12786 12787 default: 12788 return config[key]; 12789 } 12790}; // $FlowFixMe 12791 12792 12793exports.getItemConfigByKey = getItemConfigByKey; 12794 12795function getDestinationValues(_ref6) { 12796 var element = _ref6.element, 12797 actionItem = _ref6.actionItem, 12798 elementApi = _ref6.elementApi; 12799 var actionTypeId = actionItem.actionTypeId; 12800 12801 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12802 // $FlowFixMe 12803 return (0, _IX2VanillaPlugins.getPluginDestination)(actionTypeId)(actionItem.config); 12804 } 12805 12806 switch (actionTypeId) { 12807 case TRANSFORM_MOVE: 12808 case TRANSFORM_SCALE: 12809 case TRANSFORM_ROTATE: 12810 case TRANSFORM_SKEW: 12811 { 12812 var _actionItem$config = actionItem.config, 12813 xValue = _actionItem$config.xValue, 12814 yValue = _actionItem$config.yValue, 12815 zValue = _actionItem$config.zValue; 12816 return { 12817 xValue: xValue, 12818 yValue: yValue, 12819 zValue: zValue 12820 }; 12821 } 12822 12823 case STYLE_SIZE: 12824 {
12825 var getStyle = elementApi.getStyle, 12826 setStyle = elementApi.setStyle, 12827 getProperty = elementApi.getProperty; 12828 var _actionItem$config2 = actionItem.config, 12829 widthUnit = _actionItem$config2.widthUnit, 12830 heightUnit = _actionItem$config2.heightUnit; 12831 var _actionItem$config3 = actionItem.config, 12832 widthValue = _actionItem$config3.widthValue, 12833 heightValue = _actionItem$config3.heightValue; 12834 12835 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 12836 return { 12837 widthValue: widthValue, 12838 heightValue: heightValue 12839 }; 12840 } 12841 12842 if (widthUnit === AUTO) { 12843 var temp = getStyle(element, WIDTH); 12844 setStyle(element, WIDTH, ''); 12845 widthValue = getProperty(element, 'offsetWidth'); 12846 setStyle(element, WIDTH, temp); 12847 } 12848 12849 if (heightUnit === AUTO) { 12850 var _temp = getStyle(element, HEIGHT); 12851 12852 setStyle(element, HEIGHT, ''); 12853 heightValue = getProperty(element, 'offsetHeight'); 12854 setStyle(element, HEIGHT, _temp); 12855 } 12856 12857 return { 12858 widthValue: widthValue, 12859 heightValue: heightValue 12860 }; 12861 } 12862 12863 case STYLE_BACKGROUND_COLOR: 12864 case STYLE_BORDER: 12865 case STYLE_TEXT_COLOR: 12866 { 12867 var _actionItem$config4 = actionItem.config, 12868 rValue = _actionItem$config4.rValue, 12869 gValue = _actionItem$config4.gValue, 12870 bValue = _actionItem$config4.bValue, 12871 aValue = _actionItem$config4.aValue; 12872 return { 12873 rValue: rValue, 12874 gValue: gValue, 12875 bValue: bValue, 12876 aValue: aValue 12877 }; 12878 } 12879 12880 case STYLE_FILTER: 12881 { 12882 return actionItem.config.filters.reduce(reduceFilters, {}); 12883 } 12884 12885 default: 12886 { 12887 var value = actionItem.config.value; 12888 return { 12889 value: value 12890 }; 12891 } 12892 } 12893} // $FlowFixMe 12894 12895 12896function getRenderType(actionTypeId) { 12897 if (/^TRANSFORM_/.test(actionTypeId)) { 12898 return RENDER_TRANSFORM; 12899 } 12900 12901 if (/^STYLE_/.test(actionTypeId)) { 12902 return RENDER_STYLE; 12903 } 12904 12905 if (/^GENERAL_/.test(actionTypeId)) { 12906 return RENDER_GENERAL; 12907 } 12908 12909 if (/^PLUGIN_/.test(actionTypeId)) { 12910 return RENDER_PLUGIN; 12911 } 12912} // $FlowFixMe 12913 12914 12915function getStyleProp(renderType, actionTypeId) { 12916 return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; 12917} 12918 12919function renderHTMLElement( // $FlowFixMe 12920element, // $FlowFixMe 12921refState, // $FlowFixMe 12922actionState, // $FlowFixMe 12923eventId, // $FlowFixMe 12924actionItem, // $FlowFixMe 12925styleProp, // $FlowFixMe 12926elementApi, // $FlowFixMe 12927renderType, // $FlowFixMe 12928pluginInstance) { 12929 switch (renderType) { 12930 case RENDER_TRANSFORM: 12931 { 12932 return renderTransform(element, refState, actionState, actionItem, elementApi); 12933 } 12934 12935 case RENDER_STYLE: 12936 { 12937 return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); 12938 } 12939 12940 case RENDER_GENERAL: 12941 { 12942 return renderGeneral(element, actionItem, elementApi); 12943 } 12944 12945 case RENDER_PLUGIN: 12946 { 12947 var actionTypeId = actionItem.actionTypeId; 12948 12949 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 12950 // $FlowFixMe 12951 return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); 12952 } 12953 } 12954 } 12955} 12956 12957var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ 12958 xValue: 0, 12959 yValue: 0, 12960 zValue: 0 12961})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ 12962 xValue: 1, 12963 yValue: 1, 12964 zValue: 1 12965})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ 12966 xValue: 0, 12967 yValue: 0, 12968 zValue: 0 12969})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ 12970 xValue: 0, 12971 yValue: 0 12972})), _transformDefaults); 12973var filterDefaults = Object.freeze({ 12974 blur: 0, 12975 'hue-rotate': 0, 12976 invert: 0, 12977 grayscale: 0, 12978 saturate: 100, 12979 sepia: 0, 12980 contrast: 100, 12981 brightness: 100 12982}); 12983 12984var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { 12985 var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref7) { 12986 var type = _ref7.type; 12987 return type === filterType; 12988 }); 12989 12990 if (filter && filter.unit) { 12991 return filter.unit; 12992 } 12993 12994 switch (filterType) { 12995 case 'blur': 12996 return 'px'; 12997 12998 case 'hue-rotate': 12999 return 'deg'; 13000 13001 default: 13002 return '%'; 13003 } 13004}; 13005 13006var transformKeys = Object.keys(transformDefaults); 13007 13008function renderTransform(element, refState, actionState, actionItem, elementApi) { 13009 var newTransform = transformKeys.map(function (actionTypeId) { 13010 var defaults = transformDefaults[actionTypeId]; 13011 13012 var _ref8 = refState[actionTypeId] || {}, 13013 _ref8$xValue = _ref8.xValue, 13014 xValue = _ref8$xValue === void 0 ? defaults.xValue : _ref8$xValue, 13015 _ref8$yValue = _ref8.yValue, 13016 yValue = _ref8$yValue === void 0 ? defaults.yValue : _ref8$yValue, 13017 _ref8$zValue = _ref8.zValue, 13018 zValue = _ref8$zValue === void 0 ? defaults.zValue : _ref8$zValue, 13019 _ref8$xUnit = _ref8.xUnit, 13020 xUnit = _ref8$xUnit === void 0 ? '' : _ref8$xUnit, 13021 _ref8$yUnit = _ref8.yUnit, 13022 yUnit = _ref8$yUnit === void 0 ? '' : _ref8$yUnit, 13023 _ref8$zUnit = _ref8.zUnit, 13024 zUnit = _ref8$zUnit === void 0 ? '' : _ref8$zUnit; 13025 13026 switch (actionTypeId) { 13027 case TRANSFORM_MOVE: 13028 return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13029 13030 case TRANSFORM_SCALE:
13031 return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13032 13033 case TRANSFORM_ROTATE: 13034 return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); 13035 13036 case TRANSFORM_SKEW: 13037 return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); 13038 13039 default: 13040 return ''; 13041 } 13042 }).join(' '); 13043 var setStyle = elementApi.setStyle; 13044 addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13045 setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d 13046 13047 if (hasDefined3dTransform(actionItem, actionState)) { 13048 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); 13049 } 13050} 13051 13052function renderFilter(element, actionState, actionItemConfig, elementApi) { 13053 var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { 13054 return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); 13055 }, ''); 13056 var setStyle = elementApi.setStyle; 13057 addWillChange(element, FILTER, elementApi); 13058 setStyle(element, FILTER, filterValue); 13059} 13060 13061function hasDefined3dTransform(_ref9, _ref10) { 13062 var actionTypeId = _ref9.actionTypeId; 13063 var xValue = _ref10.xValue, 13064 yValue = _ref10.yValue, 13065 zValue = _ref10.zValue; 13066 // TRANSLATE_Z 13067 return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z 13068 actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y 13069 actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); 13070} 13071 13072var paramCapture = '\\(([^)]+)\\)'; 13073var rgbValidRegex = /^rgb/; 13074var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); 13075 13076function getFirstMatch(regex, value) { 13077 var match = regex.exec(value); 13078 return match ? match[1] : ''; 13079} 13080 13081function parseColor(_ref11) { 13082 var element = _ref11.element, 13083 actionTypeId = _ref11.actionTypeId, 13084 computedStyle = _ref11.computedStyle, 13085 getStyle = _ref11.getStyle; 13086 var prop = colorStyleProps[actionTypeId]; 13087 var inlineValue = getStyle(element, prop); 13088 var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; 13089 var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); 13090 return { 13091 rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), 13092 gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), 13093 bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), 13094 aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) 13095 }; 13096} 13097
13098function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { 13099 var setStyle = elementApi.setStyle; 13100 var actionTypeId = actionItem.actionTypeId, 13101 config = actionItem.config; 13102 13103 switch (actionTypeId) { 13104 case STYLE_SIZE: 13105 { 13106 var _actionItem$config5 = actionItem.config, 13107 _actionItem$config5$w = _actionItem$config5.widthUnit, 13108 widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, 13109 _actionItem$config5$h = _actionItem$config5.heightUnit, 13110 heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; 13111 var widthValue = actionState.widthValue, 13112 heightValue = actionState.heightValue; 13113 13114 if (widthValue !== undefined) { 13115 if (widthUnit === AUTO) { 13116 widthUnit = 'px'; 13117 } 13118 13119 addWillChange(element, WIDTH, elementApi); 13120 setStyle(element, WIDTH, widthValue + widthUnit); 13121 } 13122 13123 if (heightValue !== undefined) { 13124 if (heightUnit === AUTO) { 13125 heightUnit = 'px'; 13126 } 13127 13128 addWillChange(element, HEIGHT, elementApi); 13129 setStyle(element, HEIGHT, heightValue + heightUnit); 13130 } 13131 13132 break; 13133 } 13134 13135 case STYLE_FILTER: 13136 { 13137 renderFilter(element, actionState, config, elementApi); 13138 break; 13139 } 13140 13141 case STYLE_BACKGROUND_COLOR: 13142 case STYLE_BORDER: 13143 case STYLE_TEXT_COLOR: 13144 { 13145 var prop = colorStyleProps[actionTypeId]; 13146 var rValue = Math.round(actionState.rValue); 13147 var gValue = Math.round(actionState.gValue); 13148 var bValue = Math.round(actionState.bValue); 13149 var aValue = actionState.aValue; 13150 addWillChange(element, prop, elementApi); 13151 setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); 13152 break; 13153 } 13154 13155 default: 13156 { 13157 var _config$unit = config.unit, 13158 unit = _config$unit === void 0 ? '' : _config$unit; 13159 addWillChange(element, styleProp, elementApi); 13160 setStyle(element, styleProp, actionState.value + unit); 13161 break; 13162 } 13163 } 13164} 13165 13166function renderGeneral(element, actionItem, elementApi) { 13167 var setStyle = elementApi.setStyle; 13168 13169 switch (actionItem.actionTypeId) { 13170 case GENERAL_DISPLAY: 13171 { 13172 var value = actionItem.config.value; 13173 13174 if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { 13175 setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); 13176 } else { 13177 setStyle(element, DISPLAY, value); 13178 } 13179 13180 return; 13181 } 13182 } 13183} 13184 13185function addWillChange(element, prop, elementApi) { 13186 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13187 return; 13188 } // $FlowFixMe 13189 13190
13191 var validProp = willChangeProps[prop]; 13192 13193 if (!validProp) { 13194 return; 13195 } 13196 13197 var getStyle = elementApi.getStyle, 13198 setStyle = elementApi.setStyle; 13199 var value = getStyle(element, WILL_CHANGE); 13200 13201 if (!value) { 13202 setStyle(element, WILL_CHANGE, validProp); 13203 return; 13204 } 13205 13206 var values = value.split(COMMA_DELIMITER).map(trim); 13207 13208 if (values.indexOf(validProp) === -1) { 13209 setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); 13210 } 13211} 13212 13213function removeWillChange(element, prop, elementApi) { 13214 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13215 return; 13216 } // $FlowFixMe 13217 13218 13219 var validProp = willChangeProps[prop]; 13220 13221 if (!validProp) { 13222 return; 13223 } 13224 13225 var getStyle = elementApi.getStyle, 13226 setStyle = elementApi.setStyle; 13227 var value = getStyle(element, WILL_CHANGE); 13228 13229 if (!value || value.indexOf(validProp) === -1) { 13230 return; 13231 } 13232 13233 setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { 13234 return v !== validProp; 13235 }).join(COMMA_DELIMITER)); 13236} // $FlowFixMe 13237 13238 13239function clearAllStyles(_ref12) { 13240 var store = _ref12.store, 13241 elementApi = _ref12.elementApi; 13242 13243 var _store$getState = store.getState(), 13244 ixData = _store$getState.ixData; 13245 13246 var _ixData$events = ixData.events, 13247 events = _ixData$events === void 0 ? {} : _ixData$events, 13248 _ixData$actionLists = ixData.actionLists, 13249 actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; 13250 Object.keys(events).forEach(function (eventId) { 13251 var event = events[eventId]; 13252 var config = event.action.config; 13253 var actionListId = config.actionListId; 13254 var actionList = actionLists[actionListId]; 13255 13256 if (actionList) { 13257 clearActionListStyles({ 13258 actionList: actionList, 13259 event: event, 13260 elementApi: elementApi 13261 }); 13262 } 13263 }); 13264 Object.keys(actionLists).forEach(function (actionListId) { 13265 clearActionListStyles({ 13266 actionList: actionLists[actionListId], 13267 elementApi: elementApi 13268 }); 13269 }); 13270} // $FlowFixMe 13271 13272 13273function clearActionListStyles(_ref13) { 13274 var _ref13$actionList = _ref13.actionList, 13275 actionList = _ref13$actionList === void 0 ? {} : _ref13$actionList, 13276 event = _ref13.event, 13277 elementApi = _ref13.elementApi; 13278 var actionItemGroups = actionList.actionItemGroups, 13279 continuousParameterGroups = actionList.continuousParameterGroups; 13280 actionItemGroups && actionItemGroups.forEach(function (actionGroup) { 13281 clearActionGroupStyles({ 13282 actionGroup: actionGroup, 13283 event: event, 13284 elementApi: elementApi 13285 }); 13286 }); 13287 continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { 13288 var continuousActionGroups = paramGroup.continuousActionGroups; 13289 continuousActionGroups.forEach(function (actionGroup) { 13290 clearActionGroupStyles({ 13291 actionGroup: actionGroup, 13292 event: event, 13293 elementApi: elementApi 13294 }); 13295 }); 13296 }); 13297} 13298 13299function clearActionGroupStyles(_ref14) { 13300 var actionGroup = _ref14.actionGroup, 13301 event = _ref14.event, 13302 elementApi = _ref14.elementApi; 13303 var actionItems = actionGroup.actionItems; 13304 actionItems.forEach(function (_ref15) { 13305 var actionTypeId = _ref15.actionTypeId, 13306 config = _ref15.config; 13307 var clearElement; 13308 13309 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13310 clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); 13311 } else { 13312 clearElement = processElementByType({ 13313 effect: clearStyleProp, 13314 actionTypeId: actionTypeId, 13315 elementApi: elementApi 13316 }); 13317 } 13318 13319 getAffectedElements({ 13320 config: config, 13321 event: event, 13322 elementApi: elementApi 13323 }
13323).forEach(clearElement); 13324 }); 13325} // $FlowFixMe 13326 13327 13328function cleanupHTMLElement(element, actionItem, elementApi) { 13329 var setStyle = elementApi.setStyle, 13330 getStyle = elementApi.getStyle; 13331 var actionTypeId = actionItem.actionTypeId; 13332 13333 if (actionTypeId === STYLE_SIZE) { 13334 var config = actionItem.config; 13335 13336 if (config.widthUnit === AUTO) { 13337 setStyle(element, WIDTH, ''); 13338 } 13339 13340 if (config.heightUnit === AUTO) { 13341 setStyle(element, HEIGHT, ''); 13342 } 13343 } 13344 13345 if (getStyle(element, WILL_CHANGE)) { 13346 processElementByType({ 13347 effect: removeWillChange, 13348 actionTypeId: actionTypeId, 13349 elementApi: elementApi 13350 })(element); 13351 } 13352} 13353 13354var processElementByType = function processElementByType(_ref16) { 13355 var effect = _ref16.effect, 13356 actionTypeId = _ref16.actionTypeId, 13357 elementApi = _ref16.elementApi; 13358 return function (element) { 13359 switch (actionTypeId) { 13360 case TRANSFORM_MOVE: 13361 case TRANSFORM_SCALE: 13362 case TRANSFORM_ROTATE: 13363 case TRANSFORM_SKEW: 13364 effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13365 break; 13366 13367 case STYLE_FILTER: 13368 effect(element, FILTER, elementApi); 13369 break; 13370 13371 case STYLE_OPACITY: 13372 effect(element, OPACITY, elementApi); 13373 break; 13374 13375 case STYLE_SIZE: 13376 effect(element, WIDTH, elementApi); 13377 effect(element, HEIGHT, elementApi); 13378 break; 13379 13380 case STYLE_BACKGROUND_COLOR: 13381 case STYLE_BORDER: 13382 case STYLE_TEXT_COLOR: 13383 effect(element, colorStyleProps[actionTypeId], elementApi); 13384 break; 13385 13386 case GENERAL_DISPLAY: 13387 effect(element, DISPLAY, elementApi); 13388 break; 13389 } 13390 }; 13391}; 13392 13393function clearStyleProp(element, prop, elementApi) { 13394 var setStyle = elementApi.setStyle; 13395 removeWillChange(element, prop, elementApi); 13396 setStyle(element, prop, ''); // Clear transform-style: preserve-3d 13397 13398 if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { 13399 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); 13400 } 13401} // $FlowFixMe 13402 13403 13404function getMaxDurationItemIndex(actionItems) { 13405 var maxDuration = 0; 13406 var resultIndex = 0; 13407 actionItems.forEach(function (actionItem, index) { 13408 var config = actionItem.config; 13409 var total = config.delay + config.duration; 13410 13411 if (total >= maxDuration) { 13412 maxDuration = total; 13413 resultIndex = index; 13414 } 13415 }); 13416 return resultIndex; 13417} // $FlowFixMe 13418 13419 13420function getActionListProgress(actionList, instance) { 13421 var actionItemGroups = actionList.actionItemGroups, 13422 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; 13423 var instanceItem = instance.actionItem, 13424 _instance$verboseTime = instance.verboseTimeElapsed, 13425 verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; 13426 var totalDuration = 0; 13427 var elapsedDuration = 0; 13428 actionItemGroups.forEach(function (group, index) { 13429 if (useFirstGroupAsInitialState && index === 0) { 13430 return; 13431 } 13432 13433 var actionItems = group.actionItems; 13434 var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; 13435 var config = carrierItem.config, 13436 actionTypeId = carrierItem.actionTypeId; 13437 13438 if (instanceItem.id === carrierItem.id) { 13439 elapsedDuration = totalDuration + verboseTimeElapsed; 13440 } 13441 13442 var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; 13443 totalDuration += config.delay + duration; 13444 }); 13445 return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; 13446} // $FlowFixMe 13447 13448 13449function reduceListToGroup(_ref17) { 13450 var actionList = _ref17.actionList, 13451 actionItemId = _ref17.actionItemId, 13452 rawData = _ref17.rawData; 13453 var actionItemGroups = actionList.actionItemGroups, 13454 continuousParameterGroups = actionList.continuousParameterGroups; 13455 var newActionItems = []; 13456 13457 var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { 13458 newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { 13459 delay: 0, 13460 duration: 0 13461 })); 13462 return actionItem.id === actionItemId; 13463 }; 13464 13465 actionItemGroups && actionItemGroups.some(function (_ref18) { 13466 var actionItems = _ref18.actionItems; 13467 return actionItems.some(takeItemUntilMatch); 13468 }); 13469 continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { 13470 var continuousActionGroups = paramGroup.continuousActionGroups; 13471 return continuousActionGroups.some(function (_ref19) { 13472 var actionItems = _ref19.actionItems; 13473 return actionItems.some(takeItemUntilMatch); 13474 }); 13475 }); 13476 return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { 13477 id: actionList.id, 13478 actionItemGroups: [{ 13479 actionItems: newActionItems 13480 }] 13481 })); 13482} // $FlowFixMe 13483 13484 13485function shouldNamespaceEventParameter(eventTypeId, _ref21) { 13486 var basedOn = _ref21.basedOn; 13487 return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; 13488} 13489 13490function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { 13491 var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; 13492 return namespacedParameterId; 13493} // $FlowFixMe 13494 13495 13496function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { 13497 // During design mode, current media query key does not exist 13498 if (mediaQueryKey == null) { 13499 return true; 13500 } 13501 13502 return mediaQueries.indexOf(mediaQueryKey) !== -1; 13503} // $FlowFixMe 13504 13505 13506function mediaQueriesEqual(listA, listB) { 13507 return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); 13508} // $FlowFixMe 13509 13510 13511function stringifyTarget(target) { 13512 if (typeof target === 'string') { 13513 return target; 13514 } 13515 13516 var _target$id = target.id, 13517 id = _target$id === void 0 ? '' : _target$id, 13518 _target$selector = target.selector, 13519 selector = _target$selector === void 0 ? '' : _target$selector, 13520 _target$useEventTarge = target.useEventTarget, 13521 useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; 13522 return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; 13523} 13524 13525/***/ }), 13526/* 249 */
13527/***/ (function(module, exports) { 13528 13529/** 13530 * Checks `value` to determine whether a default value should be returned in 13531 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 13532 * or `undefined`. 13533 * 13534 * @static 13535 * @memberOf _ 13536 * @since 4.14.0 13537 * @category Util 13538 * @param {*} value The value to check. 13539 * @param {*} defaultValue The default value. 13540 * @returns {*} Returns the resolved value. 13541 * @example 13542 * 13543 * _.defaultTo(1, 10); 13544 * // => 1 13545 * 13546 * _.defaultTo(undefined, 10); 13547 * // => 10 13548 */ 13549function defaultTo(value, defaultValue) { 13550 return (value == null || value !== value) ? defaultValue : value; 13551} 13552 13553module.exports = defaultTo; 13554 13555 13556/***/ }), 13557/* 250 */ 13558/***/ (function(module, exports, __webpack_require__) { 13559 13560var arrayReduce = __webpack_require__(251), 13561 baseEach = __webpack_require__(111), 13562 baseIteratee = __webpack_require__(7), 13563 baseReduce = __webpack_require__(255), 13564 isArray = __webpack_require__(1); 13565 13566/** 13567 * Reduces `collection` to a value which is the accumulated result of running 13568 * each element in `collection` thru `iteratee`, where each successive 13569 * invocation is supplied the return value of the previous. If `accumulator` 13570 * is not given, the first element of `collection` is used as the initial 13571 * value. The iteratee is invoked with four arguments: 13572 * (accumulator, value, index|key, collection). 13573 * 13574 * Many lodash methods are guarded to work as iteratees for methods like 13575 * `_.reduce`, `_.reduceRight`, and `_.transform`. 13576 * 13577 * The guarded methods are: 13578 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 13579 * and `sortBy` 13580 * 13581 * @static 13582 * @memberOf _ 13583 * @since 0.1.0 13584 * @category Collection 13585 * @param {Array|Object} collection The collection to iterate over. 13586 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 13587 * @param {*} [accumulator] The initial value. 13588 * @returns {*} Returns the accumulated value. 13589 * @see _.reduceRight 13590 * @example 13591 * 13592 * _.reduce([1, 2], function(sum, n) { 13593 * return sum + n; 13594 * }, 0); 13595 * // => 3 13596 * 13597 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 13598 * (result[value] || (result[value] = [])).push(key); 13599 * return result; 13600 * }, {}); 13601 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 13602 */ 13603function reduce(collection, iteratee, accumulator) { 13604 var func = isArray(collection) ? arrayReduce : baseReduce, 13605 initAccum = arguments.length < 3; 13606 13607 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 13608} 13609 13610module.exports = reduce; 13611 13612 13613/***/ }), 13614/* 251 */ 13615/***/ (function(module, exports) { 13616 13617/** 13618 * A specialized version of `_.reduce` for arrays without support for 13619 * iteratee shorthands. 13620 * 13621 * @private 13622 * @param {Array} [array] The array to iterate over. 13623 * @param {Function} iteratee The function invoked per iteration. 13624 * @param {*} [accumulator] The initial value. 13625 * @param {boolean} [initAccum] Specify using the first element of `array` as 13626 * the initial value. 13627 * @returns {*} Returns the accumulated value. 13628 */ 13629function arrayReduce(array, iteratee, accumulator, initAccum) { 13630 var index = -1, 13631 length = array == null ? 0 : array.length; 13632 13633 if (initAccum && length) { 13634 accumulator = array[++index]; 13635 } 13636 while (++index < length) { 13637 accumulator = iteratee(accumulator, array[index], index, array); 13638 } 13639 return accumulator; 13640} 13641 13642module.exports = arrayReduce; 13643 13644 13645/***/ }), 13646/* 252 */ 13647/***/ (function(module, exports, __webpack_require__) { 13648 13649var createBaseFor = __webpack_require__(253); 13650 13651/** 13652 * The base implementation of `baseForOwn` which iterates over `object` 13653 * properties returned by `keysFunc` and invokes `iteratee` for each property. 13654 * Iteratee functions may exit iteration early by explicitly returning `false`. 13655 * 13656 * @private 13657 * @param {Object} object The object to iterate over. 13658 * @param {Function} iteratee The function invoked per iteration. 13659 * @param {Function} keysFunc The function to get the keys of `object`. 13660 * @returns {Object} Returns `object`. 13661 */ 13662var baseFor = createBaseFor(); 13663 13664module.exports = baseFor; 13665 13666 13667/***/ }), 13668/* 253 */ 13669/***/ (function(module, exports) { 13670 13671/** 13672 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 13673 * 13674 * @private 13675 * @param {boolean} [fromRight] Specify iterating from right to left. 13676 * @returns {Function} Returns the new base function. 13677 */ 13678function createBaseFor(fromRight) { 13679 return function(object, iteratee, keysFunc) { 13680 var index = -1, 13681 iterable = Object(object), 13682 props = keysFunc(object), 13683 length = props.length; 13684 13685 while (length--) { 13686 var key = props[fromRight ? length : ++index]; 13687 if (iteratee(iterable[key], key, iterable) === false) { 13688 break; 13689 } 13690 } 13691 return object; 13692 }; 13693} 13694 13695module.exports = createBaseFor; 13696 13697 13698/***/ }), 13699/* 254 */ 13700/***/ (function(module, exports, __webpack_require__) { 13701 13702var isArrayLike = __webpack_require__(12); 13703 13704/** 13705 * Creates a `baseEach` or `baseEachRight` function. 13706 * 13707 * @private 13708 * @param {Function} eachFunc The function to iterate over a collection. 13709 * @param {boolean} [fromRight] Specify iterating from right to left. 13710 * @returns {Function} Returns the new base function. 13711 */ 13712function createBaseEach(eachFunc, fromRight) { 13713 return function(collection, iteratee) { 13714 if (collection == null) { 13715 return collection; 13716 } 13717 if (!isArrayLike(collection)) { 13718 return eachFunc(collection, iteratee); 13719 } 13720 var length = collection.length, 13721 index = fromRight ? length : -1, 13722 iterable = Object(collection); 13723 13724 while ((fromRight ? index-- : ++index < length)) { 13725 if (iteratee(iterable[index], index, iterable) === false) { 13726 break; 13727 } 13728 } 13729 return collection; 13730 }; 13731} 13732 13733module.exports = createBaseEach; 13734 13735 13736/***/ }), 13737/* 255 */
13738/***/ (function(module, exports) { 13739 13740/** 13741 * The base implementation of `_.reduce` and `_.reduceRight`, without support 13742 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 13743 * 13744 * @private 13745 * @param {Array|Object} collection The collection to iterate over. 13746 * @param {Function} iteratee The function invoked per iteration. 13747 * @param {*} accumulator The initial value. 13748 * @param {boolean} initAccum Specify using the first or last element of 13749 * `collection` as the initial value. 13750 * @param {Function} eachFunc The function to iterate over `collection`. 13751 * @returns {*} Returns the accumulated value. 13752 */ 13753function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 13754 eachFunc(collection, function(value, index, collection) { 13755 accumulator = initAccum 13756 ? (initAccum = false, value) 13757 : iteratee(accumulator, value, index, collection); 13758 }); 13759 return accumulator; 13760} 13761 13762module.exports = baseReduce; 13763 13764 13765/***/ }), 13766/* 256 */ 13767/***/ (function(module, exports, __webpack_require__) { 13768 13769var createFind = __webpack_require__(86), 13770 findLastIndex = __webpack_require__(257); 13771 13772/** 13773 * This method is like `_.find` except that it iterates over elements of 13774 * `collection` from right to left. 13775 * 13776 * @static 13777 * @memberOf _ 13778 * @since 2.0.0 13779 * @category Collection 13780 * @param {Array|Object} collection The collection to inspect. 13781 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13782 * @param {number} [fromIndex=collection.length-1] The index to search from. 13783 * @returns {*} Returns the matched element, else `undefined`. 13784 * @example 13785 * 13786 * _.findLast([1, 2, 3, 4], function(n) { 13787 * return n % 2 == 1; 13788 * }); 13789 * // => 3 13790 */ 13791var findLast = createFind(findLastIndex); 13792 13793module.exports = findLast; 13794 13795 13796/***/ }), 13797/* 257 */ 13798/***/ (function(module, exports, __webpack_require__) { 13799 13800var baseFindIndex = __webpack_require__(104), 13801 baseIteratee = __webpack_require__(7), 13802 toInteger = __webpack_require__(105); 13803 13804/* Built-in method references for those with the same name as other `lodash` methods. */ 13805var nativeMax = Math.max, 13806 nativeMin = Math.min; 13807 13808/** 13809 * This method is like `_.findIndex` except that it iterates over elements 13810 * of `collection` from right to left. 13811 * 13812 * @static 13813 * @memberOf _ 13814 * @since 2.0.0 13815 * @category Array 13816 * @param {Array} array The array to inspect. 13817 * @param {Function} [predicate=_.identity] The function invoked per iteration. 13818 * @param {number} [fromIndex=array.length-1] The index to search from. 13819 * @returns {number} Returns the index of the found element, else `-1`. 13820 * @example 13821 * 13822 * var users = [ 13823 * { 'user': 'barney', 'active': true }, 13824 * { 'user': 'fred', 'active': false }, 13825 * { 'user': 'pebbles', 'active': false } 13826 * ]; 13827 * 13828 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 13829 * // => 2 13830 * 13831 * // The `_.matches` iteratee shorthand. 13832 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 13833 * // => 0 13834 * 13835 * // The `_.matchesProperty` iteratee shorthand. 13836 * _.findLastIndex(users, ['active', false]); 13837 * // => 2 13838 * 13839 * // The `_.property` iteratee shorthand. 13840 * _.findLastIndex(users, 'active'); 13841 * // => 0 13842 */ 13843function findLastIndex(array, predicate, fromIndex) { 13844 var length = array == null ? 0 : array.length; 13845 if (!length) { 13846 return -1; 13847 } 13848 var index = length - 1; 13849 if (fromIndex !== undefined) { 13850 index = toInteger(fromIndex); 13851 index = fromIndex < 0 13852 ? nativeMax(length + index, 0) 13853 : nativeMin(index, length - 1); 13854 } 13855 return baseFindIndex(array, baseIteratee(predicate, 3), index, true); 13856} 13857 13858module.exports = findLastIndex; 13859 13860 13861/***/ }), 13862/* 258 */ 13863/***/ (function(module, exports) { 13864 13865function _interopRequireDefault(obj) { 13866 return obj && obj.__esModule ? obj : { 13867 default: obj 13868 }; 13869} 13870 13871module.exports = _interopRequireDefault; 13872 13873/***/ }), 13874/* 259 */ 13875/***/ (function(module, exports, __webpack_require__) { 13876 13877"use strict"; 13878/** 13879 * Copyright (c) 2013-present, Facebook, Inc. 13880 * 13881 * This source code is licensed under the MIT license found in the 13882 * LICENSE file in the root directory of this source tree. 13883 * 13884 * @typechecks 13885 * 13886 */ 13887 13888/*eslint-disable no-self-compare */ 13889 13890 13891 13892var hasOwnProperty = Object.prototype.hasOwnProperty; 13893 13894/** 13895 * inlined Object.is polyfill to avoid requiring consumers ship their own 13896 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 13897 */ 13898function is(x, y) { 13899 // SameValue algorithm 13900 if (x === y) { 13901 // Steps 1-5, 7-10 13902 // Steps 6.b-6.e: +0 != -0 13903 // Added the nonzero y check to make Flow happy, but it is redundant 13904 return x !== 0 || y !== 0 || 1 / x === 1 / y; 13905 } else { 13906 // Step 6.a: NaN == NaN 13907 return x !== x && y !== y; 13908 } 13909} 13910 13911/**
13912 * Performs equality by iterating through keys on an object and returning false 13913 * when any key has values which are not strictly equal between the arguments. 13914 * Returns true when the values of all keys are strictly equal. 13915 */ 13916function shallowEqual(objA, objB) { 13917 if (is(objA, objB)) { 13918 return true; 13919 } 13920 13921 if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { 13922 return false; 13923 } 13924 13925 var keysA = Object.keys(objA); 13926 var keysB = Object.keys(objB); 13927 13928 if (keysA.length !== keysB.length) { 13929 return false; 13930 } 13931 13932 // Test for A's keys different from B. 13933 for (var i = 0; i < keysA.length; i++) { 13934 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 13935 return false; 13936 } 13937 } 13938 13939 return true; 13940} 13941 13942module.exports = shallowEqual; 13943 13944/***/ }), 13945/* 260 */ 13946/***/ (function(module, exports, __webpack_require__) { 13947 13948"use strict"; 13949 13950 13951Object.defineProperty(exports, "__esModule", { 13952 value: true 13953}); 13954exports.ixInstances = void 0; 13955 13956var _constants = __webpack_require__(2); 13957 13958var _shared = __webpack_require__(10); 13959 13960var _timm = __webpack_require__(18); 13961/* eslint-env browser */ 13962 13963 13964var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 13965 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 13966 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 13967 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 13968 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 13969 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 13970 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; 13971var _shared$IX2EasingUtil = _shared.IX2EasingUtils, 13972 optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, 13973 applyEasing = _shared$IX2EasingUtil.applyEasing, 13974 createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; 13975var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; 13976var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 13977 getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, 13978 getRenderType = _shared$IX2VanillaUti.getRenderType, 13979 getStyleProp = _shared$IX2VanillaUti.getStyleProp; 13980
13981var continuousInstance = function continuousInstance(state, action) { 13982 var lastPosition = state.position, 13983 parameterId = state.parameterId, 13984 actionGroups = state.actionGroups, 13985 destinationKeys = state.destinationKeys, 13986 smoothing = state.smoothing, 13987 restingValue = state.restingValue, 13988 actionTypeId = state.actionTypeId, 13989 customEasingFn = state.customEasingFn; 13990 var parameters = action.payload.parameters; 13991 var velocity = Math.max(1 - smoothing, 0.01); 13992 var paramValue = parameters[parameterId]; 13993 13994 if (paramValue == null) { 13995 velocity = 1; 13996 paramValue = restingValue; 13997 } 13998 13999 var nextPosition = Math.max(paramValue, 0) || 0; 14000 var positionDiff = optimizeFloat(nextPosition - lastPosition); 14001 var position = optimizeFloat(lastPosition + positionDiff * velocity); 14002 var keyframePosition = position * 100; 14003 14004 if (position === lastPosition && state.current) { 14005 return state; 14006 } 14007 14008 var fromActionItem; 14009 var toActionItem; 14010 var positionOffset; 14011 var positionRange; 14012 14013 for (var i = 0, length = actionGroups.length; i < length; i++) { 14014 var _actionGroups$i = actionGroups[i], 14015 keyframe = _actionGroups$i.keyframe, 14016 actionItems = _actionGroups$i.actionItems; 14017 14018 if (i === 0) { 14019 fromActionItem = actionItems[0]; 14020 } 14021 14022 if (keyframePosition >= keyframe) { 14023 fromActionItem = actionItems[0]; 14024 var nextGroup = actionGroups[i + 1]; 14025 var hasNextItem = nextGroup && keyframePosition !== keyframe; 14026 toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; 14027 14028 if (hasNextItem) { 14029 positionOffset = keyframe / 100; 14030 positionRange = (nextGroup.keyframe - keyframe) / 100; 14031 } 14032 } 14033 } 14034 14035 var current = {}; 14036 14037 if (fromActionItem && !toActionItem) { 14038 for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { 14039 var key = destinationKeys[_i]; 14040 current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); 14041 } 14042 } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { 14043 var localPosition = (position - positionOffset) / positionRange; 14044 var easing = fromActionItem.config.easing; 14045 var eased = applyEasing(easing, localPosition, customEasingFn); 14046 14047 for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { 14048 var _key = destinationKeys[_i2]; 14049 var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); 14050 var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe â toVal and fromVal could potentially be null, need to update type higher to determine number 14051 14052 var diff = toVal - fromVal; // $FlowFixMe 14053 14054 var value = diff * eased + fromVal; 14055 current[_key] = value; 14056 } 14057 } 14058 14059 return (0, _timm.merge)(state, { 14060 position: position, 14061 current: current 14062 }); 14063}; 14064 14065var timedInstance = function timedInstance(state, action) { 14066 var _state = state, 14067 active = _state.active, 14068 origin = _state.origin, 14069 start = _state.start, 14070 immediate = _state.immediate, 14071 renderType = _state.renderType, 14072 verbose = _state.verbose, 14073 actionItem = _state.actionItem, 14074 destination = _state.destination, 14075 destinationKeys = _state.destinationKeys, 14076 pluginDuration = _state.pluginDuration, 14077 instanceDelay = _state.instanceDelay, 14078 customEasingFn = _state.customEasingFn; 14079 var easing = actionItem.config.easing; 14080 var _actionItem$config = actionItem.config, 14081 duration = _actionItem$config.duration, 14082 delay = _actionItem$config.delay; 14083 14084 if (pluginDuration != null) { 14085 duration = pluginDuration; 14086 } 14087 14088 delay = instanceDelay != null ? instanceDelay : delay; 14089 14090 if (renderType === RENDER_GENERAL) { 14091 duration = 0; 14092 } else if (immediate) { 14093 duration = delay = 0; 14094 } 14095 14096 var now = action.payload.now; 14097 14098 if (active && origin) { 14099 var delta = now - (start + delay); 14100 14101 if (verbose) { 14102 var verboseDelta = now - start; 14103 var verboseDuration = duration + delay; 14104 var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); 14105 state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); 14106 } 14107 14108 if (delta < 0) { 14109 return state; 14110 } 14111 14112 var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); 14113 var eased = applyEasing(easing, position, customEasingFn); 14114 var newProps = {}; 14115 var current = null; 14116 14117 if (destinationKeys.length) { 14118 current = destinationKeys.reduce(function (result, key) { 14119 var destValue = destination[key]; 14120 var originVal = parseFloat(origin[key]) || 0; 14121 var diff = parseFloat(destValue) - originVal; 14122 var value = diff * eased + originVal; 14123 result[key] = value; 14124 return result; 14125 }, {}); 14126 } 14127 14128 newProps.current = current; 14129 newProps.position = position; 14130 14131 if (position === 1) { 14132 newProps.active = false;
14133 newProps.complete = true; 14134 } 14135 14136 return (0, _timm.merge)(state, newProps); 14137 } 14138 14139 return state; 14140}; 14141 14142var ixInstances = function ixInstances() { 14143 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 14144 var action = arguments.length > 1 ? arguments[1] : undefined; 14145 14146 switch (action.type) { 14147 case IX2_RAW_DATA_IMPORTED: 14148 { 14149 return action.payload.ixInstances || Object.freeze({}); 14150 } 14151 14152 case IX2_SESSION_STOPPED: 14153 { 14154 return Object.freeze({}); 14155 } 14156 14157 case IX2_INSTANCE_ADDED: 14158 { 14159 var _action$payload = action.payload, 14160 instanceId = _action$payload.instanceId, 14161 elementId = _action$payload.elementId, 14162 actionItem = _action$payload.actionItem, 14163 eventId = _action$payload.eventId, 14164 eventTarget = _action$payload.eventTarget, 14165 eventStateKey = _action$payload.eventStateKey, 14166 actionListId = _action$payload.actionListId, 14167 groupIndex = _action$payload.groupIndex, 14168 isCarrier = _action$payload.isCarrier, 14169 origin = _action$payload.origin, 14170 destination = _action$payload.destination, 14171 immediate = _action$payload.immediate, 14172 verbose = _action$payload.verbose, 14173 continuous = _action$payload.continuous, 14174 parameterId = _action$payload.parameterId, 14175 actionGroups = _action$payload.actionGroups, 14176 smoothing = _action$payload.smoothing, 14177 restingValue = _action$payload.restingValue, 14178 pluginInstance = _action$payload.pluginInstance, 14179 pluginDuration = _action$payload.pluginDuration, 14180 instanceDelay = _action$payload.instanceDelay; 14181 var actionTypeId = actionItem.actionTypeId; 14182 var renderType = getRenderType(actionTypeId); 14183 var styleProp = getStyleProp(renderType, actionTypeId); 14184 var destinationKeys = Object.keys(destination).filter(function (key) { 14185 return destination[key] != null; 14186 }); 14187 var easing = actionItem.config.easing; 14188 return (0, _timm.set)(state, instanceId, { 14189 id: instanceId, 14190 elementId: elementId, 14191 active: false, 14192 position: 0, 14193 start: 0, 14194 origin: origin, 14195 destination: destination, 14196 destinationKeys: destinationKeys, 14197 immediate: immediate, 14198 verbose: verbose, 14199 current: null, 14200 actionItem: actionItem, 14201 actionTypeId: actionTypeId, 14202 eventId: eventId, 14203 eventTarget: eventTarget, 14204 eventStateKey: eventStateKey, 14205 actionListId: actionListId, 14206 groupIndex: groupIndex, 14207 renderType: renderType, 14208 isCarrier: isCarrier, 14209 styleProp: styleProp, 14210 continuous: continuous, 14211 parameterId: parameterId, 14212 actionGroups: actionGroups, 14213 smoothing: smoothing, 14214 restingValue: restingValue, 14215 pluginInstance: pluginInstance, 14216 pluginDuration: pluginDuration, 14217 instanceDelay: instanceDelay, 14218 customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined 14219 }); 14220 } 14221 14222 case IX2_INSTANCE_STARTED: 14223 { 14224 var _action$payload2 = action.payload, 14225 _instanceId = _action$payload2.instanceId, 14226 time = _action$payload2.time; 14227 return (0, _timm.mergeIn)(state, [_instanceId], { 14228 active: true, 14229 complete: false, 14230 start: time 14231 }); 14232 } 14233 14234 case IX2_INSTANCE_REMOVED: 14235 { 14236 var _instanceId2 = action.payload.instanceId; 14237 14238 if (!state[_instanceId2]) { 14239 return state; 14240 } 14241 14242 var newState = {}; 14243 var keys = Object.keys(state); 14244 var length = keys.length; 14245 14246 for (var i = 0; i < length; i++) { 14247 var key = keys[i]; 14248 14249 if (key !== _instanceId2) { 14250 newState[key] = state[key]; 14251 } 14252 } 14253 14254 return newState; 14255 } 14256 14257 case IX2_ANIMATION_FRAME_CHANGED: 14258 { 14259 var _newState = state; 14260 14261 var _keys = Object.keys(state); 14262 14263 var _length3 = _keys.length; 14264 14265 for (var _i3 = 0; _i3 < _length3; _i3++) { 14266 var _key2 = _keys[_i3]; 14267 var instance = state[_key2]; 14268 var reducer = instance.continuous ? continuousInstance : timedInstance; 14269 _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); 14270 } 14271 14272 return _newState; 14273 } 14274 14275 default: 14276 { 14277 return state; 14278 } 14279 } 14280}; 14281 14282exports.ixInstances = ixInstances; 14283 14284/***/ }), 14285/* 261 */ 14286/***/ (function(module, exports, __webpack_require__) { 14287 14288"use strict"; 14289 14290 14291Object.defineProperty(exports, "__esModule", { 14292 value: true 14293}); 14294exports.ixParameters = void 0; 14295 14296var _constants = __webpack_require__(2); 14297 14298var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
14299 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 14300 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 14301 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore 14302 14303var ixParameters = function ixParameters() { 14304 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { 14305 /*mutable flat state*/ 14306 }; 14307 var action = arguments.length > 1 ? arguments[1] : undefined; 14308 14309 switch (action.type) { 14310 case IX2_RAW_DATA_IMPORTED: 14311 { 14312 return action.payload.ixParameters || { 14313 /*mutable flat state*/ 14314 }; 14315 } 14316 14317 case IX2_SESSION_STOPPED: 14318 { 14319 return { 14320 /*mutable flat state*/ 14321 }; 14322 } 14323 14324 case IX2_PARAMETER_CHANGED: 14325 { 14326 var _action$payload = action.payload, 14327 key = _action$payload.key, 14328 value = _action$payload.value; 14329 state[key] = value; 14330 return state; 14331 } 14332 14333 default: 14334 { 14335 return state; 14336 } 14337 } 14338}; 14339 14340exports.ixParameters = ixParameters; 14341 14342/***/ }), 14343/* 262 */ 14344/***/ (function(module, exports) { 14345 14346function _objectWithoutPropertiesLoose(source, excluded) { 14347 if (source == null) return {}; 14348 var target = {}; 14349 var sourceKeys = Object.keys(source); 14350 var key, i; 14351 14352 for (i = 0; i < sourceKeys.length; i++) { 14353 key = sourceKeys[i]; 14354 if (excluded.indexOf(key) >= 0) continue; 14355 target[key] = source[key]; 14356 } 14357 14358 return target; 14359} 14360 14361module.exports = _objectWithoutPropertiesLoose; 14362 14363/***/ }), 14364/* 263 */ 14365/***/ (function(module, exports, __webpack_require__) { 14366 14367var baseKeys = __webpack_require__(54), 14368 getTag = __webpack_require__(56), 14369 isArrayLike = __webpack_require__(12), 14370 isString = __webpack_require__(264), 14371 stringSize = __webpack_require__(265); 14372 14373/** `Object#toString` result references. */ 14374var mapTag = '[object Map]', 14375 setTag = '[object Set]'; 14376 14377/** 14378 * Gets the size of `collection` by returning its length for array-like 14379 * values or the number of own enumerable string keyed properties for objects. 14380 * 14381 * @static 14382 * @memberOf _ 14383 * @since 0.1.0 14384 * @category Collection 14385 * @param {Array|Object|string} collection The collection to inspect. 14386 * @returns {number} Returns the collection size. 14387 * @example 14388 * 14389 * _.size([1, 2, 3]); 14390 * // => 3 14391 * 14392 * _.size({ 'a': 1, 'b': 2 }); 14393 * // => 2 14394 * 14395 * _.size('pebbles'); 14396 * // => 7 14397 */ 14398function size(collection) { 14399 if (collection == null) { 14400 return 0; 14401 } 14402 if (isArrayLike(collection)) { 14403 return isString(collection) ? stringSize(collection) : collection.length; 14404 } 14405 var tag = getTag(collection); 14406 if (tag == mapTag || tag == setTag) { 14407 return collection.size; 14408 } 14409 return baseKeys(collection).length; 14410} 14411 14412module.exports = size; 14413 14414 14415/***/ }), 14416/* 264 */ 14417/***/ (function(module, exports, __webpack_require__) { 14418 14419var baseGetTag = __webpack_require__(11), 14420 isArray = __webpack_require__(1), 14421 isObjectLike = __webpack_require__(9); 14422 14423/** `Object#toString` result references. */ 14424var stringTag = '[object String]'; 14425 14426/** 14427 * Checks if `value` is classified as a `String` primitive or object. 14428 * 14429 * @static 14430 * @since 0.1.0 14431 * @memberOf _ 14432 * @category Lang 14433 * @param {*} value The value to check. 14434 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 14435 * @example 14436 * 14437 * _.isString('abc'); 14438 * // => true 14439 * 14440 * _.isString(1); 14441 * // => false 14442 */ 14443function isString(value) { 14444 return typeof value == 'string' || 14445 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 14446} 14447 14448module.exports = isString; 14449 14450 14451/***/ }), 14452/* 265 */ 14453/***/ (function(module, exports, __webpack_require__) { 14454 14455var asciiSize = __webpack_require__(266), 14456 hasUnicode = __webpack_require__(267), 14457 unicodeSize = __webpack_require__(268); 14458 14459/** 14460 * Gets the number of symbols in `string`. 14461 * 14462 * @private 14463 * @param {string} string The string to inspect. 14464 * @returns {number} Returns the string size. 14465 */ 14466function stringSize(string) { 14467 return hasUnicode(string) 14468 ? unicodeSize(string) 14469 : asciiSize(string); 14470} 14471 14472module.exports = stringSize; 14473 14474 14475/***/ }), 14476/* 266 */ 14477/***/ (function(module, exports, __webpack_require__) { 14478 14479var baseProperty = __webpack_require__(103); 14480 14481/** 14482 * Gets the size of an ASCII `string`. 14483 * 14484 * @private 14485 * @param {string} string The string inspect. 14486 * @returns {number} Returns the string size. 14487 */ 14488var asciiSize = baseProperty('length'); 14489 14490module.exports = asciiSize; 14491 14492 14493/***/ }), 14494/* 267 */
vendor: 2,920 bytes, lines 14495-14584
14495/***/ (function(module, exports) { 14496 14497/** Used to compose unicode character classes. */ 14498var rsAstralRange = '\\ud800-\\udfff', 14499 rsComboMarksRange = '\\u0300-\\u036f', 14500 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 14501 rsComboSymbolsRange = '\\u20d0-\\u20ff', 14502 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 14503 rsVarRange = '\\ufe0e\\ufe0f'; 14504 14505/** Used to compose unicode capture groups. */ 14506var rsZWJ = '\\u200d'; 14507 14508/** 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/). */ 14509var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 14510 14511/** 14512 * Checks if `string` contains Unicode symbols. 14513 * 14514 * @private 14515 * @param {string} string The string to inspect. 14516 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 14517 */ 14518function hasUnicode(string) { 14519 return reHasUnicode.test(string); 14520} 14521 14522module.exports = hasUnicode; 14523 14524 14525/***/ }), 14526/* 268 */ 14527/***/ (function(module, exports) { 14528 14529/** Used to compose unicode character classes. */ 14530var rsAstralRange = '\\ud800-\\udfff', 14531 rsComboMarksRange = '\\u0300-\\u036f', 14532 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 14533 rsComboSymbolsRange = '\\u20d0-\\u20ff', 14534 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 14535 rsVarRange = '\\ufe0e\\ufe0f'; 14536 14537/** Used to compose unicode capture groups. */ 14538var rsAstral = '[' + rsAstralRange + ']', 14539 rsCombo = '[' + rsComboRange + ']', 14540 rsFitz = '\\ud83c[\\udffb-\\udfff]', 14541 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 14542 rsNonAstral = '[^' + rsAstralRange + ']', 14543 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 14544 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 14545 rsZWJ = '\\u200d'; 14546 14547/** Used to compose unicode regexes. */ 14548var reOptMod = rsModifier + '?', 14549 rsOptVar = '[' + rsVarRange + ']?', 14550 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 14551 rsSeq = rsOptVar + reOptMod + rsOptJoin, 14552 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 14553 14554/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 14555var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 14556 14557/** 14558 * Gets the size of a Unicode `string`. 14559 * 14560 * @private 14561 * @param {string} string The string inspect. 14562 * @returns {number} Returns the string size. 14563 */ 14564function unicodeSize(string) { 14565 var result = reUnicode.lastIndex = 0; 14566 while (reUnicode.test(string)) { 14567 ++result; 14568 } 14569 return result; 14570} 14571 14572module.exports = unicodeSize; 14573 14574 14575/***/ }), 14576/* 269 */ 14577/***/ (function(module, exports, __webpack_require__) { 14578 14579var baseIteratee = __webpack_require__(7), 14580 negate = __webpack_require__(270), 14581 pickBy = __webpack_require__(271); 14582 14583/** 14584 * The opposite of `_.pickBy`;
14584 this method creates an object composed of 14585 * the own and inherited enumerable string keyed properties of `object` that 14586 * `predicate` doesn't return truthy for. The predicate is invoked with two 14587 * arguments: (value, key). 14588 * 14589 * @static 14590 * @memberOf _ 14591 * @since 4.0.0 14592 * @category Object 14593 * @param {Object} object The source object. 14594 * @param {Function} [predicate=_.identity] The function invoked per property. 14595 * @returns {Object} Returns the new object. 14596 * @example 14597 * 14598 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 14599 * 14600 * _.omitBy(object, _.isNumber); 14601 * // => { 'b': '2' } 14602 */ 14603function omitBy(object, predicate) { 14604 return pickBy(object, negate(baseIteratee(predicate))); 14605} 14606 14607module.exports = omitBy; 14608 14609 14610/***/ }), 14611/* 270 */ 14612/***/ (function(module, exports) { 14613 14614/** Error message constants. */ 14615var FUNC_ERROR_TEXT = 'Expected a function'; 14616 14617/** 14618 * Creates a function that negates the result of the predicate `func`. The 14619 * `func` predicate is invoked with the `this` binding and arguments of the 14620 * created function. 14621 * 14622 * @static 14623 * @memberOf _ 14624 * @since 3.0.0 14625 * @category Function 14626 * @param {Function} predicate The predicate to negate. 14627 * @returns {Function} Returns the new negated function. 14628 * @example 14629 * 14630 * function isEven(n) { 14631 * return n % 2 == 0; 14632 * } 14633 * 14634 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 14635 * // => [1, 3, 5] 14636 */ 14637function negate(predicate) { 14638 if (typeof predicate != 'function') { 14639 throw new TypeError(FUNC_ERROR_TEXT); 14640 } 14641 return function() { 14642 var args = arguments; 14643 switch (args.length) { 14644 case 0: return !predicate.call(this); 14645 case 1: return !predicate.call(this, args[0]); 14646 case 2: return !predicate.call(this, args[0], args[1]); 14647 case 3: return !predicate.call(this, args[0], args[1], args[2]); 14648 } 14649 return !predicate.apply(this, args); 14650 }; 14651} 14652 14653module.exports = negate; 14654 14655 14656/***/ }), 14657/* 271 */ 14658/***/ (function(module, exports, __webpack_require__) { 14659 14660var arrayMap = __webpack_require__(102), 14661 baseIteratee = __webpack_require__(7), 14662 basePickBy = __webpack_require__(272), 14663 getAllKeysIn = __webpack_require__(275); 14664 14665/**
14666 * Creates an object composed of the `object` properties `predicate` returns 14667 * truthy for. The predicate is invoked with two arguments: (value, key). 14668 * 14669 * @static 14670 * @memberOf _ 14671 * @since 4.0.0 14672 * @category Object 14673 * @param {Object} object The source object. 14674 * @param {Function} [predicate=_.identity] The function invoked per property. 14675 * @returns {Object} Returns the new object. 14676 * @example 14677 * 14678 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 14679 * 14680 * _.pickBy(object, _.isNumber); 14681 * // => { 'a': 1, 'c': 3 } 14682 */ 14683function pickBy(object, predicate) { 14684 if (object == null) { 14685 return {}; 14686 } 14687 var props = arrayMap(getAllKeysIn(object), function(prop) { 14688 return [prop]; 14689 }); 14690 predicate = baseIteratee(predicate); 14691 return basePickBy(object, props, function(value, path) { 14692 return predicate(value, path[0]); 14693 }); 14694} 14695 14696module.exports = pickBy; 14697 14698 14699/***/ }), 14700/* 272 */ 14701/***/ (function(module, exports, __webpack_require__) { 14702 14703var baseGet = __webpack_require__(57), 14704 baseSet = __webpack_require__(273), 14705 castPath = __webpack_require__(36); 14706 14707/** 14708 * The base implementation of `_.pickBy` without support for iteratee shorthands. 14709 * 14710 * @private 14711 * @param {Object} object The source object. 14712 * @param {string[]} paths The property paths to pick. 14713 * @param {Function} predicate The function invoked per property. 14714 * @returns {Object} Returns the new object. 14715 */ 14716function basePickBy(object, paths, predicate) { 14717 var index = -1, 14718 length = paths.length, 14719 result = {}; 14720 14721 while (++index < length) { 14722 var path = paths[index], 14723 value = baseGet(object, path); 14724 14725 if (predicate(value, path)) { 14726 baseSet(result, castPath(path, object), value); 14727 } 14728 } 14729 return result; 14730} 14731 14732module.exports = basePickBy; 14733 14734 14735/***/ }), 14736/* 273 */ 14737/***/ (function(module, exports, __webpack_require__) { 14738 14739var assignValue = __webpack_require__(274), 14740 castPath = __webpack_require__(36), 14741 isIndex = __webpack_require__(51), 14742 isObject = __webpack_require__(6), 14743 toKey = __webpack_require__(20); 14744 14745/** 14746 * The base implementation of `_.set`. 14747 * 14748 * @private 14749 * @param {Object} object The object to modify. 14750 * @param {Array|string} path The path of the property to set. 14751 * @param {*} value The value to set. 14752 * @param {Function} [customizer] The function to customize path creation. 14753 * @returns {Object} Returns `object`. 14754 */ 14755function baseSet(object, path, value, customizer) { 14756 if (!isObject(object)) { 14757 return object; 14758 } 14759 path = castPath(path, object); 14760 14761 var index = -1, 14762 length = path.length, 14763 lastIndex = length - 1, 14764 nested = object; 14765 14766 while (nested != null && ++index < length) { 14767 var key = toKey(path[index]), 14768 newValue = value; 14769 14770 if (index != lastIndex) { 14771 var objValue = nested[key]; 14772 newValue = customizer ? customizer(objValue, key, nested) : undefined; 14773 if (newValue === undefined) { 14774 newValue = isObject(objValue) 14775 ? objValue 14776 : (isIndex(path[index + 1]) ? [] : {}); 14777 } 14778 } 14779 assignValue(nested, key, newValue); 14780 nested = nested[key]; 14781 } 14782 return object; 14783} 14784 14785module.exports = baseSet; 14786 14787 14788/***/ }), 14789/* 274 */ 14790/***/ (function(module, exports, __webpack_require__) { 14791 14792var baseAssignValue = __webpack_require__(115), 14793 eq = __webpack_require__(46); 14794 14795/** Used for built-in method references. */ 14796var objectProto = Object.prototype; 14797 14798/** Used to check objects for own properties. */ 14799var hasOwnProperty = objectProto.hasOwnProperty; 14800 14801/** 14802 * Assigns `value` to `key` of `object` if the existing value is not equivalent 14803 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 14804 * for equality comparisons. 14805 * 14806 * @private 14807 * @param {Object} object The object to modify. 14808 * @param {string} key The key of the property to assign. 14809 * @param {*} value The value to assign. 14810 */ 14811function assignValue(object, key, value) { 14812 var objValue = object[key]; 14813 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 14814 (value === undefined && !(key in object))) { 14815 baseAssignValue(object, key, value); 14816 } 14817} 14818 14819module.exports = assignValue; 14820 14821 14822/***/ }), 14823/* 275 */ 14824/***/ (function(module, exports, __webpack_require__) { 14825 14826var baseGetAllKeys = __webpack_require__(93), 14827 getSymbolsIn = __webpack_require__(276), 14828 keysIn = __webpack_require__(278); 14829 14830/** 14831 * Creates an array of own and inherited enumerable property names and 14832 * symbols of `object`. 14833 * 14834 * @private 14835 * @param {Object} object The object to query. 14836 * @returns {Array} Returns the array of property names and symbols. 14837 */ 14838function getAllKeysIn(object) { 14839 return baseGetAllKeys(object, keysIn, getSymbolsIn); 14840} 14841 14842module.exports = getAllKeysIn; 14843 14844 14845/***/ }), 14846/* 276 */ 14847/***/ (function(module, exports, __webpack_require__) { 14848 14849var arrayPush = __webpack_require__(49), 14850 getPrototype = __webpack_require__(277), 14851 getSymbols = __webpack_require__(94), 14852 stubArray = __webpack_require__(95); 14853 14854/* Built-in method references for those with the same name as other `lodash` methods. */ 14855var nativeGetSymbols = Object.getOwnPropertySymbols; 14856 14857/** 14858 * Creates an array of the own and inherited enumerable symbols of `object`. 14859 * 14860 * @private 14861 * @param {Object} object The object to query. 14862 * @returns {Array} Returns the array of symbols. 14863 */ 14864var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 14865 var result = []; 14866 while (object) {
14867 arrayPush(result, getSymbols(object)); 14868 object = getPrototype(object); 14869 } 14870 return result; 14871}; 14872 14873module.exports = getSymbolsIn; 14874 14875 14876/***/ }), 14877/* 277 */ 14878/***/ (function(module, exports, __webpack_require__) { 14879 14880var overArg = __webpack_require__(98); 14881 14882/** Built-in value references. */ 14883var getPrototype = overArg(Object.getPrototypeOf, Object); 14884 14885module.exports = getPrototype; 14886 14887 14888/***/ }), 14889/* 278 */ 14890/***/ (function(module, exports, __webpack_require__) { 14891 14892var arrayLikeKeys = __webpack_require__(96), 14893 baseKeysIn = __webpack_require__(279), 14894 isArrayLike = __webpack_require__(12); 14895 14896/** 14897 * Creates an array of the own and inherited enumerable property names of `object`. 14898 * 14899 * **Note:** Non-object values are coerced to objects. 14900 * 14901 * @static 14902 * @memberOf _ 14903 * @since 3.0.0 14904 * @category Object 14905 * @param {Object} object The object to query. 14906 * @returns {Array} Returns the array of property names. 14907 * @example 14908 * 14909 * function Foo() { 14910 * this.a = 1; 14911 * this.b = 2; 14912 * } 14913 * 14914 * Foo.prototype.c = 3; 14915 * 14916 * _.keysIn(new Foo); 14917 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 14918 */ 14919function keysIn(object) { 14920 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 14921} 14922 14923module.exports = keysIn; 14924 14925 14926/***/ }), 14927/* 279 */ 14928/***/ (function(module, exports, __webpack_require__) { 14929 14930var isObject = __webpack_require__(6), 14931 isPrototype = __webpack_require__(55), 14932 nativeKeysIn = __webpack_require__(280); 14933 14934/** Used for built-in method references. */ 14935var objectProto = Object.prototype; 14936 14937/** Used to check objects for own properties. */ 14938var hasOwnProperty = objectProto.hasOwnProperty; 14939 14940/** 14941 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 14942 * 14943 * @private 14944 * @param {Object} object The object to query. 14945 * @returns {Array} Returns the array of property names. 14946 */ 14947function baseKeysIn(object) { 14948 if (!isObject(object)) { 14949 return nativeKeysIn(object); 14950 } 14951 var isProto = isPrototype(object), 14952 result = []; 14953 14954 for (var key in object) { 14955 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 14956 result.push(key); 14957 } 14958 } 14959 return result; 14960} 14961 14962module.exports = baseKeysIn; 14963 14964 14965/***/ }), 14966/* 280 */ 14967/***/ (function(module, exports) { 14968 14969/** 14970 * This function is like 14971 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 14972 * except that it includes inherited enumerable properties. 14973 * 14974 * @private 14975 * @param {Object} object The object to query. 14976 * @returns {Array} Returns the array of property names. 14977 */ 14978function nativeKeysIn(object) { 14979 var result = []; 14980 if (object != null) { 14981 for (var key in Object(object)) { 14982 result.push(key); 14983 } 14984 } 14985 return result; 14986} 14987 14988module.exports = nativeKeysIn; 14989 14990 14991/***/ }), 14992/* 281 */ 14993/***/ (function(module, exports, __webpack_require__) { 14994 14995var baseKeys = __webpack_require__(54), 14996 getTag = __webpack_require__(56), 14997 isArguments = __webpack_require__(34), 14998 isArray = __webpack_require__(1), 14999 isArrayLike = __webpack_require__(12), 15000 isBuffer = __webpack_require__(50), 15001 isPrototype = __webpack_require__(55), 15002 isTypedArray = __webpack_require__(52); 15003 15004/** `Object#toString` result references. */ 15005var mapTag = '[object Map]', 15006 setTag = '[object Set]'; 15007 15008/** Used for built-in method references. */ 15009var objectProto = Object.prototype; 15010 15011/** Used to check objects for own properties. */ 15012var hasOwnProperty = objectProto.hasOwnProperty; 15013 15014/** 15015 * Checks if `value` is an empty object, collection, map, or set. 15016 * 15017 * Objects are considered empty if they have no own enumerable string keyed 15018 * properties. 15019 * 15020 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 15021 * jQuery-like collections are considered empty if they have a `length` of `0`. 15022 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 15023 * 15024 * @static 15025 * @memberOf _ 15026 * @since 0.1.0 15027 * @category Lang 15028 * @param {*} value The value to check. 15029 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 15030 * @example 15031 * 15032 * _.isEmpty(null); 15033 * // => true 15034 * 15035 * _.isEmpty(true); 15036 * // => true 15037 * 15038 * _.isEmpty(1); 15039 * // => true 15040 * 15041 * _.isEmpty([1, 2, 3]); 15042 * // => false 15043 * 15044 * _.isEmpty({ 'a': 1 }); 15045 * // => false 15046 */ 15047function isEmpty(value) { 15048 if (value == null) { 15049 return true; 15050 } 15051 if (isArrayLike(value) && 15052 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 15053 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 15054 return !value.length; 15055 } 15056 var tag = getTag(value); 15057 if (tag == mapTag || tag == setTag) { 15058 return !value.size; 15059 } 15060 if (isPrototype(value)) { 15061 return !baseKeys(value).length; 15062 } 15063 for (var key in value) { 15064 if (hasOwnProperty.call(value, key)) { 15065 return false;
15066 } 15067 } 15068 return true; 15069} 15070 15071module.exports = isEmpty; 15072 15073 15074/***/ }), 15075/* 282 */ 15076/***/ (function(module, exports, __webpack_require__) { 15077 15078var baseAssignValue = __webpack_require__(115), 15079 baseForOwn = __webpack_require__(112), 15080 baseIteratee = __webpack_require__(7); 15081 15082/** 15083 * Creates an object with the same keys as `object` and values generated 15084 * by running each own enumerable string keyed property of `object` thru 15085 * `iteratee`. The iteratee is invoked with three arguments: 15086 * (value, key, object). 15087 * 15088 * @static 15089 * @memberOf _ 15090 * @since 2.4.0 15091 * @category Object 15092 * @param {Object} object The object to iterate over. 15093 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15094 * @returns {Object} Returns the new mapped object. 15095 * @see _.mapKeys 15096 * @example 15097 * 15098 * var users = { 15099 * 'fred': { 'user': 'fred', 'age': 40 }, 15100 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 15101 * }; 15102 * 15103 * _.mapValues(users, function(o) { return o.age; }); 15104 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15105 * 15106 * // The `_.property` iteratee shorthand. 15107 * _.mapValues(users, 'age'); 15108 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15109 */ 15110function mapValues(object, iteratee) { 15111 var result = {}; 15112 iteratee = baseIteratee(iteratee, 3); 15113 15114 baseForOwn(object, function(value, key, object) { 15115 baseAssignValue(result, key, iteratee(value, key, object)); 15116 }); 15117 return result; 15118} 15119 15120module.exports = mapValues; 15121 15122 15123/***/ }), 15124/* 283 */ 15125/***/ (function(module, exports, __webpack_require__) { 15126 15127var arrayEach = __webpack_require__(284), 15128 baseEach = __webpack_require__(111), 15129 castFunction = __webpack_require__(285), 15130 isArray = __webpack_require__(1); 15131 15132/** 15133 * Iterates over elements of `collection` and invokes `iteratee` for each element. 15134 * The iteratee is invoked with three arguments: (value, index|key, collection). 15135 * Iteratee functions may exit iteration early by explicitly returning `false`. 15136 * 15137 * **Note:** As with other "Collections" methods, objects with a "length" 15138 * property are iterated like arrays. To avoid this behavior use `_.forIn` 15139 * or `_.forOwn` for object iteration. 15140 * 15141 * @static 15142 * @memberOf _ 15143 * @since 0.1.0 15144 * @alias each 15145 * @category Collection 15146 * @param {Array|Object} collection The collection to iterate over. 15147 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15148 * @returns {Array|Object} Returns `collection`. 15149 * @see _.forEachRight 15150 * @example 15151 * 15152 * _.forEach([1, 2], function(value) { 15153 * console.log(value); 15154 * }); 15155 * // => Logs `1` then `2`. 15156 * 15157 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 15158 * console.log(key); 15159 * }); 15160 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 15161 */ 15162function forEach(collection, iteratee) { 15163 var func = isArray(collection) ? arrayEach : baseEach; 15164 return func(collection, castFunction(iteratee)); 15165} 15166 15167module.exports = forEach; 15168 15169 15170/***/ }), 15171/* 284 */ 15172/***/ (function(module, exports) { 15173 15174/** 15175 * A specialized version of `_.forEach` for arrays without support for 15176 * iteratee shorthands. 15177 * 15178 * @private 15179 * @param {Array} [array] The array to iterate over. 15180 * @param {Function} iteratee The function invoked per iteration. 15181 * @returns {Array} Returns `array`. 15182 */ 15183function arrayEach(array, iteratee) { 15184 var index = -1, 15185 length = array == null ? 0 : array.length; 15186 15187 while (++index < length) { 15188 if (iteratee(array[index], index, array) === false) { 15189 break; 15190 } 15191 } 15192 return array; 15193} 15194 15195module.exports = arrayEach; 15196 15197 15198/***/ }), 15199/* 285 */ 15200/***/ (function(module, exports, __webpack_require__) { 15201 15202var identity = __webpack_require__(59); 15203 15204/** 15205 * Casts `value` to `identity` if it's not a function. 15206 * 15207 * @private 15208 * @param {*} value The value to inspect. 15209 * @returns {Function} Returns cast function. 15210 */ 15211function castFunction(value) { 15212 return typeof value == 'function' ? value : identity; 15213} 15214 15215module.exports = castFunction; 15216 15217 15218/***/ }), 15219/* 286 */ 15220/***/ (function(module, exports, __webpack_require__) { 15221 15222var debounce = __webpack_require__(287), 15223 isObject = __webpack_require__(6); 15224 15225/** Error message constants. */
15226var FUNC_ERROR_TEXT = 'Expected a function'; 15227 15228/** 15229 * Creates a throttled function that only invokes `func` at most once per 15230 * every `wait` milliseconds. The throttled function comes with a `cancel` 15231 * method to cancel delayed `func` invocations and a `flush` method to 15232 * immediately invoke them. Provide `options` to indicate whether `func` 15233 * should be invoked on the leading and/or trailing edge of the `wait` 15234 * timeout. The `func` is invoked with the last arguments provided to the 15235 * throttled function. Subsequent calls to the throttled function return the 15236 * result of the last `func` invocation. 15237 * 15238 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15239 * invoked on the trailing edge of the timeout only if the throttled function 15240 * is invoked more than once during the `wait` timeout. 15241 * 15242 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15243 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15244 * 15245 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15246 * for details over the differences between `_.throttle` and `_.debounce`. 15247 * 15248 * @static 15249 * @memberOf _ 15250 * @since 0.1.0 15251 * @category Function 15252 * @param {Function} func The function to throttle. 15253 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 15254 * @param {Object} [options={}] The options object. 15255 * @param {boolean} [options.leading=true] 15256 * Specify invoking on the leading edge of the timeout. 15257 * @param {boolean} [options.trailing=true] 15258 * Specify invoking on the trailing edge of the timeout. 15259 * @returns {Function} Returns the new throttled function. 15260 * @example 15261 * 15262 * // Avoid excessively updating the position while scrolling. 15263 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 15264 * 15265 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 15266 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 15267 * jQuery(element).on('click', throttled); 15268 * 15269 * // Cancel the trailing throttled invocation. 15270 * jQuery(window).on('popstate', throttled.cancel); 15271 */ 15272function throttle(func, wait, options) { 15273 var leading = true, 15274 trailing = true; 15275 15276 if (typeof func != 'function') { 15277 throw new TypeError(FUNC_ERROR_TEXT); 15278 } 15279 if (isObject(options)) { 15280 leading = 'leading' in options ? !!options.leading : leading; 15281 trailing = 'trailing' in options ? !!options.trailing : trailing; 15282 } 15283 return debounce(func, wait, { 15284 'leading': leading, 15285 'maxWait': wait, 15286 'trailing': trailing 15287 }); 15288} 15289 15290module.exports = throttle; 15291 15292 15293/***/ }), 15294/* 287 */ 15295/***/ (function(module, exports, __webpack_require__) { 15296 15297var isObject = __webpack_require__(6), 15298 now = __webpack_require__(288), 15299 toNumber = __webpack_require__(60); 15300 15301/** Error message constants. */ 15302var FUNC_ERROR_TEXT = 'Expected a function'; 15303 15304/* Built-in method references for those with the same name as other `lodash` methods. */ 15305var nativeMax = Math.max, 15306 nativeMin = Math.min; 15307 15308/** 15309 * Creates a debounced function that delays invoking `func` until after `wait` 15310 * milliseconds have elapsed since the last time the debounced function was 15311 * invoked. The debounced function comes with a `cancel` method to cancel 15312 * delayed `func` invocations and a `flush` method to immediately invoke them. 15313 * Provide `options` to indicate whether `func` should be invoked on the 15314 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 15315 * with the last arguments provided to the debounced function. Subsequent 15316 * calls to the debounced function return the result of the last `func` 15317 * invocation. 15318 * 15319 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15320 * invoked on the trailing edge of the timeout only if the debounced function 15321 * is invoked more than once during the `wait` timeout. 15322 * 15323 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15324 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15325 * 15326 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15327 * for details over the differences between `_.debounce` and `_.throttle`. 15328 * 15329 * @static 15330 * @memberOf _ 15331 * @since 0.1.0 15332 * @category Function 15333 * @param {Function} func The function to debounce. 15334 * @param {number} [wait=0] The number of milliseconds to delay. 15335 * @param {Object} [options={}] The options object. 15336 * @param {boolean} [options.leading=false] 15337 * Specify invoking on the leading edge of the timeout. 15338 * @param {number} [options.maxWait] 15339 * The maximum time `func` is allowed to be delayed before it's invoked. 15340 * @param {boolean} [options.trailing=true] 15341 * Specify invoking on the trailing edge of the timeout. 15342 * @returns {Function} Returns the new debounced function. 15343 * @example 15344 * 15345 * // Avoid costly calculations while the window size is in flux.
vendor: 4,687 bytes, lines 15346-15529
15346 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 15347 * 15348 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 15349 * jQuery(element).on('click', _.debounce(sendMail, 300, { 15350 * 'leading': true, 15351 * 'trailing': false 15352 * })); 15353 * 15354 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 15355 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 15356 * var source = new EventSource('/stream'); 15357 * jQuery(source).on('message', debounced); 15358 * 15359 * // Cancel the trailing debounced invocation. 15360 * jQuery(window).on('popstate', debounced.cancel); 15361 */ 15362function debounce(func, wait, options) { 15363 var lastArgs, 15364 lastThis, 15365 maxWait, 15366 result, 15367 timerId, 15368 lastCallTime, 15369 lastInvokeTime = 0, 15370 leading = false, 15371 maxing = false, 15372 trailing = true; 15373 15374 if (typeof func != 'function') { 15375 throw new TypeError(FUNC_ERROR_TEXT); 15376 } 15377 wait = toNumber(wait) || 0; 15378 if (isObject(options)) { 15379 leading = !!options.leading; 15380 maxing = 'maxWait' in options; 15381 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 15382 trailing = 'trailing' in options ? !!options.trailing : trailing; 15383 } 15384 15385 function invokeFunc(time) { 15386 var args = lastArgs, 15387 thisArg = lastThis; 15388 15389 lastArgs = lastThis = undefined; 15390 lastInvokeTime = time; 15391 result = func.apply(thisArg, args); 15392 return result; 15393 } 15394 15395 function leadingEdge(time) { 15396 // Reset any `maxWait` timer. 15397 lastInvokeTime = time; 15398 // Start the timer for the trailing edge. 15399 timerId = setTimeout(timerExpired, wait); 15400 // Invoke the leading edge. 15401 return leading ? invokeFunc(time) : result; 15402 } 15403 15404 function remainingWait(time) { 15405 var timeSinceLastCall = time - lastCallTime, 15406 timeSinceLastInvoke = time - lastInvokeTime, 15407 timeWaiting = wait - timeSinceLastCall; 15408 15409 return maxing 15410 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 15411 : timeWaiting; 15412 } 15413 15414 function shouldInvoke(time) { 15415 var timeSinceLastCall = time - lastCallTime, 15416 timeSinceLastInvoke = time - lastInvokeTime; 15417 15418 // Either this is the first call, activity has stopped and we're at the 15419 // trailing edge, the system time has gone backwards and we're treating 15420 // it as the trailing edge, or we've hit the `maxWait` limit. 15421 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 15422 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 15423 } 15424 15425 function timerExpired() { 15426 var time = now(); 15427 if (shouldInvoke(time)) { 15428 return trailingEdge(time); 15429 } 15430 // Restart the timer. 15431 timerId = setTimeout(timerExpired, remainingWait(time)); 15432 } 15433 15434 function trailingEdge(time) { 15435 timerId = undefined; 15436 15437 // Only invoke if we have `lastArgs` which means `func` has been 15438 // debounced at least once. 15439 if (trailing && lastArgs) { 15440 return invokeFunc(time); 15441 } 15442 lastArgs = lastThis = undefined; 15443 return result; 15444 } 15445 15446 function cancel() { 15447 if (timerId !== undefined) { 15448 clearTimeout(timerId); 15449 } 15450 lastInvokeTime = 0; 15451 lastArgs = lastCallTime = lastThis = timerId = undefined; 15452 } 15453 15454 function flush() { 15455 return timerId === undefined ? result : trailingEdge(now()); 15456 } 15457 15458 function debounced() { 15459 var time = now(), 15460 isInvoking = shouldInvoke(time); 15461 15462 lastArgs = arguments; 15463 lastThis = this; 15464 lastCallTime = time; 15465 15466 if (isInvoking) { 15467 if (timerId === undefined) { 15468 return leadingEdge(lastCallTime); 15469 } 15470 if (maxing) { 15471 // Handle invocations in a tight loop. 15472 clearTimeout(timerId); 15473 timerId = setTimeout(timerExpired, wait); 15474 return invokeFunc(lastCallTime); 15475 } 15476 } 15477 if (timerId === undefined) { 15478 timerId = setTimeout(timerExpired, wait); 15479 } 15480 return result; 15481 } 15482 debounced.cancel = cancel; 15483 debounced.flush = flush; 15484 return debounced; 15485} 15486 15487module.exports = debounce; 15488 15489 15490/***/ }), 15491/* 288 */ 15492/***/ (function(module, exports, __webpack_require__) { 15493 15494var root = __webpack_require__(5); 15495 15496/** 15497 * Gets the timestamp of the number of milliseconds that have elapsed since 15498 * the Unix epoch (1 January 1970 00:00:00 UTC). 15499 * 15500 * @static 15501 * @memberOf _ 15502 * @since 2.4.0 15503 * @category Date 15504 * @returns {number} Returns the timestamp. 15505 * @example 15506 * 15507 * _.defer(function(stamp) { 15508 * console.log(_.now() - stamp); 15509 * }, _.now()); 15510 * // => Logs the number of milliseconds it took for the deferred invocation. 15511 */ 15512var now = function() { 15513 return root.Date.now(); 15514}; 15515 15516module.exports = now; 15517 15518 15519/***/ }), 15520/* 289 */ 15521/***/ (function(module, exports, __webpack_require__) { 15522 15523"use strict"; 15524 15525 15526Object.defineProperty(exports, "__esModule", { 15527 value: true 15528}); 15529
15530var _quickEffects = __webpack_require__(290); 15531 15532Object.keys(_quickEffects).forEach(function (key) { 15533 if (key === "default" || key === "__esModule") return; 15534 Object.defineProperty(exports, key, { 15535 enumerable: true, 15536 get: function get() { 15537 return _quickEffects[key]; 15538 } 15539 }); 15540}); 15541 15542/***/ }), 15543/* 290 */ 15544/***/ (function(module, exports, __webpack_require__) { 15545 15546"use strict"; 15547 15548 15549Object.defineProperty(exports, "__esModule", { 15550 value: true 15551}); 15552exports.isQuickEffect = void 0; 15553 15554var _constants = __webpack_require__(2); 15555 15556var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); 15557 15558var isQuickEffect = function isQuickEffect(actionTypeId) { 15559 return QuickEffectsIdList.includes(actionTypeId); 15560}; 15561 15562exports.isQuickEffect = isQuickEffect; 15563 15564/***/ }), 15565/* 291 */ 15566/***/ (function(module, exports, __webpack_require__) { 15567 15568"use strict"; 15569 15570 15571var _interopRequireDefault = __webpack_require__(0); 15572 15573var _typeof2 = _interopRequireDefault(__webpack_require__(21)); 15574 15575Object.defineProperty(exports, "__esModule", { 15576 value: true 15577}); 15578exports.setStyle = setStyle; 15579exports.getStyle = getStyle; 15580exports.getProperty = getProperty; 15581exports.matchSelector = matchSelector; 15582exports.getQuerySelector = getQuerySelector; 15583exports.getValidDocument = getValidDocument; 15584exports.queryDocument = queryDocument; 15585exports.elementContains = elementContains; 15586exports.isSiblingNode = isSiblingNode; 15587exports.getChildElements = getChildElements; 15588exports.getSiblingElements = getSiblingElements; 15589exports.getRefType = getRefType; 15590exports.getClosestElement = void 0; 15591 15592var _shared = __webpack_require__(10); 15593 15594var _constants = __webpack_require__(2); 15595/* eslint-env browser */ 15596 15597 15598var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; 15599var _constants$IX2EngineC = _constants.IX2EngineConstants, 15600 IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, 15601 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 15602 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 15603 WF_PAGE = _constants$IX2EngineC.WF_PAGE; 15604 15605function setStyle(element, prop, value) { 15606 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15607 element.style[prop] = value; 15608} 15609 15610function getStyle(element, prop) { 15611 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15612 return element.style[prop]; 15613} 15614 15615function getProperty(element, prop) { 15616 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 15617 return element[prop]; 15618} 15619 15620function matchSelector(selector) { 15621 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 15622 return function (element) { 15623 return element[ELEMENT_MATCHES](selector); 15624 }; 15625} 15626 15627function getQuerySelector(_ref) { 15628 var id = _ref.id, 15629 selector = _ref.selector; 15630 15631 if (id) { 15632 var nodeId = id; 15633 15634 if (id.indexOf(IX2_ID_DELIMITER) !== -1) { 15635 var pair = id.split(IX2_ID_DELIMITER); 15636 var pageId = pair[0]; 15637 nodeId = pair[1]; // Short circuit query if we're on the wrong page 15638 // $FlowIgnore â if documentElement is null crash 15639 15640 if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { 15641 return null; 15642 } 15643 } 15644 15645 return "[data-w-id^=\"".concat(nodeId, "\"]"); 15646 } 15647 15648 return selector; 15649} 15650 15651function getValidDocument(pageId) { 15652 if (pageId == null || // $FlowIgnore â if documentElement is null crash 15653 pageId === document.documentElement.getAttribute(WF_PAGE)) { 15654 return document; 15655 } 15656 15657 return null; 15658} 15659 15660function queryDocument(baseSelector, descendantSelector) { 15661 return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); 15662} 15663 15664function elementContains(parent, child) { 15665 return parent.contains(child); 15666} 15667 15668function isSiblingNode(a, b) { 15669 return a !== b && a.parentNode === b.parentNode; 15670} 15671 15672function getChildElements(sourceElements) { 15673 var childElements = []; 15674 15675 for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { 15676 var children = sourceElements[i].children; 15677 var childCount = children.length; 15678 15679 if (!childCount) { 15680 continue; 15681 } 15682 15683 for (var j = 0; j < childCount; j++) { 15684 childElements.push(children[j]); 15685 } 15686 } 15687 15688 return childElements; 15689} // $FlowFixMe 15690 15691 15692function getSiblingElements() { 15693 var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 15694 var elements = []; 15695 var parentCache = []; 15696 15697 for (var i = 0, length = sourceElements.length; i < length; i++) { 15698 var parentNode = sourceElements[i].parentNode; 15699 15700 if (!parentNode || !parentNode.children || !parentNode.children.length) { 15701 continue; 15702 } 15703 15704 if (parentCache.indexOf(parentNode) !== -1) { 15705 continue; 15706 } 15707 15708 parentCache.push(parentNode); 15709 var el = parentNode.firstElementChild; 15710 15711 while (el != null) { 15712 if (sourceElements.indexOf(el) === -1) { 15713 elements.push(el); 15714 } 15715 15716 el = el.nextElementSibling; 15717 } 15718 } 15719 15720 return elements; 15721} 15722 15723var getClosestElement = Element.prototype.closest ? function (element, selector) { 15724 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 15725 if (!document.documentElement.contains(element)) { 15726 return null; 15727 } 15728 15729 return element.closest(selector); 15730} : function (element, selector) { 15731 // $FlowIgnore â if documentElement is null crash 15732 if (!document.documentElement.contains(element)) { 15733 return null; 15734 } 15735 15736 var el = element; 15737 15738 do { 15739 // $FlowIgnore â if documentElement is null crash 15740 if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { 15741 return el; 15742 } 15743 15744 el = el.parentNode; 15745 } while (el != null); 15746 15747 return null; 15748}; 15749exports.getClosestElement = getClosestElement; 15750 15751function getRefType(ref) { 15752 if (ref != null && (0, _typeof2["default"])(ref) == 'object') { 15753 return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; 15754 } 15755 15756 return null; 15757} 15758 15759/***/ }), 15760/* 292 */ 15761/***/ (function(module, exports, __webpack_require__) { 15762 15763"use strict"; 15764 15765 15766var _interopRequireDefault2 = __webpack_require__(0); 15767 15768var _defineProperty2 = _interopRequireDefault2(__webpack_require__(27)); 15769 15770var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); 15771 15772var _default2; 15773 15774var _interopRequireDefault = __webpack_require__(0); 15775 15776Object.defineProperty(exports, "__esModule", { 15777 value: true 15778}); 15779exports["default"] = void 0; 15780 15781var _extends2 = _interopRequireDefault(__webpack_require__(28)); 15782 15783var _flow = _interopRequireDefault(__webpack_require__(293)); 15784 15785var _get = _interopRequireDefault(__webpack_require__(35)); 15786 15787var _clamp = _interopRequireDefault(__webpack_require__(312)); 15788 15789var _constants = __webpack_require__(2); 15790 15791var _IX2VanillaEngine = __webpack_require__(114); 15792 15793var _IX2EngineActions = __webpack_require__(61); 15794 15795var _shared = __webpack_require__(10); 15796/* eslint-env browser */ 15797 15798 15799var _constants$EventTypeC = _constants.EventTypeConsts, 15800 MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, 15801 MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, 15802 MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, 15803 MOUSE_UP = _constants$EventTypeC.MOUSE_UP, 15804 MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, 15805 MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, 15806 DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, 15807 DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, 15808 SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, 15809 SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, 15810 TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, 15811 TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, 15812 NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, 15813 NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, 15814 MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, 15815 PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, 15816 SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW,
15817 SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, 15818 PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, 15819 SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, 15820 PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, 15821 ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, 15822 ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, 15823 PAGE_START = _constants$EventTypeC.PAGE_START, 15824 PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; 15825var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; 15826var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; 15827var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; 15828var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; 15829 15830var composableFilter = function composableFilter(predicate) { 15831 return function (options) { 15832 if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { 15833 return true; 15834 } 15835 15836 return options; 15837 }; 15838}; 15839 15840var isElement = composableFilter(function (_ref) { 15841 var element = _ref.element, 15842 nativeEvent = _ref.nativeEvent; 15843 return element === nativeEvent.target; 15844}); 15845var containsElement = composableFilter(function (_ref2) { 15846 var element = _ref2.element, 15847 nativeEvent = _ref2.nativeEvent; 15848 return element.contains(nativeEvent.target); 15849}); 15850var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); 15851 15852var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { 15853 if (autoStopEventId) { 15854 var _store$getState = store.getState(), 15855 ixData = _store$getState.ixData; 15856 15857 var events = ixData.events; 15858 var eventToStop = events[autoStopEventId]; 15859 15860 if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { 15861 return eventToStop; 15862 } 15863 } 15864 15865 return null; 15866}; 15867 15868var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { 15869 var store = _ref3.store, 15870 event = _ref3.event; 15871 var eventAction = event.action; 15872 var autoStopEventId = eventAction.config.autoStopEventId; 15873 return Boolean(getAutoStopEvent(store, autoStopEventId)); 15874}; 15875 15876var actionGroupCreator = function actionGroupCreator(_ref4, state) { 15877 var store = _ref4.store, 15878 event = _ref4.event, 15879 element = _ref4.element, 15880 eventStateKey = _ref4.eventStateKey; 15881 var eventAction = event.action, 15882 eventId = event.id; 15883 var _eventAction$config = eventAction.config, 15884 actionListId = _eventAction$config.actionListId, 15885 autoStopEventId = _eventAction$config.autoStopEventId; 15886 var eventToStop = getAutoStopEvent(store, autoStopEventId); 15887 15888 if (eventToStop) { 15889 (0, _IX2VanillaEngine.stopActionGroup)({ 15890 store: store, 15891 eventId: autoStopEventId, 15892 eventTarget: element, 15893 eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], 15894 actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') 15895 }); 15896 } 15897 15898 (0, _IX2VanillaEngine.stopActionGroup)({ 15899 store: store, 15900 eventId: eventId, 15901 eventTarget: element, 15902 eventStateKey: eventStateKey, 15903 actionListId: actionListId 15904 }); 15905 (0, _IX2VanillaEngine.startActionGroup)({ 15906 store: store, 15907 eventId: eventId, 15908 eventTarget: element, 15909 eventStateKey: eventStateKey, 15910 actionListId: actionListId 15911 }); 15912 return state; 15913}; // $FlowFixMe 15914 15915 15916var withFilter = function withFilter(filter, handler) { 15917 return function (options, state) { 15918 return (// $FlowFixMe 15919 filter(options, state) === true ? handler(options, state) : state 15920 ); 15921 }; 15922}; 15923 15924var baseActionGroupOptions = { 15925 handler: withFilter(isOrContainsElement, actionGroupCreator) 15926}; 15927var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { 15928 types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') 15929}); 15930var SCROLL_EVENT_TYPES = [{ 15931 target: window, 15932 types: 'resize orientationchange', 15933 throttle: true 15934}, { 15935 target: document, 15936 types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', 15937 throttle: true 15938}]; 15939var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; 15940var baseScrollActionGroupOptions = { 15941 types: SCROLL_EVENT_TYPES 15942}; 15943var AUTO_STOP_DISABLED_EVENTS = { 15944 PAGE_START: PAGE_START, 15945 PAGE_FINISH: PAGE_FINISH 15946}; 15947 15948var getDocumentState = function () { 15949 var supportOffset = window.pageXOffset !== undefined; 15950 var isCSS1Compat = document.compatMode === 'CSS1Compat'; 15951 var rootElement = isCSS1Compat ? document.documentElement : document.body; 15952 return function () { 15953 return { 15954 // $FlowFixMe 15955 scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, 15956 // $FlowFixMe 15957 scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, 15958 // required to remove elasticity in Safari scrolling. 15959 stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe 15960 supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe 15961 rootElement.scrollHeight - window.innerHeight), 15962 // $FlowFixMe 15963 scrollWidth: rootElement.scrollWidth, 15964 // $FlowFixMe 15965 scrollHeight: rootElement.scrollHeight, 15966 // $FlowFixMe 15967 clientWidth: rootElement.clientWidth, 15968 // $FlowFixMe 15969 clientHeight: rootElement.clientHeight, 15970 innerWidth: window.innerWidth, 15971 innerHeight: window.innerHeight 15972 }; 15973 }; 15974}(); 15975 15976var areBoxesIntersecting = function areBoxesIntersecting(a, b) { 15977 return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); 15978}; 15979 15980var isElementHovered = function isElementHovered(_ref5) { 15981 var element = _ref5.element, 15982 nativeEvent = _ref5.nativeEvent; 15983 var type = nativeEvent.type, 15984 target = nativeEvent.target, 15985 relatedTarget = nativeEvent.relatedTarget; 15986 var containsTarget = element.contains(target); 15987 15988 if (type === 'mouseover' && containsTarget) { 15989 return true; 15990 } 15991 15992 var containsRelated = element.contains(relatedTarget); 15993 15994 if (type === 'mouseout' && containsTarget && containsRelated) { 15995 return true; 15996 } 15997 15998 return false;
15999}; 16000 16001var isElementVisible = function isElementVisible(options) { 16002 var element = options.element, 16003 config = options.event.config; 16004 16005 var _getDocumentState = getDocumentState(), 16006 clientWidth = _getDocumentState.clientWidth, 16007 clientHeight = _getDocumentState.clientHeight; 16008 16009 var scrollOffsetValue = config.scrollOffsetValue; 16010 var scrollOffsetUnit = config.scrollOffsetUnit; 16011 var isPX = scrollOffsetUnit === 'PX'; 16012 var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; 16013 return areBoxesIntersecting(element.getBoundingClientRect(), { 16014 left: 0, 16015 top: offsetPadding, 16016 right: clientWidth, 16017 bottom: clientHeight - offsetPadding 16018 }); 16019}; 16020 16021var whenComponentActiveChange = function whenComponentActiveChange(handler) { 16022 return function (options, oldState) { 16023 var type = options.nativeEvent.type; // prettier-ignore 16024 16025 var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; 16026 var newState = (0, _extends2["default"])({}, oldState, { 16027 isActive: isActive 16028 }); 16029 16030 if (!oldState || newState.isActive !== oldState.isActive) { 16031 return handler(options, newState) || newState; 16032 } 16033 16034 return newState; 16035 }; 16036}; 16037 16038var whenElementHoverChange = function whenElementHoverChange(handler) { 16039 return function (options, oldState) { 16040 var newState = { 16041 elementHovered: isElementHovered(options) 16042 }; 16043 16044 if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { 16045 return handler(options, newState) || newState; 16046 } 16047 16048 return newState; 16049 }; 16050}; // $FlowFixMe 16051 16052 16053var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { 16054 return function (options, oldState) { 16055 var newState = (0, _extends2["default"])({}, oldState, { 16056 elementVisible: isElementVisible(options) 16057 }); 16058 16059 if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { 16060 return handler(options, newState) || newState; 16061 } 16062 16063 return newState; 16064 }; 16065}; // $FlowFixMe 16066 16067 16068var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { 16069 return function (options) { 16070 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 16071 16072 var _getDocumentState2 = getDocumentState(), 16073 scrollTop = _getDocumentState2.stiffScrollTop, 16074 scrollHeight = _getDocumentState2.scrollHeight, 16075 innerHeight = _getDocumentState2.innerHeight; 16076 16077 var _options$event = options.event, 16078 config = _options$event.config, 16079 eventTypeId = _options$event.eventTypeId; 16080 var scrollOffsetValue = config.scrollOffsetValue, 16081 scrollOffsetUnit = config.scrollOffsetUnit; 16082 var isPX = scrollOffsetUnit === 'PX'; 16083 var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. 16084 16085 var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change 16086 16087 if (oldState && oldState.percentTop === percentTop) { 16088 return oldState; 16089 } 16090 16091 var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; 16092 var scrollingDown; 16093 var scrollDirectionChanged; 16094 var anchorTop = 0; 16095 16096 if (oldState) { 16097 scrollingDown = percentTop > oldState.percentTop; 16098 scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; 16099 anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; 16100 } 16101 16102 var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; 16103 var newState = (0, _extends2["default"])({}, oldState, { 16104 percentTop: percentTop, 16105 inBounds: inBounds, 16106 anchorTop: anchorTop, 16107 scrollingDown: scrollingDown 16108 }); 16109 16110 if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { 16111 return handler(options, newState) || newState; 16112 } 16113 16114 return newState; 16115 }; 16116}; 16117 16118var pointIntersects = function pointIntersects(point, rect) { 16119 return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; 16120}; 16121 16122var whenPageLoadFinish = function whenPageLoadFinish(handler) { 16123 return function (options, oldState) { 16124 var newState = { 16125 finished: document.readyState === 'complete' 16126 }; 16127 16128 if (newState.finished && !(oldState && oldState.finshed)) { 16129 handler(options); 16130 } 16131 16132 return newState; 16133 }; 16134}; 16135 16136var whenPageLoadStart = function whenPageLoadStart(handler) { 16137 return function (options, oldState) { 16138 var newState = { 16139 started: true 16140 }; 16141 16142 if (!oldState) { 16143 handler(options); 16144 } 16145 16146 return newState; 16147 }; 16148}; 16149 16150var whenClickCountChange = function whenClickCountChange(handler) { 16151 return function (options) { 16152 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16153 clickCount: 0 16154 }; 16155 var newState = { 16156 clickCount: oldState.clickCount % 2 + 1 16157 }; 16158 16159 if (newState.clickCount !== oldState.clickCount) { 16160 return handler(options, newState) || newState; 16161 } 16162 16163 return newState; 16164 }; 16165}; 16166 16167var getComponentActiveOptions = function getComponentActiveOptions() { 16168 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16169 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16170 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16171 return state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16172 })) 16173 }); 16174}; 16175 16176var getComponentInactiveOptions = function getComponentInactiveOptions() { 16177 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16178 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16179 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16180 return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16181 })) 16182 }); 16183}; 16184 16185var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16186 handler: whenElementVisibiltyChange(function (options, state) { 16187 var elementVisible = state.elementVisible; 16188 var event = options.event, 16189 store = options.store; 16190 16191 var _store$getState2 = store.getState(), 16192 ixData = _store$getState2.ixData; 16193 16194 var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types 16195 // are registered. 16196 16197 if (!events[event.action.config.autoStopEventId] && state.triggered) { 16198 return state; 16199 } 16200 16201 if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { 16202 actionGroupCreator(options); 16203 return (0, _extends2["default"])({}, state, { 16204 triggered: true 16205 }); 16206 } else { 16207 return state; 16208 } 16209 }) 16210}); 16211var MOUSE_OUT_ROUND_THRESHOLD = 0.05; 16212 16213var _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, { 16214 types: 'ecommerce-cart-open', 16215 handler: withFilter(isOrContainsElement, actionGroupCreator) 16216}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { 16217 types: 'ecommerce-cart-close', 16218 handler: withFilter(isOrContainsElement, actionGroupCreator) 16219}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { 16220 types: 'click', 16221 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { 16222 var clickCount = _ref6.clickCount; 16223 16224 if (hasAutoStopEvent(options)) { 16225 clickCount === 1 && actionGroupCreator(options); 16226 } else { 16227 actionGroupCreator(options); 16228 } 16229 })) 16230}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { 16231 types: 'click', 16232 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { 16233 var clickCount = _ref7.clickCount; 16234 16235 if (clickCount === 2) { 16236 actionGroupCreator(options); 16237 } 16238 })) 16239}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { 16240 types: 'mousedown' 16241})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { 16242 types: 'mouseup' 16243})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { 16244 types: MOUSE_OVER_OUT_TYPES, 16245 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16246 if (state.elementHovered) { 16247 actionGroupCreator(options); 16248 } 16249 })) 16250}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { 16251 types: MOUSE_OVER_OUT_TYPES, 16252 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16253 if (!state.elementHovered) { 16254 actionGroupCreator(options); 16255 } 16256 })) 16257}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { 16258 types: 'mousemove mouseout scroll', 16259 handler: function handler( // $FlowFixMe 16260 _ref8) { 16261 var store = _ref8.store, 16262 element = _ref8.element, 16263 eventConfig = _ref8.eventConfig, 16264 nativeEvent = _ref8.nativeEvent, 16265 eventStateKey = _ref8.eventStateKey; 16266 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16267 clientX: 0, 16268 clientY: 0, 16269 pageX: 0, 16270 pageY: 0 16271 }; 16272 var basedOn = eventConfig.basedOn, 16273 selectedAxis = eventConfig.selectedAxis, 16274 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16275 reverse = eventConfig.reverse, 16276 _eventConfig$restingS = eventConfig.restingState, 16277 restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; 16278 var _nativeEvent$clientX = nativeEvent.clientX, 16279 clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, 16280 _nativeEvent$clientY = nativeEvent.clientY, 16281 clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY,
16282 _nativeEvent$pageX = nativeEvent.pageX, 16283 pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, 16284 _nativeEvent$pageY = nativeEvent.pageY, 16285 pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; 16286 var isXAxis = selectedAxis === 'X_AXIS'; 16287 var isMouseOut = nativeEvent.type === 'mouseout'; 16288 var value = restingState / 100; 16289 var namespacedParameterId = continuousParameterGroupId; 16290 var elementHovered = false; 16291 16292 switch (basedOn) { 16293 case _constants.EventBasedOn.VIEWPORT: 16294 { 16295 value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; 16296 break; 16297 } 16298 16299 case _constants.EventBasedOn.PAGE: 16300 { 16301 var _getDocumentState3 = getDocumentState(), 16302 scrollLeft = _getDocumentState3.scrollLeft, 16303 scrollTop = _getDocumentState3.scrollTop, 16304 scrollWidth = _getDocumentState3.scrollWidth, 16305 scrollHeight = _getDocumentState3.scrollHeight; 16306 16307 value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; 16308 break; 16309 } 16310 16311 case _constants.EventBasedOn.ELEMENT: 16312 default: 16313 { 16314 namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 16315 var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target 16316 16317 if (isMouseEvent && isOrContainsElement({ 16318 element: element, 16319 nativeEvent: nativeEvent 16320 }) !== true) { 16321 break; 16322 } 16323 16324 var rect = element.getBoundingClientRect(); 16325 var left = rect.left, 16326 top = rect.top, 16327 width = rect.width, 16328 height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state 16329 // against the target element's rect 16330 16331 if (!isMouseEvent && !pointIntersects({ 16332 left: clientX, 16333 top: clientY 16334 }, rect)) { 16335 break; 16336 } 16337 16338 elementHovered = true; 16339 value = isXAxis ? (clientX - left) / width : (clientY - top) / height; 16340 break; 16341 } 16342 } // cover case where the event is a mouse out, but the value is not quite at 100% 16343 16344 16345 if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { 16346 value = Math.round(value); 16347 } // Only update based on element if the mouse is moving over or has just left the element 16348 16349 16350 if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe 16351 elementHovered !== state.elementHovered) { 16352 value = reverse ? 1 - value : value; 16353 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); 16354 } 16355 16356 return { 16357 elementHovered: elementHovered, 16358 clientX: clientX, 16359 clientY: clientY, 16360 pageX: pageX, 16361 pageY: pageY 16362 }; 16363 } 16364}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { 16365 types: SCROLL_EVENT_TYPES, 16366 // $FlowFixMe 16367 handler: function handler(_ref9) { 16368 var store = _ref9.store, 16369 eventConfig = _ref9.eventConfig; 16370 var continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16371 reverse = eventConfig.reverse; 16372 16373 var _getDocumentState4 = getDocumentState(), 16374 scrollTop = _getDocumentState4.scrollTop, 16375 scrollHeight = _getDocumentState4.scrollHeight, 16376 clientHeight = _getDocumentState4.clientHeight; 16377 16378 var value = scrollTop / (scrollHeight - clientHeight); 16379 value = reverse ? 1 - value : value; 16380 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16381 } 16382}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { 16383 types: SCROLL_EVENT_TYPES, 16384 handler: function handler( // $FlowFixMe 16385 _ref10) { 16386 var element = _ref10.element, 16387 store = _ref10.store, 16388 eventConfig = _ref10.eventConfig, 16389 eventStateKey = _ref10.eventStateKey; 16390 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16391 scrollPercent: 0 16392 }; 16393 16394 var _getDocumentState5 = getDocumentState(), 16395 scrollLeft = _getDocumentState5.scrollLeft, 16396 scrollTop = _getDocumentState5.scrollTop, 16397 scrollWidth = _getDocumentState5.scrollWidth, 16398 scrollHeight = _getDocumentState5.scrollHeight, 16399 visibleHeight = _getDocumentState5.clientHeight; 16400 16401 var basedOn = eventConfig.basedOn, 16402 selectedAxis = eventConfig.selectedAxis, 16403 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16404 startsEntering = eventConfig.startsEntering, 16405 startsExiting = eventConfig.startsExiting, 16406 addEndOffset = eventConfig.addEndOffset, 16407 addStartOffset = eventConfig.addStartOffset, 16408 _eventConfig$addOffse = eventConfig.addOffsetValue, 16409 addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, 16410 _eventConfig$endOffse = eventConfig.endOffsetValue, 16411 endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; 16412 var isXAxis = selectedAxis === 'X_AXIS'; 16413 16414 if (basedOn === _constants.EventBasedOn.VIEWPORT) { 16415 var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; 16416 16417 if (value !== state.scrollPercent) { 16418 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16419 } 16420 16421 return { 16422 scrollPercent: value 16423 }; 16424 } else { 16425 var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 16426 var elementRect = element.getBoundingClientRect(); 16427 var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; 16428 var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type 16429 16430 offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; 16431 offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; 16432 var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); 16433 var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; 16434 var offsetHeight = offsetElementBottom - offsetElementTop; 16435 var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); 16436 var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); 16437 var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; 16438 16439 if (fixedScrollPerc !== state.scrollPercent) { 16440 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); 16441 } 16442 16443 return { 16444 scrollPercent: fixedScrollPerc 16445 }; 16446 } 16447 } 16448}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_V
16448IEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16449 handler: whenScrollDirectionChange(function (options, state) { 16450 if (state.scrollingDown) { 16451 actionGroupCreator(options); 16452 } 16453 }) 16454})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16455 handler: whenScrollDirectionChange(function (options, state) { 16456 if (!state.scrollingDown) { 16457 actionGroupCreator(options); 16458 } 16459 }) 16460})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { 16461 types: 'readystatechange IX2_PAGE_UPDATE', 16462 handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) 16463}), (0, _defineProperty2["default"])(_default2, PAGE_START, { 16464 types: 'readystatechange IX2_PAGE_UPDATE', 16465 handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) 16466}), _default2); 16467 16468exports["default"] = _default; 16469 16470/***/ }), 16471/* 293 */ 16472/***/ (function(module, exports, __webpack_require__) { 16473
vendor: 4,744 bytes, lines 16474-16653
16474var createFlow = __webpack_require__(294); 16475 16476/** 16477 * Creates a function that returns the result of invoking the given functions 16478 * with the `this` binding of the created function, where each successive 16479 * invocation is supplied the return value of the previous. 16480 * 16481 * @static 16482 * @memberOf _ 16483 * @since 3.0.0 16484 * @category Util 16485 * @param {...(Function|Function[])} [funcs] The functions to invoke. 16486 * @returns {Function} Returns the new composite function. 16487 * @see _.flowRight 16488 * @example 16489 * 16490 * function square(n) { 16491 * return n * n; 16492 * } 16493 * 16494 * var addSquare = _.flow([_.add, square]); 16495 * addSquare(1, 2); 16496 * // => 9 16497 */ 16498var flow = createFlow(); 16499 16500module.exports = flow; 16501 16502 16503/***/ }), 16504/* 294 */ 16505/***/ (function(module, exports, __webpack_require__) { 16506 16507var LodashWrapper = __webpack_require__(62), 16508 flatRest = __webpack_require__(295), 16509 getData = __webpack_require__(118), 16510 getFuncName = __webpack_require__(119), 16511 isArray = __webpack_require__(1), 16512 isLaziable = __webpack_require__(308); 16513 16514/** Error message constants. */ 16515var FUNC_ERROR_TEXT = 'Expected a function'; 16516 16517/** Used to compose bitmasks for function metadata. */ 16518var WRAP_CURRY_FLAG = 8, 16519 WRAP_PARTIAL_FLAG = 32, 16520 WRAP_ARY_FLAG = 128, 16521 WRAP_REARG_FLAG = 256; 16522 16523/** 16524 * Creates a `_.flow` or `_.flowRight` function. 16525 * 16526 * @private 16527 * @param {boolean} [fromRight] Specify iterating from right to left. 16528 * @returns {Function} Returns the new flow function. 16529 */ 16530function createFlow(fromRight) { 16531 return flatRest(function(funcs) { 16532 var length = funcs.length, 16533 index = length, 16534 prereq = LodashWrapper.prototype.thru; 16535 16536 if (fromRight) { 16537 funcs.reverse(); 16538 } 16539 while (index--) { 16540 var func = funcs[index]; 16541 if (typeof func != 'function') { 16542 throw new TypeError(FUNC_ERROR_TEXT); 16543 } 16544 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 16545 var wrapper = new LodashWrapper([], true); 16546 } 16547 } 16548 index = wrapper ? index : length; 16549 while (++index < length) { 16550 func = funcs[index]; 16551 16552 var funcName = getFuncName(func), 16553 data = funcName == 'wrapper' ? getData(func) : undefined; 16554 16555 if (data && isLaziable(data[0]) && 16556 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 16557 !data[4].length && data[9] == 1 16558 ) { 16559 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 16560 } else { 16561 wrapper = (func.length == 1 && isLaziable(func)) 16562 ? wrapper[funcName]() 16563 : wrapper.thru(func); 16564 } 16565 } 16566 return function() { 16567 var args = arguments, 16568 value = args[0]; 16569 16570 if (wrapper && args.length == 1 && isArray(value)) { 16571 return wrapper.plant(value).value(); 16572 } 16573 var index = 0, 16574 result = length ? funcs[index].apply(this, args) : value; 16575 16576 while (++index < length) { 16577 result = funcs[index].call(this, result); 16578 } 16579 return result; 16580 }; 16581 }); 16582} 16583 16584module.exports = createFlow; 16585 16586 16587/***/ }), 16588/* 295 */ 16589/***/ (function(module, exports, __webpack_require__) { 16590 16591var flatten = __webpack_require__(296), 16592 overRest = __webpack_require__(299), 16593 setToString = __webpack_require__(301); 16594 16595/** 16596 * A specialized version of `baseRest` which flattens the rest array. 16597 * 16598 * @private 16599 * @param {Function} func The function to apply a rest parameter to. 16600 * @returns {Function} Returns the new function. 16601 */ 16602function flatRest(func) { 16603 return setToString(overRest(func, undefined, flatten), func + ''); 16604} 16605 16606module.exports = flatRest; 16607 16608 16609/***/ }), 16610/* 296 */ 16611/***/ (function(module, exports, __webpack_require__) { 16612 16613var baseFlatten = __webpack_require__(297); 16614 16615/** 16616 * Flattens `array` a single level deep. 16617 * 16618 * @static 16619 * @memberOf _ 16620 * @since 0.1.0 16621 * @category Array 16622 * @param {Array} array The array to flatten. 16623 * @returns {Array} Returns the new flattened array. 16624 * @example 16625 * 16626 * _.flatten([1, [2, [3, [4]], 5]]); 16627 * // => [1, 2, [3, [4]], 5] 16628 */ 16629function flatten(array) { 16630 var length = array == null ? 0 : array.length; 16631 return length ? baseFlatten(array, 1) : []; 16632} 16633 16634module.exports = flatten; 16635 16636 16637/***/ }), 16638/* 297 */ 16639/***/ (function(module, exports, __webpack_require__) { 16640 16641var arrayPush = __webpack_require__(49), 16642 isFlattenable = __webpack_require__(298); 16643 16644/** 16645 * The base implementation of `_.flatten` with support for restricting flattening. 16646 * 16647 * @private 16648 * @param {Array} array The array to flatten. 16649 * @param {number} depth The maximum recursion depth. 16650 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 16651 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 16652 * @param {Array} [result=[]] The initial result value. 16653 * @returns {Array} Returns the new flattened array.
vendor: 4,491 bytes, lines 16654-16825
16654 */ 16655function baseFlatten(array, depth, predicate, isStrict, result) { 16656 var index = -1, 16657 length = array.length; 16658 16659 predicate || (predicate = isFlattenable); 16660 result || (result = []); 16661 16662 while (++index < length) { 16663 var value = array[index]; 16664 if (depth > 0 && predicate(value)) { 16665 if (depth > 1) { 16666 // Recursively flatten arrays (susceptible to call stack limits). 16667 baseFlatten(value, depth - 1, predicate, isStrict, result); 16668 } else { 16669 arrayPush(result, value); 16670 } 16671 } else if (!isStrict) { 16672 result[result.length] = value; 16673 } 16674 } 16675 return result; 16676} 16677 16678module.exports = baseFlatten; 16679 16680 16681/***/ }), 16682/* 298 */ 16683/***/ (function(module, exports, __webpack_require__) { 16684 16685var Symbol = __webpack_require__(19), 16686 isArguments = __webpack_require__(34), 16687 isArray = __webpack_require__(1); 16688 16689/** Built-in value references. */ 16690var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; 16691 16692/** 16693 * Checks if `value` is a flattenable `arguments` object or array. 16694 * 16695 * @private 16696 * @param {*} value The value to check. 16697 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 16698 */ 16699function isFlattenable(value) { 16700 return isArray(value) || isArguments(value) || 16701 !!(spreadableSymbol && value && value[spreadableSymbol]); 16702} 16703 16704module.exports = isFlattenable; 16705 16706 16707/***/ }), 16708/* 299 */ 16709/***/ (function(module, exports, __webpack_require__) { 16710 16711var apply = __webpack_require__(300); 16712 16713/* Built-in method references for those with the same name as other `lodash` methods. */ 16714var nativeMax = Math.max; 16715 16716/** 16717 * A specialized version of `baseRest` which transforms the rest array. 16718 * 16719 * @private 16720 * @param {Function} func The function to apply a rest parameter to. 16721 * @param {number} [start=func.length-1] The start position of the rest parameter. 16722 * @param {Function} transform The rest array transform. 16723 * @returns {Function} Returns the new function. 16724 */ 16725function overRest(func, start, transform) { 16726 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 16727 return function() { 16728 var args = arguments, 16729 index = -1, 16730 length = nativeMax(args.length - start, 0), 16731 array = Array(length); 16732 16733 while (++index < length) { 16734 array[index] = args[start + index]; 16735 } 16736 index = -1; 16737 var otherArgs = Array(start + 1); 16738 while (++index < start) { 16739 otherArgs[index] = args[index]; 16740 } 16741 otherArgs[start] = transform(array); 16742 return apply(func, this, otherArgs); 16743 }; 16744} 16745 16746module.exports = overRest; 16747 16748 16749/***/ }), 16750/* 300 */ 16751/***/ (function(module, exports) { 16752 16753/** 16754 * A faster alternative to `Function#apply`, this function invokes `func` 16755 * with the `this` binding of `thisArg` and the arguments of `args`. 16756 * 16757 * @private 16758 * @param {Function} func The function to invoke. 16759 * @param {*} thisArg The `this` binding of `func`. 16760 * @param {Array} args The arguments to invoke `func` with. 16761 * @returns {*} Returns the result of `func`. 16762 */ 16763function apply(func, thisArg, args) { 16764 switch (args.length) { 16765 case 0: return func.call(thisArg); 16766 case 1: return func.call(thisArg, args[0]); 16767 case 2: return func.call(thisArg, args[0], args[1]); 16768 case 3: return func.call(thisArg, args[0], args[1], args[2]); 16769 } 16770 return func.apply(thisArg, args); 16771} 16772 16773module.exports = apply; 16774 16775 16776/***/ }), 16777/* 301 */ 16778/***/ (function(module, exports, __webpack_require__) { 16779 16780var baseSetToString = __webpack_require__(302), 16781 shortOut = __webpack_require__(304); 16782 16783/** 16784 * Sets the `toString` method of `func` to return `string`. 16785 * 16786 * @private 16787 * @param {Function} func The function to modify. 16788 * @param {Function} string The `toString` result. 16789 * @returns {Function} Returns `func`. 16790 */ 16791var setToString = shortOut(baseSetToString); 16792 16793module.exports = setToString; 16794 16795 16796/***/ }), 16797/* 302 */ 16798/***/ (function(module, exports, __webpack_require__) { 16799 16800var constant = __webpack_require__(303), 16801 defineProperty = __webpack_require__(116), 16802 identity = __webpack_require__(59); 16803 16804/** 16805 * The base implementation of `setToString` without support for hot loop shorting. 16806 * 16807 * @private 16808 * @param {Function} func The function to modify. 16809 * @param {Function} string The `toString` result. 16810 * @returns {Function} Returns `func`. 16811 */ 16812var baseSetToString = !defineProperty ? identity : function(func, string) { 16813 return defineProperty(func, 'toString', { 16814 'configurable': true, 16815 'enumerable': false, 16816 'value': constant(string), 16817 'writable': true 16818 }); 16819}; 16820 16821module.exports = baseSetToString; 16822 16823 16824/***/ }), 16825/* 303 */
16826/***/ (function(module, exports) { 16827 16828/** 16829 * Creates a function that returns `value`. 16830 * 16831 * @static 16832 * @memberOf _ 16833 * @since 2.4.0 16834 * @category Util 16835 * @param {*} value The value to return from the new function. 16836 * @returns {Function} Returns the new constant function. 16837 * @example 16838 * 16839 * var objects = _.times(2, _.constant({ 'a': 1 })); 16840 * 16841 * console.log(objects); 16842 * // => [{ 'a': 1 }, { 'a': 1 }] 16843 * 16844 * console.log(objects[0] === objects[1]); 16845 * // => true 16846 */ 16847function constant(value) { 16848 return function() { 16849 return value; 16850 }; 16851} 16852 16853module.exports = constant; 16854 16855 16856/***/ }), 16857/* 304 */ 16858/***/ (function(module, exports) { 16859 16860/** Used to detect hot functions by number of calls within a span of milliseconds. */ 16861var HOT_COUNT = 800, 16862 HOT_SPAN = 16; 16863 16864/* Built-in method references for those with the same name as other `lodash` methods. */ 16865var nativeNow = Date.now; 16866 16867/** 16868 * Creates a function that'll short out and invoke `identity` instead 16869 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 16870 * milliseconds. 16871 * 16872 * @private 16873 * @param {Function} func The function to restrict. 16874 * @returns {Function} Returns the new shortable function. 16875 */ 16876function shortOut(func) { 16877 var count = 0, 16878 lastCalled = 0; 16879 16880 return function() { 16881 var stamp = nativeNow(), 16882 remaining = HOT_SPAN - (stamp - lastCalled); 16883 16884 lastCalled = stamp; 16885 if (remaining > 0) { 16886 if (++count >= HOT_COUNT) { 16887 return arguments[0]; 16888 } 16889 } else { 16890 count = 0; 16891 } 16892 return func.apply(undefined, arguments); 16893 }; 16894} 16895 16896module.exports = shortOut; 16897 16898 16899/***/ }), 16900/* 305 */ 16901/***/ (function(module, exports, __webpack_require__) { 16902 16903var WeakMap = __webpack_require__(99); 16904 16905/** Used to store function metadata. */ 16906var metaMap = WeakMap && new WeakMap; 16907 16908module.exports = metaMap; 16909 16910 16911/***/ }), 16912/* 306 */ 16913/***/ (function(module, exports) { 16914 16915/** 16916 * This method returns `undefined`. 16917 * 16918 * @static 16919 * @memberOf _ 16920 * @since 2.3.0 16921 * @category Util 16922 * @example 16923 * 16924 * _.times(2, _.noop); 16925 * // => [undefined, undefined] 16926 */ 16927function noop() { 16928 // No operation performed. 16929} 16930 16931module.exports = noop; 16932 16933 16934/***/ }), 16935/* 307 */ 16936/***/ (function(module, exports) { 16937 16938/** Used to lookup unminified function names. */ 16939var realNames = {}; 16940 16941module.exports = realNames; 16942 16943 16944/***/ }), 16945/* 308 */ 16946/***/ (function(module, exports, __webpack_require__) { 16947 16948var LazyWrapper = __webpack_require__(64), 16949 getData = __webpack_require__(118), 16950 getFuncName = __webpack_require__(119), 16951 lodash = __webpack_require__(309); 16952 16953/** 16954 * Checks if `func` has a lazy counterpart. 16955 * 16956 * @private 16957 * @param {Function} func The function to check. 16958 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 16959 * else `false`. 16960 */ 16961function isLaziable(func) { 16962 var funcName = getFuncName(func), 16963 other = lodash[funcName]; 16964 16965 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 16966 return false; 16967 } 16968 if (func === other) { 16969 return true; 16970 } 16971 var data = getData(other); 16972 return !!data && func === data[0]; 16973} 16974 16975module.exports = isLaziable; 16976 16977 16978/***/ }), 16979/* 309 */ 16980/***/ (function(module, exports, __webpack_require__) { 16981 16982var LazyWrapper = __webpack_require__(64), 16983 LodashWrapper = __webpack_require__(62), 16984 baseLodash = __webpack_require__(63), 16985 isArray = __webpack_require__(1), 16986 isObjectLike = __webpack_require__(9), 16987 wrapperClone = __webpack_require__(310); 16988 16989/** Used for built-in method references. */ 16990var objectProto = Object.prototype; 16991 16992/** Used to check objects for own properties. */ 16993var hasOwnProperty = objectProto.hasOwnProperty; 16994 16995/** 16996 * Creates a `lodash` object which wraps `value` to enable implicit method 16997 * chain sequences. Methods that operate on and return arrays, collections, 16998 * and functions can be chained together. Methods that retrieve a single value 16999 * or may return a primitive value will automatically end the chain sequence 17000 * and return the unwrapped value. Otherwise, the value must be unwrapped 17001 * with `_#value`. 17002 * 17003 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 17004 * enabled using `_.chain`. 17005 * 17006 * The execution of chained methods is lazy, that is, it's deferred until 17007 * `_#value` is implicitly or explicitly called. 17008 * 17009 * Lazy evaluation allows several methods to support shortcut fusion. 17010 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 17011 * the creation of intermediate arrays and can greatly reduce the number of 17012 * iteratee executions. Sections of a chain sequence qualify for shortcut 17013 * fusion if the section is applied to an array and iteratees accept only 17014 * one argument. The heuristic for whether a section qualifies for shortcut 17015 * fusion is subject to change. 17016 * 17017 * Chaining is supported in custom builds as long as the `_#value` method is 17018 * directly or indirectly included in the build. 17019 * 17020 * In addition to lodash methods, wrappers have `Array` and `String` methods. 17021 * 17022 * The wrapper `Array` methods are: 17023 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 17024 * 17025 * The wrapper `String` methods are: 17026 * `replace` and `split` 17027 * 17028 * The wrapper methods that support shortcut fusion are: 17029 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 17030 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 17031 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 17032 * 17033 * The chainable wrapper methods are: 17034 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 17035 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 17036 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 17037 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 17038 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 17039 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 17040 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 17041 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 17042 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 17043 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 17044 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 17045 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 17046 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 17047 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 17048 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 17049 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 17050 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 17051 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 17052 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 17053 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 17054 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 17055 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 17056 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 17057 * `zipObject`, `zipObjectDeep`, and `zipWith` 17058 * 17059 * The wrapper methods that are **not** chainable by default are:
17060 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 17061 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 17062 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 17063 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 17064 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 17065 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 17066 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 17067 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 17068 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 17069 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 17070 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 17071 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 17072 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 17073 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 17074 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 17075 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 17076 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 17077 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 17078 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 17079 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 17080 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 17081 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 17082 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 17083 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 17084 * `upperFirst`, `value`, and `words` 17085 * 17086 * @name _ 17087 * @constructor 17088 * @category Seq 17089 * @param {*} value The value to wrap in a `lodash` instance. 17090 * @returns {Object} Returns the new `lodash` wrapper instance. 17091 * @example 17092 * 17093 * function square(n) { 17094 * return n * n; 17095 * } 17096 * 17097 * var wrapped = _([1, 2, 3]); 17098 * 17099 * // Returns an unwrapped value. 17100 * wrapped.reduce(_.add); 17101 * // => 6 17102 * 17103 * // Returns a wrapped value. 17104 * var squares = wrapped.map(square); 17105 * 17106 * _.isArray(squares); 17107 * // => false 17108 * 17109 * _.isArray(squares.value()); 17110 * // => true 17111 */ 17112function lodash(value) { 17113 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 17114 if (value instanceof LodashWrapper) { 17115 return value; 17116 } 17117 if (hasOwnProperty.call(value, '__wrapped__')) { 17118 return wrapperClone(value); 17119 } 17120 } 17121 return new LodashWrapper(value); 17122} 17123 17124// Ensure wrappers are instances of `baseLodash`. 17125lodash.prototype = baseLodash.prototype; 17126lodash.prototype.constructor = lodash; 17127 17128module.exports = lodash; 17129 17130 17131/***/ }), 17132/* 310 */ 17133/***/ (function(module, exports, __webpack_require__) { 17134 17135var LazyWrapper = __webpack_require__(64), 17136 LodashWrapper = __webpack_require__(62), 17137 copyArray = __webpack_require__(311); 17138 17139/** 17140 * Creates a clone of `wrapper`. 17141 * 17142 * @private 17143 * @param {Object} wrapper The wrapper to clone. 17144 * @returns {Object} Returns the cloned wrapper. 17145 */ 17146function wrapperClone(wrapper) { 17147 if (wrapper instanceof LazyWrapper) { 17148 return wrapper.clone(); 17149 } 17150 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 17151 result.__actions__ = copyArray(wrapper.__actions__); 17152 result.__index__ = wrapper.__index__; 17153 result.__values__ = wrapper.__values__; 17154 return result; 17155} 17156 17157module.exports = wrapperClone; 17158 17159 17160/***/ }), 17161/* 311 */ 17162/***/ (function(module, exports) { 17163 17164/** 17165 * Copies the values of `source` to `array`. 17166 * 17167 * @private 17168 * @param {Array} source The array to copy values from. 17169 * @param {Array} [array=[]] The array to copy values to. 17170 * @returns {Array} Returns `array`. 17171 */ 17172function copyArray(source, array) { 17173 var index = -1, 17174 length = source.length; 17175 17176 array || (array = Array(length)); 17177 while (++index < length) { 17178 array[index] = source[index]; 17179 } 17180 return array; 17181} 17182 17183module.exports = copyArray; 17184 17185 17186/***/ }), 17187/* 312 */ 17188/***/ (function(module, exports, __webpack_require__) { 17189 17190var baseClamp = __webpack_require__(313), 17191 toNumber = __webpack_require__(60); 17192 17193/** 17194 * Clamps `number` within the inclusive `lower` and `upper` bounds. 17195 * 17196 * @static 17197 * @memberOf _ 17198 * @since 4.0.0 17199 * @category Number 17200 * @param {number} number The number to clamp. 17201 * @param {number} [lower] The lower bound. 17202 * @param {number} upper The upper bound. 17203 * @returns {number} Returns the clamped number. 17204 * @example 17205 * 17206 * _.clamp(-10, -5, 5); 17207 * // => -5 17208 * 17209 * _.clamp(10, -5, 5); 17210 * // => 5 17211 */ 17212function clamp(number, lower, upper) { 17213 if (upper === undefined) { 17214 upper = lower; 17215 lower = undefined; 17216 } 17217 if (upper !== undefined) { 17218 upper = toNumber(upper); 17219 upper = upper === upper ? upper : 0; 17220 } 17221 if (lower !== undefined) { 17222 lower = toNumber(lower); 17223 lower = lower === lower ? lower : 0; 17224 } 17225 return baseClamp(toNumber(number), lower, upper); 17226} 17227 17228module.exports = clamp; 17229 17230 17231/***/ }), 17232/* 313 */
17233/***/ (function(module, exports) { 17234 17235/** 17236 * The base implementation of `_.clamp` which doesn't coerce arguments. 17237 * 17238 * @private 17239 * @param {number} number The number to clamp. 17240 * @param {number} [lower] The lower bound. 17241 * @param {number} upper The upper bound. 17242 * @returns {number} Returns the clamped number. 17243 */ 17244function baseClamp(number, lower, upper) { 17245 if (number === number) { 17246 if (upper !== undefined) { 17247 number = number <= upper ? number : upper; 17248 } 17249 if (lower !== undefined) { 17250 number = number >= lower ? number : lower; 17251 } 17252 } 17253 return number; 17254} 17255 17256module.exports = baseClamp; 17257 17258 17259/***/ }), 17260/* 314 */ 17261/***/ (function(module, exports, __webpack_require__) { 17262 17263"use strict"; 17264 // @wf-will-never-add-flow-to-this-file 17265 17266/* globals window, document */ 17267 17268/* eslint-disable no-var */ 17269 17270/** 17271 * Webflow: Auto-select links to current page or section 17272 */ 17273 17274var Webflow = __webpack_require__(3); 17275 17276Webflow.define('links', module.exports = function ($, _) { 17277 var api = {}; 17278 var $win = $(window); 17279 var designer; 17280 var inApp = Webflow.env(); 17281 var location = window.location; 17282 var tempLink = document.createElement('a'); 17283 var linkCurrent = 'w--current'; 17284 var indexPage = /index\.(html|php)$/; 17285 var dirList = /\/$/; 17286 var anchors; 17287 var slug; // ----------------------------------- 17288 // Module methods 17289 17290 api.ready = api.design = api.preview = init; // ----------------------------------- 17291 // Private methods 17292 17293 function init() { 17294 designer = inApp && Webflow.env('design'); 17295 slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors 17296 17297 Webflow.scroll.off(scroll); 17298 anchors = []; // Test all links for a selectable href 17299 17300 var links = document.links; 17301 17302 for (var i = 0; i < links.length; ++i) { 17303 select(links[i]); 17304 } // Listen for scroll if any anchors exist 17305 17306 17307 if (anchors.length) { 17308 Webflow.scroll.on(scroll); 17309 scroll(); 17310 } 17311 } 17312 17313 function select(link) { 17314 var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); 17315 tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes 17316 17317 if (href.indexOf(':') >= 0) { 17318 return; 17319 } 17320 17321 var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page 17322 17323 if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { 17324 // Ignore any hrefs with Google Translate type hash 17325 // Example: jQuery can't parse $('#googtrans(en|es)') 17326 // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 17327 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { 17328 return; 17329 } 17330 17331 var $section = $(tempLink.hash); 17332 $section.length && anchors.push({ 17333 link: $link, 17334 sec: $section, 17335 active: false 17336 }); 17337 return; 17338 } // Ignore empty # links 17339 17340 17341 if (href === '#' || href === '') { 17342 return; 17343 } // Determine whether the link should be selected 17344 17345 17346 var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); 17347 setClass($link, linkCurrent, match); 17348 } 17349 17350 function scroll() { 17351 var viewTop = $win.scrollTop(); 17352 var viewHeight = $win.height(); // Check each anchor for a section in view 17353 17354 _.each(anchors, function (anchor) { 17355 var $link = anchor.link; 17356 var $section = anchor.sec; 17357 var top = $section.offset().top; 17358 var height = $section.outerHeight(); 17359 var offset = viewHeight * 0.5; 17360 var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; 17361 17362 if (anchor.active === active) { 17363 return; 17364 } 17365 17366 anchor.active = active; 17367 setClass($link, linkCurrent, active); 17368 }); 17369 } 17370 17371 function setClass($elem, className, add) { 17372 var exists = $elem.hasClass(className); 17373 17374 if (add && exists) { 17375 return; 17376 } 17377 17378 if (!add && !exists) { 17379 return; 17380 } 17381 17382 add ? $elem.addClass(className) : $elem.removeClass(className); 17383 } // Export module 17384 17385 17386 return api; 17387}); 17388 17389/***/ }), 17390/* 315 */ 17391/***/ (function(module, exports, __webpack_require__) { 17392 17393"use strict"; 17394 // @wf-will-never-add-flow-to-this-file 17395 17396/* globals window, document */ 17397 17398/* eslint-disable no-var */ 17399 17400/** 17401 * Webflow: Smooth scroll 17402 */ 17403 17404var Webflow = __webpack_require__(3); 17405 17406Webflow.define('scroll', module.exports = function ($) { 17407 // Native browser events & namespaces used in this module 17408 var CLICK = 'click'; 17409 var EMPTY_LINK_NS = '.wf-empty-link'; 17410 var SCROLL_NS = '.wf-scroll'; 17411 /** 17412 * A collection of namespaced events found in this module.
17413 * Namespaced events encapsulate our code, and make it safer and easier 17414 * for designers to apply custom code overrides. 17415 * @see https://api.jquery.com/on/#event-names 17416 * @typedef {Object.<string>} NamespacedEventsCollection 17417 */ 17418 17419 var NS_EVENTS = { 17420 CLICK_EMPTY: CLICK + EMPTY_LINK_NS, 17421 CLICK_SCROLL: CLICK + SCROLL_NS 17422 }; 17423 var $doc = $(document); 17424 var win = window; 17425 var loc = win.location; 17426 var history = inIframe() ? null : win.history; 17427 var validHash = /^[a-zA-Z0-9][\w:.-]*$/; 17428 var emptyHrefSelector = 'a[href="#"]'; 17429 /** 17430 * Select only links whose href: 17431 * - contains a # 17432 * - is not one of our namespaced TabLink elements 17433 * - is not _only_ a # 17434 */ 17435 17436 var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; 17437 /** 17438 * The current page url, minus the hash. 17439 * Will be set in the `ready` function 17440 */ 17441 17442 var locHref; 17443 17444 function inIframe() { 17445 try { 17446 return Boolean(win.frameElement); 17447 } catch (e) { 17448 return true; 17449 } 17450 } 17451 /** 17452 * Determine if we should execute custom scroll 17453 */ 17454 17455 17456 function validateScroll(e) { 17457 if (Webflow.env('design')) { 17458 return; 17459 } // Ignore links being used by jQuery mobile 17460 17461 17462 if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) { 17463 return; 17464 } // The href property always contains the full url so we can compare 17465 // with the documentâs location to only target links on this page. 17466 17467 17468 var parts = this.href.split('#'); 17469 var hash = parts[0] === locHref ? parts[1] : null; 17470 17471 if (hash) { 17472 findEl(hash, e); 17473 } 17474 } 17475 17476 function findEl(hash, e) { 17477 if (!validHash.test(hash)) { 17478 return; 17479 } 17480 17481 var el = $('#' + hash); 17482 17483 if (!el.length) { 17484 return; 17485 } 17486 17487 if (e) { 17488 e.preventDefault(); 17489 e.stopPropagation(); 17490 } // Push new history state 17491 17492 17493 if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. 17494 !(Webflow.env.chrome && loc.protocol === 'file:')) { 17495 var oldHash = history.state && history.state.hash; 17496 17497 if (oldHash !== hash) { 17498 history.pushState({ 17499 hash: hash 17500 }, '', '#' + hash); 17501 } 17502 } // If a fixed header exists, offset for the height 17503 17504 17505 var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; 17506 var header = $('header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'); 17507 var offset = header.css('position') === 'fixed' ? header.outerHeight() : 0; 17508 win.setTimeout(function () { 17509 scroll(el, offset); 17510 }, e ? 0 : 300); 17511 } 17512 17513 function scroll(el, offset) { 17514 var start = $(win).scrollTop(); 17515 var end = el.offset().top - offset; // If specified, scroll so that the element ends up in the middle of the viewport 17516 17517 if (el.data('scroll') === 'mid') { 17518 var available = $(win).height() - offset; 17519 var elHeight = el.outerHeight(); 17520 17521 if (elHeight < available) { 17522 end -= Math.round((available - elHeight) / 2); 17523 } 17524 } 17525 17526 var mult = 1; // Check for custom time multiplier on the body and the element 17527 17528 $('body').add(el).each(function () { 17529 var time = parseFloat($(this).attr('data-scroll-time'), 10); 17530 17531 if (!isNaN(time) && (time === 0 || time > 0)) { 17532 mult = time; 17533 } 17534 }); // Shim for IE8 and below 17535 17536 if (!Date.now) { 17537 Date.now = function () { 17538 return new Date().getTime(); 17539 }; 17540 } 17541 17542 var clock = Date.now(); 17543 17544 var animate = win.requestAnimationFrame || win.mozRequestAnimationFrame || win.webkitRequestAnimationFrame || function (fn) { 17545 win.setTimeout(fn, 15); 17546 }; 17547 17548 var duration = (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; 17549 17550 var step = function step() { 17551 var elapsed = Date.now() - clock; 17552 win.scroll(0, getY(start, end, elapsed, duration)); 17553 17554 if (elapsed <= duration) { 17555 animate(step); 17556 } 17557 }; 17558 17559 step(); 17560 } 17561 17562 function getY(start, end, elapsed, duration) { 17563 if (elapsed > duration) { 17564 return end; 17565 } 17566 17567 return start + (end - start) * ease(elapsed / duration); 17568 } 17569 17570 function ease(t) { 17571 return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 17572 } 17573 17574 function ready() { 17575 var CLICK_EMPTY = NS_EVENTS.CLICK_EMPTY, 17576 CLICK_SCROLL = NS_EVENTS.CLICK_SCROLL; 17577 locHref = loc.href.split('#')[0]; 17578 $doc.on(CLICK_SCROLL, localHrefSelector, validateScroll); 17579 /** 17580 * Prevent empty hash links from triggering scroll. 17581 * Legacy feature to preserve: use the default "#" link 17582 * to trigger an interaction, and do not want the page 17583 * to scroll to the top. 17584 */ 17585 17586 $doc.on(CLICK_EMPTY, emptyHrefSelector, function (e) { 17587 e.preventDefault(); 17588 }); 17589 } // Export module 17590 17591 17592 return { 17593 ready: ready 17594 }; 17595}); 17596 17597/***/ }), 17598/* 316 */ 17599/***/ (function(module, exports, __webpack_require__) { 17600 17601"use strict"; 17602 // @wf-will-never-add-flow-to-this-file 17603 17604/* globals document, window */ 17605 17606/* eslint-disable no-var */ 17607 17608/** 17609 * Webflow: Touch events 17610 * Supports legacy 'tap' event 17611 * Adds a 'swipe' event to desktop and mobile 17612 */ 17613 17614var Webflow = __webpack_require__(3); 17615 17616Webflow.define('touch', module.exports = function ($) { 17617 var api = {}; 17618 var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' 17619 17620 $.event.special.tap = { 17621 bindType: 'click', 17622 delegateType: 'click' 17623 }; 17624 17625 api.init = function (el) { 17626 el = typeof el === 'string' ? $(el).get(0) : el; 17627 return el ? new Touch(el) : null; 17628 }; 17629 17630 function Touch(el) { 17631 var active = false;
17632 var useTouch = false; 17633 var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); 17634 var startX; 17635 var lastX; 17636 el.addEventListener('touchstart', start, false); 17637 el.addEventListener('touchmove', move, false); 17638 el.addEventListener('touchend', end, false); 17639 el.addEventListener('touchcancel', cancel, false); 17640 el.addEventListener('mousedown', start, false); 17641 el.addEventListener('mousemove', move, false); 17642 el.addEventListener('mouseup', end, false); 17643 el.addEventListener('mouseout', cancel, false); 17644 17645 function start(evt) { 17646 // We donât handle multi-touch events yet. 17647 var touches = evt.touches; 17648 17649 if (touches && touches.length > 1) { 17650 return; 17651 } 17652 17653 active = true; 17654 17655 if (touches) { 17656 useTouch = true; 17657 startX = touches[0].clientX; 17658 } else { 17659 startX = evt.clientX; 17660 } 17661 17662 lastX = startX; 17663 } 17664 17665 function move(evt) { 17666 if (!active) { 17667 return; 17668 } 17669 17670 if (useTouch && evt.type === 'mousemove') { 17671 evt.preventDefault(); 17672 evt.stopPropagation(); 17673 return; 17674 } 17675 17676 var touches = evt.touches; 17677 var x = touches ? touches[0].clientX : evt.clientX; 17678 var velocityX = x - lastX; 17679 lastX = x; // Allow swipes while pointer is down, but prevent them during text selection 17680 17681 if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { 17682 triggerEvent('swipe', evt, { 17683 direction: velocityX > 0 ? 'right' : 'left' 17684 }); 17685 cancel(); 17686 } 17687 } 17688 17689 function end(evt) { 17690 if (!active) { 17691 return; 17692 } 17693 17694 active = false; 17695 17696 if (useTouch && evt.type === 'mouseup') { 17697 evt.preventDefault(); 17698 evt.stopPropagation(); 17699 useTouch = false; 17700 return; 17701 } 17702 } 17703 17704 function cancel() { 17705 active = false; 17706 } 17707 17708 function destroy() { 17709 el.removeEventListener('touchstart', start, false); 17710 el.removeEventListener('touchmove', move, false); 17711 el.removeEventListener('touchend', end, false); 17712 el.removeEventListener('touchcancel', cancel, false); 17713 el.removeEventListener('mousedown', start, false); 17714 el.removeEventListener('mousemove', move, false); 17715 el.removeEventListener('mouseup', end, false); 17716 el.removeEventListener('mouseout', cancel, false); 17717 el = null; 17718 } // Public instance methods 17719 17720 17721 this.destroy = destroy; 17722 } // Wrap native event to supoprt preventdefault + stopPropagation 17723 17724 17725 function triggerEvent(type, evt, data) { 17726 var newEvent = $.Event(type, { 17727 originalEvent: evt 17728 }); 17729 $(evt.target).trigger(newEvent, data); 17730 } // Listen for touch events on all nodes by default. 17731 17732 17733 api.instance = api.init(document); // Export module 17734 17735 return api; 17736}); 17737 17738/***/ }), 17739/* 317 */ 17740/***/ (function(module, exports, __webpack_require__) { 17741 17742"use strict"; 17743 // @wf-will-never-add-flow-to-this-file 17744 17745/* globals window, document */ 17746 17747/* eslint-disable no-var */ 17748 17749/** 17750 * Webflow: Dropdown component 17751 */ 17752 17753var Webflow = __webpack_require__(3); 17754 17755var IXEvents = __webpack_require__(22); 17756 17757var KEY_CODES = { 17758 ARROW_LEFT: 37, 17759 ARROW_UP: 38, 17760 ARROW_RIGHT: 39, 17761 ARROW_DOWN: 40, 17762 ESCAPE: 27, 17763 SPACE: 32, 17764 ENTER: 13, 17765 HOME: 36, 17766 END: 35 17767}; 17768var FORCE_CLOSE = true; 17769Webflow.define('dropdown', module.exports = function ($, _) { 17770 var debounce = _.debounce; 17771 var api = {}; 17772 var inApp = Webflow.env(); 17773 var inPreview = false; 17774 var inDesigner; 17775 var touch = Webflow.env.touch; 17776 var namespace = '.w-dropdown'; 17777 var openStateClassName = 'w--open'; 17778 var ix = IXEvents.triggers; 17779 var defaultZIndex = 900; // @dropdown-depth 17780 17781 var focusOutEvent = 'focusout' + namespace; 17782 var keydownEvent = 'keydown' + namespace; 17783 var mouseEnterEvent = 'mouseenter' + namespace; 17784 var mouseMoveEvent = 'mousemove' + namespace; 17785 var mouseLeaveEvent = 'mouseleave' + namespace; 17786 var mouseUpEvent = (touch ? 'click' : 'mouseup') + namespace; 17787 var closeEvent = 'w-close' + namespace; 17788 var settingEvent = 'setting' + namespace; 17789 var $doc = $(document); 17790 var $dropdowns; // ----------------------------------- 17791 // Module methods 17792 17793 api.ready = init; 17794 17795 api.design = function () { 17796 // Close all when returning from preview 17797 if (inPreview) { 17798 closeAll(); 17799 } 17800 17801 inPreview = false;
17802 init(); 17803 }; 17804 17805 api.preview = function () { 17806 inPreview = true; 17807 init(); 17808 }; // ----------------------------------- 17809 // Private methods 17810 17811 17812 function init() { 17813 inDesigner = inApp && Webflow.env('design'); // Find all instances on the page 17814 17815 $dropdowns = $doc.find(namespace); 17816 $dropdowns.each(build); 17817 } 17818 17819 function build(i, el) { 17820 var $el = $(el); // Store state in data 17821 17822 var data = $.data(el, namespace); 17823 17824 if (!data) { 17825 data = $.data(el, namespace, { 17826 open: false, 17827 el: $el, 17828 config: {}, 17829 selectedIdx: -1 17830 }); 17831 } 17832 17833 data.toggle = data.el.children('.w-dropdown-toggle'); 17834 data.list = data.el.children('.w-dropdown-list'); 17835 data.links = data.list.find('a:not(.w-dropdown .w-dropdown a)'); 17836 data.complete = complete(data); 17837 data.mouseLeave = makeMouseLeaveHandler(data); 17838 data.mouseUpOutside = outside(data); 17839 data.mouseMoveOutside = moveOutside(data); // Set config from data attributes 17840 17841 configure(data); // Store the IDs of the toggle button & list 17842 17843 var toggleId = data.toggle.attr('id'); 17844 var listId = data.list.attr('id'); // If user did not provide toggle ID, set it 17845 17846 if (!toggleId) { 17847 toggleId = 'w-dropdown-toggle-' + i; 17848 } // If user did not provide list ID, set it 17849 17850 17851 if (!listId) { 17852 listId = 'w-dropdown-list-' + i; 17853 } // Add attributes to toggle element 17854 17855 17856 data.toggle.attr('id', toggleId); 17857 data.toggle.attr('aria-controls', listId); 17858 data.toggle.attr('aria-haspopup', 'menu'); 17859 data.toggle.attr('aria-expanded', 'false'); // If toggle element is not a button 17860 17861 if (data.toggle.prop('tagName') !== 'BUTTON') { 17862 // Give it an appropriate role 17863 data.toggle.attr('role', 'button'); // And give it a tabindex if user has not provided one 17864 17865 if (!data.toggle.attr('tabindex')) { 17866 data.toggle.attr('tabindex', '0'); 17867 } 17868 } // Add attributes to list element 17869 17870 17871 data.list.attr('id', listId); 17872 data.list.attr('aria-labelledby', toggleId); 17873 /** 17874 * In macOS Safari, links don't take focus on click unless they have 17875 * a tabindex. Without this, the dropdown will break. 17876 * @see https://gist.github.com/cvrebert/68659d0333a578d75372 17877 */ 17878 17879 data.links.each(function (idx, link) { 17880 if (!link.hasAttribute('tabindex')) link.setAttribute('tabindex', '0'); 17881 }); // Remove old events 17882 17883 data.el.off(namespace); 17884 data.toggle.off(namespace); 17885 17886 if (data.nav) { 17887 data.nav.off(namespace); 17888 } 17889 17890 var initialToggler = makeToggler(data, FORCE_CLOSE); 17891 17892 if (inDesigner) { 17893 data.el.on(settingEvent, makeSettingEventHandler(data)); 17894 } 17895 17896 if (!inDesigner) { 17897 // Close in preview mode and clean the data.hovering state 17898 if (inApp) { 17899 data.hovering = false; 17900 close(data); 17901 } 17902 17903 if (data.config.hover) { 17904 data.toggle.on(mouseEnterEvent, makeMouseEnterHandler(data)); 17905 } 17906 17907 data.el.on(closeEvent, initialToggler); 17908 data.el.on(keydownEvent, makeDropdownKeydownHandler(data)); 17909 data.el.on(focusOutEvent, makeDropdownFousoutHandler(data)); 17910 data.toggle.on(mouseUpEvent, initialToggler); 17911 data.toggle.on(keydownEvent, makeToggleKeydownHandler(data)); 17912 data.nav = data.el.closest('.w-nav'); 17913 data.nav.on(closeEvent, initialToggler); 17914 } 17915 } 17916 /** 17917 * Mutate the data object with a new config property 17918 */ 17919 17920 17921 function configure(data) { 17922 // Determine if z-index should be managed 17923 var zIndex = Number(data.el.css('z-index')); 17924 data.manageZ = zIndex === defaultZIndex || zIndex === defaultZIndex + 1; 17925 data.config = { 17926 hover: (data.el.attr('data-hover') === true || data.el.attr('data-hover') === '1') && !touch, 17927 delay: Number(data.el.attr('data-delay')) || 0 17928 }; 17929 } 17930 17931 function makeSettingEventHandler(data) { 17932 return function (evt, options) { 17933 options = options || {}; 17934 configure(data); 17935 options.open === true && open(data, true); 17936 options.open === false && close(data, { 17937 immediate: true 17938 }); 17939 }; 17940 } 17941 17942 function makeToggler(data, forceClose) { 17943 return debounce(function (evt) { 17944 if (data.open || evt && evt.type === 'w-close') { 17945 return close(data, { 17946 forceClose: forceClose 17947 }); 17948 } 17949 17950 open(data); 17951 }); 17952 } 17953 17954 function open(data) { 17955 if (data.open) { 17956 return; 17957 } 17958 17959 closeOthers(data); 17960 data.open = true; 17961 data.list.addClass(openStateClassName); 17962 data.toggle.addClass(openStateClassName); 17963 data.toggle.attr('aria-expanded', 'true'); // ARIA 17964 17965 ix.intro(0, data.el[0]); 17966 Webflow.redraw.up(); // Increase z-index to keep above other managed dropdowns 17967 17968 data.manageZ && data.el.css('z-index', defaultZIndex + 1); // Listen for click outside events 17969 17970 var isEditor = Webflow.env('editor'); 17971 17972 if (!inDesigner) { 17973 $doc.on(mouseUpEvent, data.mouseUpOutside); 17974 } 17975 17976 if (data.hovering && !isEditor) { 17977 data.el.on(mouseLeaveEvent, data.mouseLeave); 17978 } 17979 17980 if (data.hovering && isEditor) { 17981 $doc.on(mouseMoveEvent, data.mouseMoveOutside); 17982 } // Clear previous delay 17983 17984 17985 window.clearTimeout(data.delayId); 17986 } 17987 17988 function close(data) { 17989 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 17990 immediate = _ref.immediate, 17991 forceClose = _ref.forceClose; 17992 17993 if (!data.open) { 17994 return; 17995 } // Do not close hover-based menus if currently hovering 17996 17997 17998 if (data.config.hover && data.hovering && !forceClose) { 17999 return; 18000 } 18001 18002 data.toggle.attr('aria-expanded', 'false'); 18003 data.open = false;
18004 var config = data.config; 18005 ix.outro(0, data.el[0]); // Stop listening for click outside events 18006 18007 $doc.off(mouseUpEvent, data.mouseUpOutside); 18008 $doc.off(mouseMoveEvent, data.mouseMoveOutside); 18009 data.el.off(mouseLeaveEvent, data.mouseLeave); // Clear previous delay 18010 18011 window.clearTimeout(data.delayId); // Skip delay during immediate 18012 18013 if (!config.delay || immediate) { 18014 return data.complete(); 18015 } // Optionally wait for delay before close 18016 18017 18018 data.delayId = window.setTimeout(data.complete, config.delay); 18019 } 18020 18021 function closeAll() { 18022 $doc.find(namespace).each(function (i, el) { 18023 $(el).triggerHandler(closeEvent); 18024 }); 18025 } 18026 18027 function closeOthers(data) { 18028 var self = data.el[0]; 18029 $dropdowns.each(function (i, other) { 18030 var $other = $(other); 18031 18032 if ($other.is(self) || $other.has(self).length) { 18033 return; 18034 } 18035 18036 $other.triggerHandler(closeEvent); 18037 }); 18038 } 18039 18040 function outside(data) { 18041 // Unbind previous click handler if it exists 18042 if (data.mouseUpOutside) { 18043 $doc.off(mouseUpEvent, data.mouseUpOutside); 18044 } // Close menu when clicked outside 18045 18046 18047 return debounce(function (evt) { 18048 if (!data.open) { 18049 return; 18050 } 18051 18052 var $target = $(evt.target); 18053 18054 if ($target.closest('.w-dropdown-toggle').length) { 18055 return; 18056 } 18057 18058 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 18059 var isEditor = Webflow.env('editor'); 18060 18061 if (isEventOutsideDropdowns) { 18062 if (isEditor) { 18063 var isEventOnDetachedSvg = $target.parents().length === 1 && $target.parents('svg').length === 1; 18064 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 18065 18066 if (isEventOnDetachedSvg || isEventOnHoverControls) { 18067 return; 18068 } 18069 } 18070 18071 close(data); 18072 } 18073 }); 18074 } 18075 18076 function complete(data) { 18077 return function () { 18078 data.list.removeClass(openStateClassName); 18079 data.toggle.removeClass(openStateClassName); // Reset z-index for managed dropdowns 18080 18081 data.manageZ && data.el.css('z-index', ''); 18082 }; 18083 } 18084 18085 function makeMouseEnterHandler(data) { 18086 return function () { 18087 data.hovering = true; 18088 open(data); 18089 }; 18090 } 18091 18092 function makeMouseLeaveHandler(data) { 18093 return function () { 18094 data.hovering = false; // We do not want the list to close upon mouseleave 18095 // if one of the links has focus 18096 18097 if (!data.links.is(':focus')) { 18098 close(data); 18099 } 18100 }; 18101 } 18102 18103 function moveOutside(data) { 18104 return debounce(function (evt) { 18105 if (!data.open) { 18106 return; 18107 } 18108 18109 var $target = $(evt.target); 18110 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 18111 18112 if (isEventOutsideDropdowns) { 18113 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 18114 var isEventOnHoverToolbar = $target.parents('.w-editor-bem-RTToolbar').length; 18115 var $editorOverlay = $('.w-editor-bem-EditorOverlay'); 18116 var isDropdownInEdition = $editorOverlay.find('.w-editor-edit-outline').length || $editorOverlay.find('.w-editor-bem-RTToolbar').length; 18117 18118 if (isEventOnHoverControls || isEventOnHoverToolbar || isDropdownInEdition) { 18119 return; 18120 } 18121 18122 data.hovering = false; 18123 close(data); 18124 } 18125 }); 18126 } 18127 18128 function makeDropdownKeydownHandler(data) { 18129 return function (evt) { 18130 // Do not respond to keyboard events in designer or preview mode, 18131 // or if the list is not open 18132 if (inDesigner || inPreview || !data.open) { 18133 return; 18134 } // Realign selectedIdx with the menu item that is currently in focus. 18135 // We need this because we do not track the `Tab` key activity! 18136 18137 18138 data.selectedIdx = data.links.index(document.activeElement); // Evaluate item-selection logic 18139 18140 switch (evt.keyCode) { 18141 case KEY_CODES.HOME: 18142 { 18143 if (!data.open) return; 18144 data.selectedIdx = 0; 18145 focusSelectedLink(data); 18146 return evt.preventDefault(); 18147 } 18148 18149 case KEY_CODES.END: 18150 { 18151 if (!data.open) return; 18152 data.selectedIdx = data.links.length - 1; 18153 focusSelectedLink(data); 18154 return evt.preventDefault(); 18155 } 18156 18157 case KEY_CODES.ESCAPE: 18158 { 18159 close(data); 18160 data.toggle.focus(); 18161 return evt.stopPropagation(); 18162 } 18163 18164 case KEY_CODES.ARROW_RIGHT: 18165 case KEY_CODES.ARROW_DOWN: 18166 { 18167 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 18168 focusSelectedLink(data); 18169 return evt.preventDefault(); 18170 } 18171 18172 case KEY_CODES.ARROW_LEFT: 18173 case KEY_CODES.ARROW_UP: 18174 {
18175 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 18176 focusSelectedLink(data); 18177 return evt.preventDefault(); 18178 } 18179 } 18180 }; 18181 } 18182 18183 function focusSelectedLink(data) { 18184 if (data.links[data.selectedIdx]) { 18185 data.links[data.selectedIdx].focus(); 18186 } 18187 } 18188 18189 function makeToggleKeydownHandler(data) { 18190 // We want to close immediately 18191 // if interacting via keyboard 18192 var toggler = makeToggler(data, FORCE_CLOSE); 18193 return function (evt) { 18194 // Do not respond to keyboard events in designer or preview 18195 if (inDesigner || inPreview) return; // If the menu is not open, we don't want 18196 // the up or Down arrows to do anything 18197 18198 if (!data.open) { 18199 switch (evt.keyCode) { 18200 case KEY_CODES.ARROW_UP: 18201 case KEY_CODES.ARROW_DOWN: 18202 { 18203 return evt.stopPropagation(); 18204 } 18205 } 18206 } 18207 18208 switch (evt.keyCode) { 18209 case KEY_CODES.SPACE: 18210 case KEY_CODES.ENTER: 18211 { 18212 toggler(); 18213 evt.stopPropagation(); 18214 return evt.preventDefault(); 18215 } 18216 } 18217 }; 18218 } 18219 18220 function makeDropdownFousoutHandler(data) { 18221 return debounce(function (evt) { 18222 var relatedTarget = evt.relatedTarget, 18223 target = evt.target; 18224 var menuEl = data.el[0]; 18225 /** 18226 * Close menu 18227 * With focusout events, the `relatedTarget` is the element that will next receive focus. 18228 * @see: https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent/relatedTarget 18229 */ 18230 18231 var menuContainsFocus = menuEl.contains(relatedTarget) || menuEl.contains(target); 18232 18233 if (!menuContainsFocus) { 18234 close(data); 18235 } 18236 18237 return evt.stopPropagation(); 18238 }); 18239 } // Export module 18240 18241 18242 return api; 18243}); 18244 18245/***/ }), 18246/* 318 */ 18247/***/ (function(module, exports, __webpack_require__) { 18248 18249"use strict"; 18250 // @wf-will-never-add-flow-to-this-file 18251 18252/* globals 18253 window, 18254 document, 18255 FormData, 18256 WEBFLOW_FORM_API_HOST, 18257 WEBFLOW_FORM_OLDIE_HOST 18258*/ 18259 18260/* eslint-disable no-var */ 18261 18262/** 18263 * Webflow: Forms 18264 */ 18265 18266var _interopRequireDefault = __webpack_require__(0); 18267 18268var _slicedToArray2 = _interopRequireDefault(__webpack_require__(319)); 18269 18270var Webflow = __webpack_require__(3); 18271 18272Webflow.define('forms', module.exports = function ($, _) { 18273 var api = {}; 18274 var $doc = $(document); 18275 var $forms; 18276 var loc = window.location; 18277 var retro = window.XDomainRequest && !window.atob; 18278 var namespace = '.w-form'; 18279 var siteId; 18280 var emailField = /e(-)?mail/i; 18281 var emailValue = /^\S+@\S+$/; 18282 var alert = window.alert; 18283 var inApp = Webflow.env(); 18284 var listening; 18285 var formUrl; 18286 var signFileUrl; // MailChimp domains: list-manage.com + mirrors 18287 18288 var chimpRegex = /list-manage[1-9]?.com/i; 18289 18290 var disconnected = _.debounce(function () { 18291 alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); 18292 }, 100); 18293 18294 api.ready = api.design = api.preview = function () { 18295 // Init forms 18296 init(); // Wire document events on published site only once 18297 18298 if (!inApp && !listening) { 18299 addListeners(); 18300 } 18301 }; 18302 18303 function init() { 18304 siteId = $('html').attr('data-wf-site'); 18305 formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit 18306 18307 if (retro && formUrl.indexOf("https://webflow.com") >= 0) { 18308 formUrl = formUrl.replace("https://webflow.com", "http://formdata.webflow.com"); 18309 } 18310 18311 signFileUrl = "".concat(formUrl, "/signFile"); 18312 $forms = $(namespace + ' form'); 18313 18314 if (!$forms.length) { 18315 return; 18316 } 18317 18318 $forms.each(build); 18319 } 18320 18321 function build(i, el) { 18322 // Store form state using namespace 18323 var $el = $(el); 18324 var data = $.data(el, namespace); 18325 18326 if (!data) { 18327 data = $.data(el, namespace, { 18328 form: $el 18329 }); 18330 } // data.form 18331 18332 18333 reset(data); 18334 var wrap = $el.closest('div.w-form'); 18335 data.done = wrap.find('> .w-form-done'); 18336 data.fail = wrap.find('> .w-form-fail'); 18337 data.fileUploads = wrap.find('.w-file-upload'); 18338 data.fileUploads.each(function (j) { 18339 initFileUpload(j, data); 18340 }); 18341 var action = data.action = $el.attr('action'); 18342 data.handler = null; 18343 data.redirect = $el.attr('data-redirect'); // MailChimp form 18344 18345 if (chimpRegex.test(action)) { 18346 data.handler = submitMailChimp; 18347 return; 18348 } // Custom form action 18349 18350 18351 if (action) { 18352 return; 18353 } // Webflow forms for hosting accounts 18354 18355 18356 if (siteId) { 18357 data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; 18358 return; 18359 } // Alert for disconnected Webflow forms 18360 18361 18362 disconnected(); 18363 } 18364 18365 function addListeners() { 18366 listening = true; // Handle form submission for Webflow forms 18367 18368 $doc.on('submit', namespace + ' form', function (evt) { 18369 var data = $.data(this, namespace); 18370 18371 if (data.handler) { 18372 data.evt = evt; 18373 data.handler(data); 18374 } 18375 }); // handle checked ui for custom checkbox and radio button 18376 18377 var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; 18378 var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; 18379 var CHECKED_CLASS = 'w--redirected-checked'; 18380 var FOCUSED_CLASS = 'w--redirected-focus'; 18381 var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; 18382 $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { 18383 $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); 18384 }); 18385 $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { 18386 $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { 18387 return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); 18388 }); 18389 var $target = $(evt.target); 18390 18391 if (!$target.hasClass('w-radio-input')) { 18392 $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); 18393 } 18394 }); 18395 CUSTOM_CONTROLS.forEach(function (_ref) { 18396 var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), 18397 controlType = _ref2[0], 18398 customControlClassName = _ref2[1]; 18399 18400 $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18401 $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); 18402 }); 18403 $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18404 $(evt.target).siblings(customControlClassName).removeClass(FOCUSED_CLASS); 18405 }); 18406 }); 18407 } // Reset data common to all submit handlers 18408 18409 18410 function reset(data) { 18411 var btn = data.btn = data.form.find(':input[type="submit"]'); 18412 data.wait = data.btn.attr('data-wait') || null; 18413 data.success = false;
18414 btn.prop('disabled', false); 18415 data.label && btn.val(data.label); 18416 } // Disable submit button 18417 18418 18419 function disableBtn(data) { 18420 var btn = data.btn; 18421 var wait = data.wait; 18422 btn.prop('disabled', true); // Show wait text and store previous label 18423 18424 if (wait) { 18425 data.label = btn.val(); 18426 btn.val(wait); 18427 } 18428 } // Find form fields, validate, and set value pairs 18429 18430 18431 function findFields(form, result) { 18432 var status = null; 18433 result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas 18434 18435 form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { 18436 var field = $(el); 18437 var type = field.attr('type'); 18438 var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); 18439 var value = field.val(); 18440 18441 if (type === 'checkbox') { 18442 value = field.is(':checked'); 18443 } else if (type === 'radio') { 18444 // Radio group value already processed 18445 if (result[name] === null || typeof result[name] === 'string') { 18446 return; 18447 } 18448 18449 value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; 18450 } 18451 18452 if (typeof value === 'string') { 18453 value = $.trim(value); 18454 } 18455 18456 result[name] = value; 18457 status = status || getStatus(field, type, name, value); 18458 }); 18459 return status; 18460 } 18461 18462 function findFileUploads(form) { 18463 var result = {}; 18464 form.find(':input[type="file"]').each(function (i, el) { 18465 var field = $(el); 18466 var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); 18467 var value = field.attr('data-value'); 18468 18469 if (typeof value === 'string') { 18470 value = $.trim(value); 18471 } 18472 18473 result[name] = value; 18474 }); 18475 return result; 18476 } 18477 18478 function getStatus(field, type, name, value) { 18479 var status = null; 18480 18481 if (type === 'password') { 18482 status = 'Passwords cannot be submitted.'; 18483 } else if (field.attr('required')) { 18484 if (!value) { 18485 status = 'Please fill out the required field: ' + name; 18486 } else if (emailField.test(field.attr('type'))) { 18487 if (!emailValue.test(value)) { 18488 status = 'Please enter a valid email address for: ' + name; 18489 } 18490 } 18491 } else if (name === 'g-recaptcha-response' && !value) { 18492 status = 'Please confirm youâre not a robot.'; 18493 } 18494 18495 return status; 18496 } 18497 18498 function exportedSubmitWebflow(data) { 18499 preventDefault(data); 18500 afterSubmit(data); 18501 } // Submit form to MailChimp 18502 18503 18504 function submitMailChimp(data) { 18505 reset(data); 18506 var form = data.form; 18507 var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead 18508 18509 if (/^https/.test(loc.href) && !/^https/.test(data.action)) { 18510 form.attr('method', 'post'); 18511 return; 18512 } 18513 18514 preventDefault(data); // Find & populate all fields 18515 18516 var status = findFields(form, payload); 18517 18518 if (status) { 18519 return alert(status); 18520 } // Disable submit button 18521 18522 18523 disableBtn(data); // Use special format for MailChimp params 18524 18525 var fullName; 18526 18527 _.each(payload, function (value, key) { 18528 if (emailField.test(key)) { 18529 payload.EMAIL = value; 18530 } 18531 18532 if (/^((full[ _-]?)?name)$/i.test(key)) { 18533 fullName = value; 18534 } 18535 18536 if (/^(first[ _-]?name)$/i.test(key)) { 18537 payload.FNAME = value; 18538 } 18539 18540 if (/^(last[ _-]?name)$/i.test(key)) { 18541 payload.LNAME = value; 18542 } 18543 }); 18544 18545 if (fullName && !payload.FNAME) { 18546 fullName = fullName.split(' '); 18547 payload.FNAME = fullName[0]; 18548 payload.LNAME = payload.LNAME || fullName[1]; 18549 } // Use the (undocumented) MailChimp jsonp api 18550 18551 18552 var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups 18553 18554 var userId = url.indexOf('u=') + 2; 18555 userId = url.substring(userId, url.indexOf('&', userId)); 18556 var listId = url.indexOf('id=') + 3; 18557 listId = url.substring(listId, url.indexOf('&', listId)); 18558 payload['b_' + userId + '_' + listId] = ''; 18559 $.ajax({ 18560 url: url, 18561 data: payload, 18562 dataType: 'jsonp' 18563 }).done(function (resp) { 18564 data.success = resp.result === 'success' || /already/.test(resp.msg); 18565 18566 if (!data.success) { 18567 console.info('MailChimp error: ' + resp.msg); 18568 } 18569 18570 afterSubmit(data); 18571 }).fail(function () { 18572 afterSubmit(data); 18573 }); 18574 } // Common callback which runs after all Ajax submissions 18575 18576 18577 function afterSubmit(data) { 18578 var form = data.form; 18579 var redirect = data.redirect; 18580 var success = data.success; // Redirect to a success url if defined 18581 18582 if (success && redirect) { 18583 Webflow.location(redirect); 18584 return; 18585 } // Show or hide status divs 18586 18587 18588 data.done.toggle(success); 18589 data.fail.toggle(!success); // Hide form on success 18590 18591 form.toggle(!success); // Reset data and enable submit button 18592 18593 reset(data); 18594 } 18595 18596 function preventDefault(data) { 18597 data.evt && data.evt.preventDefault(); 18598 data.evt = null; 18599 } 18600 18601 function initFileUpload(i, form) { 18602 if (!form.fileUploads || !form.fileUploads[i]) { 18603 return; 18604 } 18605 18606 var file; 18607 var $el = $(form.fileUploads[i]); 18608 var $defaultWrap = $el.find('> .w-file-upload-default'); 18609 var $uploadingWrap = $el.find('> .w-file-upload-uploading'); 18610 var $successWrap = $el.find('> .w-file-upload-success'); 18611 var $errorWrap = $el.find('> .w-file-upload-error'); 18612 var $input = $defaultWrap.find('.w-file-upload-input'); 18613 var $label = $defaultWrap.find('.w-file-upload-label'); 18614 var $labelChildren = $label.children(); 18615 var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); 18616 var $fileEl = $successWrap.find('.w-file-upload-file'); 18617 var $removeEl = $successWrap.find('.w-file-remove-link'); 18618 var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); 18619 var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); 18620 var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); 18621 var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); 18622 18623 if (!inApp) { 18624 $removeEl.on('click', function () { 18625 $input.removeAttr('data-value'); 18626 $input.val(''); 18627 $fileNameEl.html(''); 18628 $defaultWrap.toggle(true); 18629 $successWrap.toggle(false); 18630 }); 18631 $input.on('change', function (e) { 18632 file = e.target && e.target.files && e.target.files[0]; 18633 18634 if (!file) { 18635 return; 18636 } // Show uploading 18637 18638 18639 $defaultWrap.toggle(false); 18640 $errorWrap.toggle(false); 18641 $uploadingWrap.toggle(true); // Set filename 18642 18643 $fileNameEl.text(file.name); // Disable submit button 18644 18645 if (!isUploading()) { 18646 disableBtn(form); 18647 } 18648 18649 form.fileUploads[i].uploading = true; 18650 signFile(file, afterSign); 18651 }); // Setting input width 1px and height equal label 18652 // This is so the browser required error will show up 18653 18654 var height = $label.outerHeight(); 18655 $input.height(height); 18656 $input.width(1); 18657 } else { 18658 $input.on('click', function (e) { 18659 e.preventDefault(); 18660 }); 18661 $label.on('click', function (e) { 18662 e.preventDefault(); 18663 }); 18664 $labelChildren.on('click', function (e) { 18665 e.preventDefault(); 18666 }); 18667 } 18668 18669 function parseError(err) { 18670 var errorMsg = err.responseJSON && err.responseJSON.msg; 18671 var userError = genericErrMsg; 18672 18673 if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { 18674 userError = typeErrMsg; 18675 } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { 18676 userError = sizeErrMsg; 18677 } 18678 18679 $errorMsgEl.text(userError); 18680 $input.removeAttr('data-value'); 18681 $input.val(''); 18682 $uploadingWrap.toggle(false); 18683 $defaultWrap.toggle(true); 18684 $errorWrap.toggle(true); 18685 form.fileUploads[i].uploading = false;
18686 18687 if (!isUploading()) { 18688 reset(form); 18689 } 18690 } 18691 18692 function afterSign(err, data) { 18693 if (err) { 18694 return parseError(err); 18695 } 18696 18697 var fileName = data.fileName; 18698 var postData = data.postData; 18699 var fileId = data.fileId; 18700 var s3Url = data.s3Url; 18701 $input.attr('data-value', fileId); 18702 uploadS3(s3Url, postData, file, fileName, afterUpload); 18703 } 18704 18705 function afterUpload(err) { 18706 if (err) { 18707 return parseError(err); 18708 } // Show success 18709 18710 18711 $uploadingWrap.toggle(false); 18712 $successWrap.css('display', 'inline-block'); 18713 form.fileUploads[i].uploading = false; 18714 18715 if (!isUploading()) { 18716 reset(form); 18717 } 18718 } 18719 18720 function isUploading() { 18721 var uploads = form.fileUploads && form.fileUploads.toArray() || []; 18722 return uploads.some(function (value) { 18723 return value.uploading; 18724 }); 18725 } 18726 } 18727 18728 function signFile(file, cb) { 18729 var payload = { 18730 name: file.name, 18731 size: file.size 18732 }; 18733 $.ajax({ 18734 type: 'POST', 18735 url: signFileUrl, 18736 data: payload, 18737 dataType: 'json', 18738 crossDomain: true 18739 }).done(function (data) { 18740 cb(null, data); 18741 }).fail(function (err) { 18742 cb(err); 18743 }); 18744 } 18745 18746 function uploadS3(url, data, file, fileName, cb) { 18747 var formData = new FormData(); 18748 18749 for (var k in data) { 18750 formData.append(k, data[k]); 18751 } 18752 18753 formData.append('file', file, fileName); 18754 $.ajax({ 18755 type: 'POST', 18756 url: url, 18757 data: formData, 18758 processData: false, 18759 contentType: false 18760 }).done(function () { 18761 cb(null); 18762 }).fail(function (err) { 18763 cb(err); 18764 }); 18765 } // Export module 18766 18767 18768 return api; 18769}); 18770 18771/***/ }), 18772/* 319 */ 18773/***/ (function(module, exports, __webpack_require__) { 18774 18775var arrayWithHoles = __webpack_require__(320); 18776 18777var iterableToArrayLimit = __webpack_require__(321); 18778 18779var nonIterableRest = __webpack_require__(322); 18780 18781function _slicedToArray(arr, i) { 18782 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); 18783} 18784 18785module.exports = _slicedToArray; 18786 18787/***/ }), 18788/* 320 */ 18789/***/ (function(module, exports) { 18790 18791function _arrayWithHoles(arr) { 18792 if (Array.isArray(arr)) return arr; 18793} 18794 18795module.exports = _arrayWithHoles; 18796 18797/***/ }), 18798/* 321 */ 18799/***/ (function(module, exports) { 18800 18801function _iterableToArrayLimit(arr, i) { 18802 var _arr = []; 18803 var _n = true; 18804 var _d = false; 18805 var _e = undefined; 18806 18807 try { 18808 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 18809 _arr.push(_s.value); 18810 18811 if (i && _arr.length === i) break; 18812 } 18813 } catch (err) { 18814 _d = true; 18815 _e = err; 18816 } finally { 18817 try { 18818 if (!_n && _i["return"] != null) _i["return"](); 18819 } finally { 18820 if (_d) throw _e; 18821 } 18822 } 18823 18824 return _arr; 18825} 18826 18827module.exports = _iterableToArrayLimit; 18828 18829/***/ }), 18830/* 322 */ 18831/***/ (function(module, exports) { 18832 18833function _nonIterableRest() { 18834 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 18835} 18836 18837module.exports = _nonIterableRest; 18838 18839/***/ }), 18840/* 323 */ 18841/***/ (function(module, exports, __webpack_require__) { 18842 18843"use strict"; 18844 // @wf-will-never-add-flow-to-this-file 18845 18846/* globals window, document, jQuery */ 18847 18848/* eslint-disable no-var */ 18849 18850/** 18851 * Webflow: Lightbox component 18852 */ 18853 18854var Webflow = __webpack_require__(3); 18855 18856var CONDITION_INVISIBLE_CLASS = 'w-condition-invisible'; 18857var CONDVIS_SELECTOR = '.' + CONDITION_INVISIBLE_CLASS; 18858 18859function withoutConditionallyHidden(items) { 18860 return items.filter(function (item) { 18861 return !isConditionallyHidden(item); 18862 }); 18863} 18864 18865function isConditionallyHidden(item) { 18866 return Boolean(item.$el && item.$el.closest(CONDVIS_SELECTOR).length); 18867} 18868 18869function getPreviousVisibleIndex(start, items) { 18870 for (var i = start; i >= 0; i--) { 18871 if (!isConditionallyHidden(items[i])) { 18872 return i; 18873 } 18874 } 18875 18876 return -1; 18877} 18878 18879function getNextVisibleIndex(start, items) { 18880 for (var i = start; i <= items.length - 1; i++) { 18881 if (!isConditionallyHidden(items[i])) { 18882 return i; 18883 } 18884 } 18885 18886 return -1; 18887} 18888 18889function shouldSetArrowLeftInactive(currentIndex, items) { 18890 return getPreviousVisibleIndex(currentIndex - 1, items) === -1; 18891} 18892 18893function shouldSetArrowRightInactive(currentIndex, items) { 18894 return getNextVisibleIndex(currentIndex + 1, items) === -1; 18895} 18896 18897function createLightbox(window, document, $, container) { 18898 var tram = $.tram; 18899 var isArray = Array.isArray; 18900 var namespace = 'w-lightbox';
18901 var prefix = namespace + '-'; 18902 var prefixRegex = /(^|\s+)/g; // Array of objects describing items to be displayed. 18903 18904 var items = []; // Index of the currently displayed item. 18905 18906 var currentIndex; // Object holding references to jQuery wrapped nodes. 18907 18908 var $refs; // Instance of Spinner 18909 18910 var spinner; 18911 18912 function lightbox(thing, index) { 18913 items = isArray(thing) ? thing : [thing]; 18914 18915 if (!$refs) { 18916 lightbox.build(); 18917 } 18918 18919 if (withoutConditionallyHidden(items).length > 1) { 18920 $refs.items = $refs.empty; 18921 items.forEach(function (item) { 18922 var $thumbnail = dom('thumbnail'); 18923 var $item = dom('item').append($thumbnail); 18924 18925 if (isConditionallyHidden(item)) { 18926 $item.addClass(CONDITION_INVISIBLE_CLASS); 18927 } 18928 18929 $refs.items = $refs.items.add($item); 18930 loadImage(item.thumbnailUrl || item.url, function ($image) { 18931 if ($image.prop('width') > $image.prop('height')) { 18932 addClass($image, 'wide'); 18933 } else { 18934 addClass($image, 'tall'); 18935 } 18936 18937 $thumbnail.append(addClass($image, 'thumbnail-image')); 18938 }); 18939 }); 18940 $refs.strip.empty().append($refs.items); 18941 addClass($refs.content, 'group'); 18942 } 18943 18944 tram( // Focus the lightbox to receive keyboard events. 18945 removeClass($refs.lightbox, 'hide').trigger('focus')).add('opacity .3s').start({ 18946 opacity: 1 18947 }); // Prevent document from scrolling while lightbox is active. 18948 18949 addClass($refs.html, 'noscroll'); 18950 return lightbox.show(index || 0); 18951 } 18952 /** 18953 * Creates the DOM structure required by the lightbox. 18954 */ 18955 18956 18957 lightbox.build = function () { 18958 // In case `build` is called more than once. 18959 lightbox.destroy(); 18960 $refs = { 18961 html: $(document.documentElement), 18962 // Empty jQuery object can be used to build new ones using `.add`. 18963 empty: $() 18964 }; 18965 $refs.arrowLeft = dom('control left inactive'); 18966 $refs.arrowRight = dom('control right inactive'); 18967 $refs.close = dom('control close'); 18968 $refs.spinner = dom('spinner'); 18969 $refs.strip = dom('strip'); 18970 spinner = new Spinner($refs.spinner, prefixed('hide')); 18971 $refs.content = dom('content').append($refs.spinner, $refs.arrowLeft, $refs.arrowRight, $refs.close); 18972 $refs.container = dom('container').append($refs.content, $refs.strip); 18973 $refs.lightbox = dom('backdrop hide').append($refs.container); // We are delegating events for performance reasons and also 18974 // to not have to reattach handlers when images change. 18975 18976 $refs.strip.on('click', selector('item'), itemTapHandler); 18977 $refs.content.on('swipe', swipeHandler).on('click', selector('left'), handlerPrev).on('click', selector('right'), handlerNext).on('click', selector('close'), handlerHide).on('click', selector('image, caption'), handlerNext); 18978 $refs.container.on('click', selector('view'), handlerHide) // Prevent images from being dragged around. 18979 .on('dragstart', selector('img'), preventDefault); 18980 $refs.lightbox.on('keydown', keyHandler) // IE loses focus to inner nodes without letting us know. 18981 .on('focusin', focusThis); // The `tabindex` attribute is needed to enable non-input elements 18982 // to receive keyboard events. 18983 18984 $(container).append($refs.lightbox.prop('tabIndex', 0)); 18985 return lightbox; 18986 }; 18987 /** 18988 * Dispose of DOM nodes created by the lightbox. 18989 */ 18990 18991 18992 lightbox.destroy = function () { 18993 if (!$refs) { 18994 return; 18995 } // Event handlers are also removed. 18996 18997 18998 removeClass($refs.html, 'noscroll'); 18999 $refs.lightbox.remove(); 19000 $refs = undefined; 19001 }; 19002 /** 19003 * Show a specific item. 19004 */ 19005 19006 19007 lightbox.show = function (index) { 19008 // Bail if we are already showing this item. 19009 if (index === currentIndex) { 19010 return; 19011 } 19012 19013 var item = items[index]; 19014 19015 if (!item) { 19016 return lightbox.hide(); 19017 } 19018 19019 if (isConditionallyHidden(item)) { 19020 if (index < currentIndex) { 19021 var previousVisibleIndex = getPreviousVisibleIndex(index - 1, items); 19022 index = previousVisibleIndex > -1 ? previousVisibleIndex : index; 19023 } else { 19024 var nextVisibleIndex = getNextVisibleIndex(index + 1, items); 19025 index = nextVisibleIndex > -1 ? nextVisibleIndex : index; 19026 } 19027 19028 item = items[index]; 19029 } 19030 19031 var previousIndex = currentIndex; 19032 currentIndex = index; 19033 spinner.show(); // For videos, load an empty SVG with the video dimensions to preserve 19034 // the videoâs aspect ratio while being responsive. 19035 19036 var url = item.html && svgDataUri(item.width, item.height) || item.url; 19037 loadImage(url, function ($image) { 19038 // Make sure this is the last item requested to be shown since 19039 // images can finish loading in a different order than they were 19040 // requested in. 19041 if (index !== currentIndex) { 19042 return; 19043 } 19044 19045 var $figure = dom('figure', 'figure').append(addClass($image, 'image')); 19046 var $frame = dom('frame').append($figure); 19047 var $newView = dom('view').append($frame); 19048 var $html; 19049 var isIframe; 19050 19051 if (item.html) { 19052 $html = $(item.html);
19053 isIframe = $html.is('iframe'); 19054 19055 if (isIframe) { 19056 $html.on('load', transitionToNewView); 19057 } 19058 19059 $figure.append(addClass($html, 'embed')); 19060 } 19061 19062 if (item.caption) { 19063 $figure.append(dom('caption', 'figcaption').text(item.caption)); 19064 } 19065 19066 $refs.spinner.before($newView); 19067 19068 if (!isIframe) { 19069 transitionToNewView(); 19070 } 19071 19072 function transitionToNewView() { 19073 spinner.hide(); 19074 19075 if (index !== currentIndex) { 19076 $newView.remove(); 19077 return; 19078 } 19079 19080 toggleClass($refs.arrowLeft, 'inactive', shouldSetArrowLeftInactive(index, items)); 19081 toggleClass($refs.arrowRight, 'inactive', shouldSetArrowRightInactive(index, items)); 19082 19083 if ($refs.view) { 19084 tram($refs.view).add('opacity .3s').start({ 19085 opacity: 0 19086 }).then(remover($refs.view)); 19087 tram($newView).add('opacity .3s').add('transform .3s').set({ 19088 x: index > previousIndex ? '80px' : '-80px' 19089 }).start({ 19090 opacity: 1, 19091 x: 0 19092 }); 19093 } else { 19094 $newView.css('opacity', 1); 19095 } 19096 19097 $refs.view = $newView; 19098 19099 if ($refs.items) { 19100 removeClass($refs.items, 'active'); // Mark proper thumbnail as active 19101 19102 var $activeThumb = $refs.items.eq(index); 19103 addClass($activeThumb, 'active'); // Scroll into view 19104 19105 maybeScroll($activeThumb); 19106 } 19107 } 19108 }); 19109 return lightbox; 19110 }; 19111 /** 19112 * Hides the lightbox. 19113 */ 19114 19115 19116 lightbox.hide = function () { 19117 tram($refs.lightbox).add('opacity .3s').start({ 19118 opacity: 0 19119 }).then(hideLightbox); 19120 return lightbox; 19121 }; 19122 19123 lightbox.prev = function () { 19124 var previousVisibleIndex = getPreviousVisibleIndex(currentIndex - 1, items); 19125 19126 if (previousVisibleIndex > -1) { 19127 lightbox.show(previousVisibleIndex); 19128 } 19129 }; 19130 19131 lightbox.next = function () { 19132 var nextVisibleIndex = getNextVisibleIndex(currentIndex + 1, items); 19133 19134 if (nextVisibleIndex > -1) { 19135 lightbox.show(nextVisibleIndex); 19136 } 19137 }; 19138 19139 function createHandler(action) { 19140 return function (event) { 19141 // We only care about events triggered directly on the bound selectors. 19142 if (this !== event.target) { 19143 return; 19144 } 19145 19146 event.stopPropagation(); 19147 event.preventDefault(); 19148 action(); 19149 }; 19150 } 19151 19152 var handlerPrev = createHandler(lightbox.prev); 19153 var handlerNext = createHandler(lightbox.next); 19154 var handlerHide = createHandler(lightbox.hide); 19155 19156 var itemTapHandler = function itemTapHandler(event) { 19157 var index = $(this).index(); 19158 event.preventDefault(); 19159 lightbox.show(index); 19160 }; 19161 19162 var swipeHandler = function swipeHandler(event, data) { 19163 // Prevent scrolling. 19164 event.preventDefault(); 19165 19166 if (data.direction === 'left') { 19167 lightbox.next(); 19168 } else if (data.direction === 'right') { 19169 lightbox.prev(); 19170 } 19171 }; 19172 19173 var focusThis = function focusThis() { 19174 this.focus(); 19175 }; 19176 19177 function preventDefault(event) { 19178 event.preventDefault(); 19179 } 19180 19181 function keyHandler(event) { 19182 var keyCode = event.keyCode; // [esc] 19183 19184 if (keyCode === 27) { 19185 lightbox.hide(); // [â] 19186 } else if (keyCode === 37) { 19187 lightbox.prev(); // [â¶] 19188 } else if (keyCode === 39) { 19189 lightbox.next(); 19190 } 19191 } 19192 19193 function hideLightbox() { 19194 // If the lightbox hasn't been destroyed already 19195 if ($refs) { 19196 // Reset strip scroll, otherwise next lightbox opens scrolled to last position 19197 $refs.strip.scrollLeft(0).empty(); 19198 removeClass($refs.html, 'noscroll'); 19199 addClass($refs.lightbox, 'hide'); 19200 $refs.view && $refs.view.remove(); // Reset some stuff 19201 19202 removeClass($refs.content, 'group'); 19203 addClass($refs.arrowLeft, 'inactive'); 19204 addClass($refs.arrowRight, 'inactive'); 19205 currentIndex = $refs.view = undefined; 19206 } 19207 } 19208 19209 function loadImage(url, callback) { 19210 var $image = dom('img', 'img'); 19211 $image.one('load', function () { 19212 callback($image); 19213 }); // Start loading image. 19214 19215 $image.attr('src', url); 19216 return $image; 19217 } 19218 19219 function remover($element) { 19220 return function () { 19221 $element.remove(); 19222 }; 19223 } 19224 19225 function maybeScroll($item) { 19226 var itemElement = $item.get(0); 19227 var stripElement = $refs.strip.get(0); 19228 var itemLeft = itemElement.offsetLeft; 19229 var itemWidth = itemElement.clientWidth; 19230 var stripScrollLeft = stripElement.scrollLeft; 19231 var stripWidth = stripElement.clientWidth; 19232 var stripScrollLeftMax = stripElement.scrollWidth - stripWidth; 19233 var newScrollLeft; 19234 19235 if (itemLeft < stripScrollLeft) { 19236 newScrollLeft = Math.max(0, itemLeft + itemWidth - stripWidth); 19237 } else if (itemLeft + itemWidth > stripWidth + stripScrollLeft) { 19238 newScrollLeft = Math.min(itemLeft, stripScrollLeftMax); 19239 } 19240 19241 if (newScrollLeft != null) { 19242 tram($refs.strip).add('scroll-left 500ms').start({ 19243 'scroll-left': newScrollLeft 19244 }); 19245 } 19246 } 19247 /** 19248 * Spinner 19249 */ 19250 19251 19252 function Spinner($spinner, className, delay) { 19253 this.$element = $spinner; 19254 this.className = className; 19255 this.delay = delay || 200; 19256 this.hide(); 19257 } 19258 19259 Spinner.prototype.show = function () { 19260 // eslint-disable-next-line no-shadow 19261 var spinner = this; // Bail if we are already showing the spinner. 19262 19263 if (spinner.timeoutId) { 19264 return; 19265 } 19266 19267 spinner.timeoutId = setTimeout(function () { 19268 spinner.$element.removeClass(spinner.className); // eslint-disable-next-line webflow/no-delete 19269 19270 delete spinner.timeoutId; 19271 }, spinner.delay); 19272 }; 19273 19274 Spinner.prototype.hide = function () { 19275 // eslint-disable-next-line no-shadow 19276 var spinner = this; 19277 19278 if (spinner.timeoutId) { 19279 clearTimeout(spinner.timeoutId); // eslint-disable-next-line webflow/no-delete 19280 19281 delete spinner.timeoutId; 19282 return; 19283 } 19284 19285 spinner.$element.addClass(spinner.className); 19286 }; 19287 19288 function prefixed(string, isSelector) { 19289 return string.replace(prefixRegex, (isSelector ? ' .' : ' ') + prefix); 19290 } 19291 19292 function selector(string) { 19293 return prefixed(string, true); 19294 } 19295 /** 19296 * jQuery.addClass with auto-prefixing 19297 * @param {jQuery} Element to add class to 19298 * @param {string}
19298 Class name that will be prefixed and added to element 19299 * @return {jQuery} 19300 */ 19301 19302 19303 function addClass($element, className) { 19304 return $element.addClass(prefixed(className)); 19305 } 19306 /** 19307 * jQuery.removeClass with auto-prefixing 19308 * @param {jQuery} Element to remove class from 19309 * @param {string} Class name that will be prefixed and removed from element 19310 * @return {jQuery} 19311 */ 19312 19313 19314 function removeClass($element, className) { 19315 return $element.removeClass(prefixed(className)); 19316 } 19317 /** 19318 * jQuery.toggleClass with auto-prefixing 19319 * @param {jQuery} Element where class will be toggled 19320 * @param {string} Class name that will be prefixed and toggled 19321 * @param {boolean} Optional boolean that determines if class will be added or removed 19322 * @return {jQuery} 19323 */ 19324 19325 19326 function toggleClass($element, className, shouldAdd) { 19327 return $element.toggleClass(prefixed(className), shouldAdd); 19328 } 19329 /** 19330 * Create a new DOM element wrapped in a jQuery object, 19331 * decorated with our custom methods. 19332 * @param {string} className 19333 * @param {string} [tag] 19334 * @return {jQuery} 19335 */ 19336 19337 19338 function dom(className, tag) { 19339 return addClass($(document.createElement(tag || 'div')), className); 19340 } 19341 19342 function svgDataUri(width, height) { 19343 var svg = '<svg xmlns="http://www.w3.org/2000/svg" width="' + width + '" height="' + height + '"/>'; 19344 return 'data:image/svg+xml;charset=utf-8,' + encodeURI(svg); 19345 } // Compute some dimensions manually for iOS < 8, because of buggy support for VH. 19346 // Also, Android built-in browser does not support viewport units. 19347 19348 19349 (function () { 19350 var ua = window.navigator.userAgent; 19351 var iOSRegex = /(iPhone|iPad|iPod);[^OS]*OS (\d)/; 19352 var iOSMatches = ua.match(iOSRegex); 19353 var android = ua.indexOf('Android ') > -1 && ua.indexOf('Chrome') === -1; 19354 19355 if (!android && (!iOSMatches || iOSMatches[2] > 7)) { 19356 return; 19357 } 19358 19359 var styleNode = document.createElement('style'); 19360 document.head.appendChild(styleNode); 19361 window.addEventListener('resize', refresh, true); 19362 19363 function refresh() { 19364 var vh = window.innerHeight; 19365 var vw = window.innerWidth; 19366 var content = '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' + 'height:' + vh + 'px' + '}' + '.w-lightbox-view {' + 'width:' + vw + 'px' + '}' + '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' + 'height:' + 0.86 * vh + 'px' + '}' + '.w-lightbox-image {' + 'max-width:' + vw + 'px;' + 'max-height:' + vh + 'px' + '}' + '.w-lightbox-group .w-lightbox-image {' + 'max-height:' + 0.86 * vh + 'px' + '}' + '.w-lightbox-strip {' + 'padding: 0 ' + 0.01 * vh + 'px' + '}' + '.w-lightbox-item {' + 'width:' + 0.1 * vh + 'px;' + 'padding:' + 0.02 * vh + 'px ' + 0.01 * vh + 'px' + '}' + '.w-lightbox-thumbnail {' + 'height:' + 0.1 * vh + 'px' + '}' + '@media (min-width: 768px) {' + '.w-lightbox-content, .w-lightbox-view, .w-lightbox-view:before {' + 'height:' + 0.96 * vh + 'px' + '}' + '.w-lightbox-content {' + 'margin-top:' + 0.02 * vh + 'px' + '}' + '.w-lightbox-group, .w-lightbox-group .w-lightbox-view, .w-lightbox-group .w-lightbox-view:before {' + 'height:' + 0.84 * vh + 'px' + '}' + '.w-lightbox-image {' + 'max-width:' + 0.96 * vw + 'px;' + 'max-height:' + 0.96 * vh + 'px' + '}' + '.w-lightbox-group .w-lightbox-image {' + 'max-width:' + 0.823 * vw + 'px;' + 'max-height:' + 0.84 * vh + 'px' + '}' + '}'; 19367 styleNode.textContent = content; 19368 } 19369 19370 refresh(); 19371 })(); 19372 19373 return lightbox; 19374} 19375 19376Webflow.define('lightbox', module.exports = function ($) { 19377 var api = {}; 19378 var inApp = Webflow.env(); 19379 var lightbox = createLightbox(window, document, $, inApp ? '#lightbox-mountpoint' : 'body'); 19380 var $doc = $(document); 19381 var $lightboxes; 19382 var designer; 19383 var namespace = '.w-lightbox'; 19384 var groups; // ----------------------------------- 19385 // Module methods 19386 19387 api.ready = api.design = api.preview = init; // ----------------------------------- 19388 // Private methods 19389 19390 function init() { 19391 designer = inApp && Webflow.env('design'); // Reset Lightbox 19392 19393 lightbox.destroy(); // Reset groups 19394 19395 groups = {}; // Find all instances on the page 19396 19397 $lightboxes = $doc.find(namespace); // Instantiate all lighboxes 19398 19399 $lightboxes.webflowLightBox(); 19400 } 19401 19402 jQuery.fn.extend({ 19403 webflowLightBox: function webflowLightBox() { 19404 var $el = this; 19405 $.each($el, function (i, el) { 19406 // Store state in data 19407 var data = $.data(el, namespace); 19408 19409 if (!data) { 19410 data = $.data(el, namespace, { 19411 el: $(el), 19412 mode: 'images', 19413 images: [], 19414 embed: '' 19415 }); 19416 } // Remove old events 19417 19418 19419 data.el.off(namespace); // Set config from json script tag 19420 19421 configure(data); // Add events based on mode 19422 19423 if (designer) { 19424 data.el.on('setting' + namespace, configure.bind(null, data)); 19425 } else {
19426 data.el.on('click' + namespace, clickHandler(data)) // Prevent page scrolling to top when clicking on lightbox triggers. 19427 .on('click' + namespace, function (e) { 19428 e.preventDefault(); 19429 }); 19430 } 19431 }); 19432 } 19433 }); 19434 19435 function configure(data) { 19436 var json = data.el.children('.w-json').html(); 19437 var groupName; 19438 var groupItems; 19439 19440 if (!json) { 19441 data.items = []; 19442 return; 19443 } 19444 19445 try { 19446 json = JSON.parse(json); 19447 } catch (e) { 19448 console.error('Malformed lightbox JSON configuration.', e); 19449 } 19450 19451 supportOldLightboxJson(json); 19452 json.items.forEach(function (item) { 19453 item.$el = data.el; 19454 }); 19455 groupName = json.group; 19456 19457 if (groupName) { 19458 groupItems = groups[groupName]; 19459 19460 if (!groupItems) { 19461 groupItems = groups[groupName] = []; 19462 } 19463 19464 data.items = groupItems; 19465 19466 if (json.items.length) { 19467 data.index = groupItems.length; 19468 groupItems.push.apply(groupItems, json.items); 19469 } 19470 } else { 19471 data.items = json.items; 19472 data.index = 0; 19473 } 19474 } 19475 19476 function clickHandler(data) { 19477 return function () { 19478 data.items.length && lightbox(data.items, data.index || 0); 19479 }; 19480 } 19481 19482 function supportOldLightboxJson(data) { 19483 if (data.images) { 19484 data.images.forEach(function (item) { 19485 item.type = 'image'; 19486 }); 19487 data.items = data.images; 19488 } 19489 19490 if (data.embed) { 19491 data.embed.type = 'video'; 19492 data.items = [data.embed]; 19493 } 19494 19495 if (data.groupId) { 19496 data.group = data.groupId; 19497 } 19498 } // Export module 19499 19500 19501 return api; 19502}); 19503 19504/***/ }), 19505/* 324 */ 19506/***/ (function(module, exports, __webpack_require__) { 19507 19508"use strict"; 19509 // @wf-will-never-add-flow-to-this-file 19510 19511/* globals window, document */ 19512 19513/* eslint-disable no-var */ 19514 19515/** 19516 * Webflow: Navbar component 19517 */ 19518 19519var Webflow = __webpack_require__(3); 19520 19521var IXEvents = __webpack_require__(22); 19522 19523var KEY_CODES = { 19524 ARROW_LEFT: 37, 19525 ARROW_UP: 38, 19526 ARROW_RIGHT: 39, 19527 ARROW_DOWN: 40, 19528 ESCAPE: 27, 19529 SPACE: 32, 19530 ENTER: 13, 19531 HOME: 36, 19532 END: 35 19533}; 19534Webflow.define('navbar', module.exports = function ($, _) { 19535 var api = {}; 19536 var tram = $.tram; 19537 var $win = $(window); 19538 var $doc = $(document); 19539 var debounce = _.debounce; 19540 var $body; 19541 var $navbars; 19542 var designer; 19543 var inEditor; 19544 var inApp = Webflow.env(); 19545 var overlay = '<div class="w-nav-overlay" data-wf-ignore />'; 19546 var namespace = '.w-nav'; 19547 var navbarOpenedButton = 'w--open'; 19548 var navbarOpenedDropdown = 'w--nav-dropdown-open'; 19549 var navbarOpenedDropdownToggle = 'w--nav-dropdown-toggle-open'; 19550 var navbarOpenedDropdownList = 'w--nav-dropdown-list-open'; 19551 var navbarOpenedLink = 'w--nav-link-open'; 19552 var ix = IXEvents.triggers; 19553 var menuSibling = $(); // ----------------------------------- 19554 // Module methods 19555 19556 api.ready = api.design = api.preview = init; 19557 19558 api.destroy = function () { 19559 menuSibling = $(); 19560 removeListeners(); 19561 19562 if ($navbars && $navbars.length) { 19563 $navbars.each(teardown); 19564 } 19565 }; // ----------------------------------- 19566 // Private methods 19567 19568 19569 function init() { 19570 designer = inApp && Webflow.env('design'); 19571 inEditor = Webflow.env('editor'); 19572 $body = $(document.body); // Find all instances on the page 19573 19574 $navbars = $doc.find(namespace); 19575 19576 if (!$navbars.length) { 19577 return; 19578 } 19579 19580 $navbars.each(build); // Wire events 19581 19582 removeListeners(); 19583 addListeners(); 19584 } 19585 19586 function removeListeners() { 19587 Webflow.resize.off(resizeAll); 19588 } 19589 19590 function addListeners() { 19591 Webflow.resize.on(resizeAll); 19592 } 19593 19594 function resizeAll() { 19595 $navbars.each(resize); 19596 } 19597 19598 function build(i, el) { 19599 var $el = $(el); // Store state in data 19600 19601 var data = $.data(el, namespace); 19602 19603 if (!data) { 19604 data = $.data(el, namespace, { 19605 open: false, 19606 el: $el, 19607 config: {}, 19608 selectedIdx: -1 19609 }); 19610 } 19611 19612 data.menu = $el.find('.w-nav-menu'); 19613 data.links = data.menu.find('.w-nav-link'); 19614 data.dropdowns = data.menu.find('.w-dropdown'); 19615 data.dropdownToggle = data.menu.find('.w-dropdown-toggle'); 19616 data.dropdownList = data.menu.find('.w-dropdown-list'); 19617 data.button = $el.find('.w-nav-button'); 19618 data.container = $el.find('.w-container'); 19619 data.overlayContainerId = 'w-nav-overlay-' + i; 19620 data.outside = outside(data); // If the brand links exists and is set to link to the homepage, the 19621 // default setting, then add an aria-label 19622 19623 var navBrandLink = $el.find('.w-nav-brand'); 19624 19625 if (navBrandLink && navBrandLink.attr('href') === '/' && navBrandLink.attr('aria-label') == null) { 19626 navBrandLink.attr('aria-label', 'home'); 19627 } // VoiceOver bug, when items that disallow user selection are focused 19628 // VoiceOver gets confused and scrolls to the end of the page. ¯\_(ã)_/¯ 19629 19630 19631 data.button.attr('style', '-webkit-user-select: text;'); // Add attributes to toggle element 19632 19633 if (data.button.attr('aria-label') == null) { 19634 data.button.attr('aria-label', 'menu'); 19635 } 19636 19637 data.button.attr('role', 'button'); 19638 data.button.attr('tabindex', '0'); 19639 data.button.attr('aria-controls', data.overlayContainerId); 19640 data.button.attr('aria-haspopup', 'menu'); 19641 data.button.attr('aria-expanded', 'false'); // Remove old events 19642 19643 data.el.off(namespace); 19644 data.button.off(namespace); 19645 data.menu.off(namespace); // Set config from data attributes 19646 19647 configure(data); // Add events based on mode 19648 19649 if (designer) { 19650 removeOverlay(data); 19651 data.el.on('setting' + namespace, handler(data)); 19652 } else { 19653 addOverlay(data);
19654 data.button.on('click' + namespace, toggle(data)); 19655 data.menu.on('click' + namespace, 'a', navigate(data)); 19656 data.button.on('keydown' + namespace, makeToggleButtonKeyboardHandler(data)); 19657 data.el.on('keydown' + namespace, makeLinksKeyboardHandler(data)); 19658 } // Trigger initial resize 19659 19660 19661 resize(i, el); 19662 } 19663 19664 function teardown(i, el) { 19665 var data = $.data(el, namespace); 19666 19667 if (data) { 19668 removeOverlay(data); 19669 $.removeData(el, namespace); 19670 } 19671 } 19672 19673 function removeOverlay(data) { 19674 if (!data.overlay) { 19675 return; 19676 } 19677 19678 close(data, true); 19679 data.overlay.remove(); 19680 data.overlay = null; 19681 } 19682 19683 function addOverlay(data) { 19684 if (data.overlay) { 19685 return; 19686 } 19687 19688 data.overlay = $(overlay).appendTo(data.el); 19689 data.overlay.attr('id', data.overlayContainerId); 19690 data.parent = data.menu.parent(); 19691 close(data, true); 19692 } 19693 19694 function configure(data) { 19695 var config = {}; 19696 var old = data.config || {}; // Set config options from data attributes 19697 19698 var animation = config.animation = data.el.attr('data-animation') || 'default'; 19699 config.animOver = /^over/.test(animation); 19700 config.animDirect = /left$/.test(animation) ? -1 : 1; // Re-open menu if the animation type changed 19701 19702 if (old.animation !== animation) { 19703 data.open && _.defer(reopen, data); 19704 } 19705 19706 config.easing = data.el.attr('data-easing') || 'ease'; 19707 config.easing2 = data.el.attr('data-easing2') || 'ease'; 19708 var duration = data.el.attr('data-duration'); 19709 config.duration = duration != null ? Number(duration) : 400; 19710 config.docHeight = data.el.attr('data-doc-height'); // Store config in data 19711 19712 data.config = config; 19713 } 19714 19715 function handler(data) { 19716 return function (evt, options) { 19717 options = options || {}; 19718 var winWidth = $win.width(); 19719 configure(data); 19720 options.open === true && open(data, true); 19721 options.open === false && close(data, true); // Reopen if media query changed after setting 19722 19723 data.open && _.defer(function () { 19724 if (winWidth !== $win.width()) { 19725 reopen(data); 19726 } 19727 }); 19728 }; 19729 } 19730 19731 function makeToggleButtonKeyboardHandler(data) { 19732 return function (evt) { 19733 switch (evt.keyCode) { 19734 case KEY_CODES.SPACE: 19735 case KEY_CODES.ENTER: 19736 { 19737 // Toggle returns a function 19738 toggle(data)(); 19739 evt.preventDefault(); 19740 return evt.stopPropagation(); 19741 } 19742 19743 case KEY_CODES.ESCAPE: 19744 { 19745 close(data); 19746 evt.preventDefault(); 19747 return evt.stopPropagation(); 19748 } 19749 19750 case KEY_CODES.ARROW_RIGHT: 19751 case KEY_CODES.ARROW_DOWN: 19752 case KEY_CODES.HOME: 19753 case KEY_CODES.END: 19754 { 19755 if (!data.open) { 19756 evt.preventDefault(); 19757 return evt.stopPropagation(); 19758 } 19759 19760 if (evt.keyCode === KEY_CODES.END) { 19761 data.selectedIdx = data.links.length - 1; 19762 } else { 19763 data.selectedIdx = 0; 19764 } 19765 19766 focusSelectedLink(data); 19767 evt.preventDefault(); 19768 return evt.stopPropagation(); 19769 } 19770 } 19771 }; 19772 } 19773 19774 function makeLinksKeyboardHandler(data) { 19775 return function (evt) { 19776 if (!data.open) { 19777 return; 19778 } // Realign selectedIdx with the menu item that is currently in focus. 19779 // We need this because we do not track the `Tab` key activity! 19780 19781 19782 data.selectedIdx = data.links.index(document.activeElement); 19783 19784 switch (evt.keyCode) { 19785 case KEY_CODES.HOME: 19786 case KEY_CODES.END: 19787 { 19788 if (evt.keyCode === KEY_CODES.END) { 19789 data.selectedIdx = data.links.length - 1; 19790 } else { 19791 data.selectedIdx = 0; 19792 } 19793 19794 focusSelectedLink(data); 19795 evt.preventDefault(); 19796 return evt.stopPropagation(); 19797 } 19798 19799 case KEY_CODES.ESCAPE: 19800 { 19801 close(data); // Focus toggle button 19802 19803 data.button.focus(); 19804 evt.preventDefault(); 19805 return evt.stopPropagation(); 19806 } 19807 19808 case KEY_CODES.ARROW_LEFT: 19809 case KEY_CODES.ARROW_UP: 19810 {
19811 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 19812 focusSelectedLink(data); 19813 evt.preventDefault(); 19814 return evt.stopPropagation(); 19815 } 19816 19817 case KEY_CODES.ARROW_RIGHT: 19818 case KEY_CODES.ARROW_DOWN: 19819 { 19820 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 19821 focusSelectedLink(data); 19822 evt.preventDefault(); 19823 return evt.stopPropagation(); 19824 } 19825 } 19826 }; 19827 } 19828 19829 function focusSelectedLink(data) { 19830 if (data.links[data.selectedIdx]) { 19831 var selectedElement = data.links[data.selectedIdx]; 19832 selectedElement.focus(); 19833 navigate(selectedElement); 19834 } 19835 } 19836 19837 function reopen(data) { 19838 if (!data.open) { 19839 return; 19840 } 19841 19842 close(data, true); 19843 open(data, true); 19844 } 19845 19846 function toggle(data) { 19847 // Debounce toggle to wait for accurate open state 19848 return debounce(function () { 19849 data.open ? close(data) : open(data); 19850 }); 19851 } 19852 19853 function navigate(data) { 19854 return function (evt) { 19855 var link = $(this); 19856 var href = link.attr('href'); // Avoid late clicks on touch devices 19857 19858 if (!Webflow.validClick(evt.currentTarget)) { 19859 evt.preventDefault(); 19860 return; 19861 } // Close when navigating to an in-page anchor 19862 19863 19864 if (href && href.indexOf('#') === 0 && data.open) { 19865 close(data); 19866 } 19867 }; 19868 } 19869 19870 function outside(data) { 19871 // Unbind previous click handler if it exists 19872 if (data.outside) { 19873 $doc.off('click' + namespace, data.outside); 19874 } 19875 19876 return function (evt) { 19877 var $target = $(evt.target); // Ignore clicks on Editor overlay UI 19878 19879 if (inEditor && $target.closest('.w-editor-bem-EditorOverlay').length) { 19880 return; 19881 } // Close menu when clicked outside, debounced to wait for state 19882 19883 19884 outsideDebounced(data, $target); 19885 }; 19886 } 19887 19888 var outsideDebounced = debounce(function (data, $target) { 19889 if (!data.open) { 19890 return; 19891 } 19892 19893 var menu = $target.closest('.w-nav-menu'); 19894 19895 if (!data.menu.is(menu)) { 19896 close(data); 19897 } 19898 }); 19899 19900 function resize(i, el) { 19901 var data = $.data(el, namespace);
19901 // Check for collapsed state based on button display 19902 19903 var collapsed = data.collapsed = data.button.css('display') !== 'none'; // Close menu if button is no longer visible (and not in designer) 19904 19905 if (data.open && !collapsed && !designer) { 19906 close(data, true); 19907 } // Set max-width of links + dropdowns to match container 19908 19909 19910 if (data.container.length) { 19911 var updateEachMax = updateMax(data); 19912 data.links.each(updateEachMax); 19913 data.dropdowns.each(updateEachMax); 19914 } // If currently open, update height to match body 19915 19916 19917 if (data.open) { 19918 setOverlayHeight(data); 19919 } 19920 } 19921 19922 var maxWidth = 'max-width'; 19923 19924 function updateMax(data) { 19925 // Set max-width of each element to match container 19926 var containMax = data.container.css(maxWidth); 19927 19928 if (containMax === 'none') { 19929 containMax = ''; 19930 } 19931 19932 return function (i, link) { 19933 link = $(link); 19934 link.css(maxWidth, ''); // Don't set the max-width if an upstream value exists 19935 19936 if (link.css(maxWidth) === 'none') { 19937 link.css(maxWidth, containMax); 19938 } 19939 }; 19940 } 19941 19942 function addMenuOpen(i, el) { 19943 el.setAttribute('data-nav-menu-open', ''); 19944 } 19945 19946 function removeMenuOpen(i, el) { 19947 el.removeAttribute('data-nav-menu-open'); 19948 } 19949 19950 function open(data, immediate) { 19951 if (data.open) { 19952 return; 19953 } 19954 19955 data.open = true; 19956 data.menu.each(addMenuOpen); 19957 data.links.addClass(navbarOpenedLink); 19958 data.dropdowns.addClass(navbarOpenedDropdown); 19959 data.dropdownToggle.addClass(navbarOpenedDropdownToggle); 19960 data.dropdownList.addClass(navbarOpenedDropdownList); 19961 data.button.addClass(navbarOpenedButton); 19962 var config = data.config; 19963 var animation = config.animation; 19964 19965 if (animation === 'none' || !tram.support.transform) { 19966 immediate = true; 19967 } 19968 19969 var bodyHeight = setOverlayHeight(data); 19970 var menuHeight = data.menu.outerHeight(true); 19971 var menuWidth = data.menu.outerWidth(true); 19972 var navHeight = data.el.height(); 19973 var navbarEl = data.el[0]; 19974 resize(0, navbarEl); 19975 ix.intro(0, navbarEl); 19976 Webflow.redraw.up(); // Listen for click outside events 19977 19978 if (!designer) { 19979 $doc.on('click' + namespace, data.outside); 19980 } // No transition for immediate 19981 19982 19983 if (immediate) { 19984 complete(); 19985 return; 19986 } 19987 19988 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing; // Add menu to overlay 19989 19990 if (data.overlay) { 19991 menuSibling = data.menu.prev(); 19992 data.overlay.show().append(data.menu); 19993 } // Over left/right 19994 19995 19996 if (config.animOver) { 19997 tram(data.menu).add(transConfig).set({ 19998 x: config.animDirect * menuWidth, 19999 height: bodyHeight 20000 }).start({ 20001 x: 0 20002 }).then(complete); 20003 data.overlay && data.overlay.width(menuWidth); 20004 return; 20005 } // Drop Down 20006 20007 20008 var offsetY = navHeight + menuHeight; 20009 tram(data.menu).add(transConfig).set({ 20010 y: -offsetY 20011 }).start({ 20012 y: 0 20013 }).then(complete); 20014 20015 function complete() { 20016 data.button.attr('aria-expanded', 'true'); 20017 } 20018 } 20019 20020 function setOverlayHeight(data) { 20021 var config = data.config; 20022 var bodyHeight = config.docHeight ? $doc.height() : $body.height(); 20023 20024 if (config.animOver) { 20025 data.menu.height(bodyHeight); 20026 } else if (data.el.css('position') !== 'fixed') { 20027 bodyHeight -= data.el.outerHeight(true); 20028 } 20029 20030 data.overlay && data.overlay.height(bodyHeight); 20031 return bodyHeight; 20032 } 20033 20034 function close(data, immediate) { 20035 if (!data.open) { 20036 return; 20037 } 20038 20039 data.open = false; 20040 data.button.removeClass(navbarOpenedButton); 20041 var config = data.config; 20042 20043 if (config.animation === 'none' || !tram.support.transform || config.duration <= 0) { 20044 immediate = true; 20045 } 20046 20047 ix.outro(0, data.el[0]); // Stop listening for click outside events 20048 20049 $doc.off('click' + namespace, data.outside); 20050 20051 if (immediate) { 20052 tram(data.menu).stop(); 20053 complete(); 20054 return; 20055 } 20056 20057 var transConfig = 'transform ' + config.duration + 'ms ' + config.easing2; 20058 var menuHeight = data.menu.outerHeight(true); 20059 var menuWidth = data.menu.outerWidth(true); 20060 var navHeight = data.el.height(); // Over left/right 20061 20062 if (config.animOver) { 20063 tram(data.menu).add(transConfig).start({ 20064 x: menuWidth * config.animDirect 20065 }).then(complete); 20066 return; 20067 } // Drop Down 20068 20069 20070 var offsetY = navHeight + menuHeight; 20071 tram(data.menu).add(transConfig).start({ 20072 y: -offsetY 20073 }).then(complete); 20074 20075 function complete() { 20076 data.menu.height(''); 20077 tram(data.menu).set({ 20078 x: 0, 20079 y: 0 20080 }); 20081 data.menu.each(removeMenuOpen); 20082 data.links.removeClass(navbarOpenedLink); 20083 data.dropdowns.removeClass(navbarOpenedDropdown); 20084 data.dropdownToggle.removeClass(navbarOpenedDropdownToggle); 20085 data.dropdownList.removeClass(navbarOpenedDropdownList); 20086 20087 if (data.overlay && data.overlay.children().length) { 20088 // Move menu back to parent at the original location 20089 menuSibling.length ? data.menu.insertAfter(menuSibling) : data.menu.prependTo(data.parent); 20090 data.overlay.attr('style', '').hide(); 20091 } // Trigger event so other components can hook in (dropdown) 20092 20093 20094 data.el.triggerHandler('w-close'); 20095 data.button.attr('aria-expanded', 'false'); 20096 } 20097 } // Export module 20098 20099 20100 return api; 20101}); 20102 20103/***/ }), 20104/* 325 */ 20105/***/ (function(module, exports, __webpack_require__) { 20106 20107"use strict"; 20108 // @wf-will-never-add-flow-to-this-file 20109 20110/* global window, document */ 20111 20112/* eslint-disable no-var */ 20113 20114/** 20115 * Webflow: Slider component 20116 */ 20117 20118var Webflow = __webpack_require__(3); 20119 20120var IXEvents = __webpack_require__(22); 20121 20122var KEY_CODES = { 20123 ARROW_LEFT: 37, 20124 ARROW_UP: 38, 20125 ARROW_RIGHT: 39, 20126 ARROW_DOWN: 40, 20127 SPACE: 32, 20128 ENTER: 13, 20129 HOME: 36, 20130 END: 35 20131}; 20132var FOCUSABLE_SELECTOR = 'a[href], area[href], [role="button"], input, select, textarea, button, iframe, object, embed, *[tabindex], *[contenteditable]'; 20133Webflow.define('slider', module.exports = function ($, _) { 20134 var api = {}; 20135 var tram = $.tram; 20136 var $doc = $(document); 20137 var $sliders; 20138 var designer; 20139 var inApp = Webflow.env(); 20140 var namespace = '.w-slider'; 20141 var dot = '<div class="w-slider-dot" data-wf-ignore />'; 20142 var ariaLiveLabelHtml = '<div aria-live="off" aria-atomic="true" class="w-slider-aria-label" data-wf-ignore />'; 20143 var ix = IXEvents.triggers; 20144 var fallback; 20145 var inRedraw; // ----------------------------------- 20146 // Module methods 20147 20148 api.ready = function () { 20149 designer = Webflow.env('design'); 20150 init(); 20151 }; 20152 20153 api.design = function () { 20154 designer = true; 20155 init(); 20156 }; 20157 20158 api.preview = function () { 20159 designer = false;
20160 init(); 20161 }; 20162 20163 api.redraw = function () { 20164 inRedraw = true; 20165 init(); 20166 }; 20167 20168 api.destroy = removeListeners; // ----------------------------------- 20169 // Private methods 20170 20171 function init() { 20172 // Find all sliders on the page 20173 $sliders = $doc.find(namespace); 20174 20175 if (!$sliders.length) { 20176 return; 20177 } 20178 20179 $sliders.each(build); 20180 inRedraw = null; 20181 20182 if (fallback) { 20183 return; 20184 } 20185 20186 removeListeners(); 20187 addListeners(); 20188 } 20189 20190 function removeListeners() { 20191 Webflow.resize.off(renderAll); 20192 Webflow.redraw.off(api.redraw); 20193 } 20194 20195 function addListeners() { 20196 Webflow.resize.on(renderAll); 20197 Webflow.redraw.on(api.redraw); 20198 } 20199 20200 function renderAll() { 20201 $sliders.filter(':visible').each(render); 20202 } 20203 20204 function build(i, el) { 20205 var $el = $(el); // Store slider state in data 20206 20207 var data = $.data(el, namespace); 20208 20209 if (!data) { 20210 data = $.data(el, namespace, { 20211 index: 0, 20212 depth: 1, 20213 hasFocus: { 20214 keyboard: false, 20215 mouse: false 20216 }, 20217 el: $el, 20218 config: {} 20219 }); 20220 } 20221 20222 data.mask = $el.children('.w-slider-mask'); 20223 data.left = $el.children('.w-slider-arrow-left'); 20224 data.right = $el.children('.w-slider-arrow-right'); 20225 data.nav = $el.children('.w-slider-nav'); 20226 data.slides = data.mask.children('.w-slide'); 20227 data.slides.each(ix.reset); 20228 20229 if (inRedraw) { 20230 data.maskWidth = 0; 20231 } 20232 20233 if ($el.attr('role') === undefined) { 20234 $el.attr('role', 'section'); 20235 } 20236 20237 if ($el.attr('aria-label') === undefined) { 20238 $el.attr('aria-label', 'carousel'); 20239 } // Store the ID of the slider slide view mask 20240 20241 20242 var slideViewId = data.mask.attr('id'); // If user did not provide an ID, set it 20243 20244 if (!slideViewId) { 20245 slideViewId = 'w-slider-mask-' + i; 20246 data.mask.attr('id', slideViewId); 20247 } // Create aria live label 20248 20249 20250 data.ariaLiveLabel = $(ariaLiveLabelHtml).appendTo(data.mask); // Add attributes to left/right buttons 20251 20252 data.left.attr('role', 'button'); 20253 data.left.attr('tabindex', '0'); 20254 data.left.attr('aria-controls', slideViewId); 20255 20256 if (data.left.attr('aria-label') === undefined) { 20257 data.left.attr('aria-label', 'previous slide'); 20258 } 20259 20260 data.right.attr('role', 'button'); 20261 data.right.attr('tabindex', '0'); 20262 data.right.attr('aria-controls', slideViewId); 20263 20264 if (data.right.attr('aria-label') === undefined) { 20265 data.right.attr('aria-label', 'next slide'); 20266 } // Disable in old browsers 20267 20268 20269 if (!tram.support.transform) { 20270 data.left.hide(); 20271 data.right.hide(); 20272 data.nav.hide(); 20273 fallback = true; 20274 return; 20275 } // Remove old events 20276 20277 20278 data.el.off(namespace); 20279 data.left.off(namespace); 20280 data.right.off(namespace); 20281 data.nav.off(namespace); // Set config from data attributes 20282 20283 configure(data); // Add events based on mode 20284 20285 if (designer) { 20286 data.el.on('setting' + namespace, handler(data)); 20287 stopTimer(data); 20288 data.hasTimer = false; 20289 } else { 20290 data.el.on('swipe' + namespace, handler(data)); 20291 data.left.on('click' + namespace, previousFunction(data)); 20292 data.right.on('click' + namespace, next(data)); 20293 data.left.on('keydown' + namespace, keyboardSlideButtonsFunction(data, previousFunction)); 20294 data.right.on('keydown' + namespace, keyboardSlideButtonsFunction(data, next)); // Listen to nav keyboard events 20295 20296 data.nav.on('keydown' + namespace, '> div', handler(data)); // Start timer if autoplay is true, only once 20297 20298 if (data.config.autoplay && !data.hasTimer) { 20299 data.hasTimer = true; 20300 data.timerCount = 1; 20301 startTimer(data); 20302 } 20303 20304 data.el.on('mouseenter' + namespace, hasFocus(data, true, 'mouse')); 20305 data.el.on('focusin' + namespace, hasFocus(data, true, 'keyboard')); 20306 data.el.on('mouseleave' + namespace, hasFocus(data, false, 'mouse')); 20307 data.el.on('focusout' + namespace, hasFocus(data, false, 'keyboard')); 20308 } // Listen to nav click events 20309 20310 20311 data.nav.on('click' + namespace, '> div', handler(data)); // Remove gaps from formatted html (for inline-blocks) 20312 20313 if (!inApp) { 20314 data.mask.contents().filter(function () { 20315 return this.nodeType === 3; 20316 }).remove(); 20317 } // If slider or any parent is hidden, temporarily show for measurements (https://github.com/webflow/webflow/issues/24921) 20318 20319 20320 var $elHidden = $el.filter(':hidden'); 20321 $elHidden.show(); 20322 var $elHiddenParents = $el.parents(':hidden'); 20323 $elHiddenParents.show(); // Run first render 20324 20325 render(i, el); // If slider or any parent is hidden, reset after temporarily showing for measurements 20326 20327 $elHidden.css('display', ''); 20328 $elHiddenParents.css('display', ''); 20329 } 20330 20331 function configure(data) { 20332 var config = {}; 20333 config.crossOver = 0; // Set config options from data attributes 20334 20335 config.animation = data.el.attr('data-animation') || 'slide'; 20336 20337 if (config.animation === 'outin') { 20338 config.animation = 'cross'; 20339 config.crossOver = 0.5; 20340 } 20341 20342 config.easing = data.el.attr('data-easing') || 'ease'; 20343 var duration = data.el.attr('data-duration'); 20344 config.duration = duration != null ? parseInt(duration, 10) : 500; 20345 20346 if (isAttrTrue(data.el.attr('data-infinite'))) { 20347 config.infinite = true; 20348 } 20349 20350 if (isAttrTrue(data.el.attr('data-disable-swipe'))) { 20351 config.disableSwipe = true; 20352 } 20353 20354 if (isAttrTrue(data.el.attr('data-hide-arrows'))) { 20355 config.hideArrows = true; 20356 } else if (data.config.hideArrows) { 20357 data.left.show(); 20358 data.right.show(); 20359 } 20360 20361 if (isAttrTrue(data.el.attr('data-autoplay'))) {
20362 config.autoplay = true; 20363 config.delay = parseInt(data.el.attr('data-delay'), 10) || 2000; 20364 config.timerMax = parseInt(data.el.attr('data-autoplay-limit'), 10); // Disable timer on first touch or mouse down 20365 20366 var touchEvents = 'mousedown' + namespace + ' touchstart' + namespace; 20367 20368 if (!designer) { 20369 data.el.off(touchEvents).one(touchEvents, function () { 20370 stopTimer(data); 20371 }); 20372 } 20373 } // Use edge buffer to help calculate page count 20374 20375 20376 var arrowWidth = data.right.width(); 20377 config.edge = arrowWidth ? arrowWidth + 40 : 100; // Store config in data 20378 20379 data.config = config; 20380 } 20381 20382 function isAttrTrue(value) { 20383 return value === '1' || value === 'true'; 20384 } 20385 20386 function hasFocus(data, focusIn, eventType) { 20387 return function (evt) { 20388 if (!focusIn) { 20389 // Prevent Focus Out if moving to another element in the slider 20390 if ($.contains(data.el.get(0), evt.relatedTarget)) { 20391 return; 20392 } 20393 20394 data.hasFocus[eventType] = focusIn; // Prevent Aria live change if focused by other input 20395 20396 if (data.hasFocus.mouse && eventType === 'keyboard' || data.hasFocus.keyboard && eventType === 'mouse') { 20397 return; 20398 } 20399 } else { 20400 data.hasFocus[eventType] = focusIn; 20401 } 20402 20403 if (focusIn) { 20404 data.ariaLiveLabel.attr('aria-live', 'polite'); 20405 20406 if (data.hasTimer) { 20407 stopTimer(data); 20408 } 20409 } else { 20410 data.ariaLiveLabel.attr('aria-live', 'off'); 20411 20412 if (data.hasTimer) { 20413 startTimer(data); 20414 } 20415 } 20416 20417 return; 20418 }; 20419 } 20420 20421 function keyboardSlideButtonsFunction(data, directionFunction) { 20422 return function (evt) { 20423 switch (evt.keyCode) { 20424 case KEY_CODES.SPACE: 20425 case KEY_CODES.ENTER: 20426 { 20427 // DirectionFunction returns a function 20428 directionFunction(data)(); 20429 evt.preventDefault(); 20430 return evt.stopPropagation(); 20431 } 20432 } 20433 }; 20434 } 20435 20436 function previousFunction(data) { 20437 return function () { 20438 change(data, { 20439 index: data.index - 1, 20440 vector: -1 20441 }); 20442 }; 20443 } 20444 20445 function next(data) { 20446 return function () { 20447 change(data, { 20448 index: data.index + 1, 20449 vector: 1 20450 }); 20451 }; 20452 } 20453 20454 function select(data, value) { 20455 // Select page based on slide element index 20456 var found = null; 20457 20458 if (value === data.slides.length) { 20459 init(); 20460 layout(data); // Rebuild and find new slides 20461 } 20462 20463 _.each(data.anchors, function (anchor, index) { 20464 $(anchor.els).each(function (i, el) { 20465 if ($(el).index() === value) { 20466 found = index; 20467 } 20468 }); 20469 }); 20470 20471 if (found != null) { 20472 change(data, { 20473 index: found, 20474 immediate: true 20475 }); 20476 } 20477 } 20478 20479 function startTimer(data) { 20480 stopTimer(data); 20481 var config = data.config; 20482 var timerMax = config.timerMax; 20483 20484 if (timerMax && data.timerCount++ > timerMax) { 20485 return; 20486 } 20487 20488 data.timerId = window.setTimeout(function () { 20489 if (data.timerId == null || designer) { 20490 return; 20491 } 20492 20493 next(data)(); 20494 startTimer(data); 20495 }, config.delay); 20496 } 20497 20498 function stopTimer(data) { 20499 window.clearTimeout(data.timerId); 20500 data.timerId = null; 20501 } 20502 20503 function handler(data) { 20504 return function (evt, options) { 20505 options = options || {}; 20506 var config = data.config; // Designer settings 20507 20508 if (designer && evt.type === 'setting') { 20509 if (options.select === 'prev') { 20510 return previousFunction(data)(); 20511 } 20512 20513 if (options.select === 'next') { 20514 return next(data)(); 20515 } 20516 20517 configure(data); 20518 layout(data); 20519 20520 if (options.select == null) { 20521 return; 20522 } 20523 20524 select(data, options.select); 20525 return; 20526 } // Swipe event 20527 20528 20529 if (evt.type === 'swipe') { 20530 if (config.disableSwipe) { 20531 return; 20532 } 20533 20534 if (Webflow.env('editor')) { 20535 return; 20536 } 20537 20538 if (options.direction === 'left') { 20539 return next(data)(); 20540 } 20541 20542 if (options.direction === 'right') { 20543 return previousFunction(data)(); 20544 } 20545 20546 return; 20547 } // Page buttons 20548 20549 20550 if (data.nav.has(evt.target).length) { 20551 var index = $(evt.target).index(); 20552 20553 if (evt.type === 'click') { 20554 change(data, { 20555 index: index 20556 }); 20557 } 20558 20559 if (evt.type === 'keydown') { 20560 switch (evt.keyCode) { 20561 case KEY_CODES.ENTER: 20562 case KEY_CODES.SPACE: 20563 { 20564 change(data, { 20565 index: index 20566 }); 20567 evt.preventDefault(); 20568 break; 20569 } 20570 20571 case KEY_CODES.ARROW_LEFT: 20572 case KEY_CODES.ARROW_UP: 20573 { 20574 focusDot(data.nav, Math.max(index - 1, 0)); 20575 evt.preventDefault(); 20576 break; 20577 } 20578 20579 case KEY_CODES.ARROW_RIGHT: 20580 case KEY_CODES.ARROW_DOWN: 20581 { 20582 focusDot(data.nav, Math.min(index + 1, data.pages)); 20583 evt.preventDefault(); 20584 break; 20585 } 20586 20587 case KEY_CODES.HOME: 20588 { 20589 focusDot(data.nav, 0); 20590 evt.preventDefault(); 20591 break; 20592 } 20593 20594 case KEY_CODES.END: 20595 { 20596 focusDot(data.nav, data.pages); 20597 evt.preventDefault(); 20598 break; 20599 } 20600 20601 default: 20602 { 20603 return; 20604 } 20605 } 20606 } 20607 } 20608 }; 20609 } 20610 20611 function focusDot($nav, index) { 20612 // Focus nav dot; don't change class to active 20613 var $active = $nav.children().eq(index).focus(); 20614 $nav.children().not($active); 20615 } 20616 20617 function change(data, options) { 20618 options = options || {}; 20619 var config = data.config; 20620 var anchors = data.anchors; // Set new index 20621 20622 data.previous = data.index; 20623 var index = options.index; 20624 var shift = {}; 20625 20626 if (index < 0) { 20627 index = anchors.length - 1; 20628 20629 if (config.infinite) { 20630 // Shift first slide to the end 20631 shift.x = -data.endX; 20632 shift.from = 0; 20633 shift.to = anchors[0].width; 20634 } 20635 } else if (index >= anchors.length) { 20636 index = 0; 20637 20638 if (config.infinite) { 20639 // Shift last slide to the start
20640 shift.x = anchors[anchors.length - 1].width; 20641 shift.from = -anchors[anchors.length - 1].x; 20642 shift.to = shift.from - shift.x; 20643 } 20644 } 20645 20646 data.index = index; // Select nav dot; set class active 20647 20648 var $active = data.nav.children().eq(index).addClass('w-active').attr('aria-selected', 'true').attr('tabindex', '0'); 20649 data.nav.children().not($active).removeClass('w-active').attr('aria-selected', 'false').attr('tabindex', '-1'); // Hide arrows 20650 20651 if (config.hideArrows) { 20652 data.index === anchors.length - 1 ? data.right.hide() : data.right.show(); 20653 data.index === 0 ? data.left.hide() : data.left.show(); 20654 } // Get page offset from anchors 20655 20656 20657 var lastOffsetX = data.offsetX || 0; 20658 var offsetX = data.offsetX = -anchors[data.index].x; 20659 var resetConfig = { 20660 x: offsetX, 20661 opacity: 1, 20662 visibility: '' 20663 }; // Transition slides 20664 20665 var targets = $(anchors[data.index].els); 20666 var prevTargs = $(anchors[data.previous] && anchors[data.previous].els); 20667 var others = data.slides.not(targets); 20668 var animation = config.animation; 20669 var easing = config.easing; 20670 var duration = Math.round(config.duration); 20671 var vector = options.vector || (data.index > data.previous ? 1 : -1); 20672 var fadeRule = 'opacity ' + duration + 'ms ' + easing; 20673 var slideRule = 'transform ' + duration + 'ms ' + easing; // Make active slides' content focusable 20674 20675 targets.find(FOCUSABLE_SELECTOR).removeAttr('tabindex'); 20676 targets.removeAttr('aria-hidden'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... 20677 20678 targets.find('*').removeAttr('aria-hidden'); // Prevent focus on inactive slides' content 20679 20680 others.find(FOCUSABLE_SELECTOR).attr('tabindex', '-1'); 20681 others.attr('aria-hidden', 'true'); // Voiceover bug: Sometimes descendants are still visible, so hide everything... 20682 20683 others.find('*').attr('aria-hidden', 'true'); // Trigger IX events 20684 20685 if (!designer) { 20686 targets.each(ix.intro); 20687 others.each(ix.outro); 20688 } // Set immediately after layout changes (but not during redraw) 20689 20690 20691 if (options.immediate && !inRedraw) { 20692 tram(targets).set(resetConfig); 20693 resetOthers(); 20694 return; 20695 } // Exit early if index is unchanged 20696 20697 20698 if (data.index === data.previous) { 20699 return; 20700 } // Announce slide change to screen reader 20701 20702 20703 data.ariaLiveLabel.text("Slide ".concat(index + 1, " of ").concat(anchors.length, ".")); // Cross Fade / Out-In 20704 20705 if (animation === 'cross') { 20706 var reduced = Math.round(duration - duration * config.crossOver); 20707 var wait = Math.round(duration - reduced); 20708 fadeRule = 'opacity ' + reduced + 'ms ' + easing; 20709 tram(prevTargs).set({ 20710 visibility: '' 20711 }).add(fadeRule).start({ 20712 opacity: 0 20713 }); 20714 tram(targets).set({ 20715 visibility: '', 20716 x: offsetX, 20717 opacity: 0, 20718 zIndex: data.depth++ 20719 }).add(fadeRule).wait(wait).then({ 20720 opacity: 1 20721 }).then(resetOthers); 20722 return; 20723 } // Fade Over 20724 20725 20726 if (animation === 'fade') { 20727 tram(prevTargs).set({ 20728 visibility: '' 20729 }).stop(); 20730 tram(targets).set({ 20731 visibility: '', 20732 x: offsetX, 20733 opacity: 0, 20734 zIndex: data.depth++ 20735 }).add(fadeRule).start({ 20736 opacity: 1 20737 }).then(resetOthers); 20738 return; 20739 } // Slide Over 20740 20741 20742 if (animation === 'over') { 20743 resetConfig = { 20744 x: data.endX 20745 }; 20746 tram(prevTargs).set({ 20747 visibility: '' 20748 }).stop(); 20749 tram(targets).set({ 20750 visibility: '', 20751 zIndex: data.depth++, 20752 x: offsetX + anchors[data.index].width * vector 20753 }).add(slideRule).start({ 20754 x: offsetX 20755 }).then(resetOthers); 20756 return; 20757 } // Slide - infinite scroll 20758 20759 20760 if (config.infinite && shift.x) { 20761 tram(data.slides.not(prevTargs)).set({ 20762 visibility: '', 20763 x: shift.x 20764 }).add(slideRule).start({ 20765 x: offsetX 20766 }); 20767 tram(prevTargs).set({ 20768 visibility: '', 20769 x: shift.from 20770 }).add(slideRule).start({ 20771 x: shift.to 20772 }); 20773 data.shifted = prevTargs; 20774 } else { 20775 if (config.infinite && data.shifted) { 20776 tram(data.shifted).set({ 20777 visibility: '', 20778 x: lastOffsetX 20779 }); 20780 data.shifted = null; 20781 } // Slide - basic scroll 20782 20783 20784 tram(data.slides).set({ 20785 visibility: '' 20786 }).add(slideRule).start({ 20787 x: offsetX 20788 }); 20789 } // Helper to move others out of view 20790 20791 20792 function resetOthers() { 20793 targets = $(anchors[data.index].els); 20794 others = data.slides.not(targets); 20795 20796 if (animation !== 'slide') { 20797 resetConfig.visibility = 'hidden'; 20798 } 20799 20800 tram(others).set(resetConfig); 20801 } 20802 } 20803 20804 function render(i, el) { 20805 var data = $.data(el, namespace); 20806 20807 if (!data) { 20808 return; 20809 } 20810 20811 if (maskChanged(data)) { 20812 return layout(data); 20813 } 20814 20815 if (designer && slidesChanged(data)) { 20816 layout(data); 20817 } 20818 } 20819 20820 function layout(data) { 20821 // Determine page count from width of slides 20822 var pages = 1; 20823 var offset = 0; 20824 var anchor = 0; 20825 var width = 0; 20826 var maskWidth = data.maskWidth; 20827 var threshold = maskWidth - data.config.edge; 20828 20829 if (threshold < 0) { 20830 threshold = 0; 20831 } 20832 20833 data.anchors = [{ 20834 els: [], 20835 x: 0, 20836 width: 0 20837 }]; 20838 data.slides.each(function (i, el) { 20839 if (anchor - offset > threshold) { 20840 pages++; 20841 offset += maskWidth; // Store page anchor for transition 20842 20843 data.anchors[pages - 1] = { 20844 els: [], 20845 x: anchor, 20846 width: 0 20847 }; 20848 } // Set next anchor using current width + margin 20849 20850 20851 width = $(el).outerWidth(true); 20852 anchor += width; 20853 data.anchors[pages - 1].width += width; 20854 data.anchors[pages - 1].els.push(el); 20855 var ariaLabel = i + 1 + ' of ' + data.slides.length; 20856 $(el).attr('aria-label', ariaLabel); 20857 $(el).attr('role', 'group'); 20858 }); 20859 data.endX = anchor; // Build dots if nav exists and needs updating 20860 20861 if (designer) { 20862 data.pages = null; 20863 } 20864 20865 if (data.nav.length && data.pages !== pages) { 20866 data.pages = pages; 20867 buildNav(data); 20868 } // Make sure index is still within range and call change handler 20869 20870 20871 var index = data.index; 20872 20873 if (index >= pages) { 20874 index = pages - 1; 20875 } 20876 20877 change(data, { 20878 immediate: true, 20879 index: index 20880 }); 20881 } 20882 20883 function buildNav(data) { 20884 var dots = []; 20885 var $dot; 20886 var spacing = data.el.attr('data-nav-spacing'); 20887 20888 if (spacing) { 20889 spacing = parseFloat(spacing) + 'px'; 20890 } 20891 20892 for (var i = 0, len = data.pages; i < len; i++) { 20893 $dot = $(dot); 20894 $dot.attr('aria-label', 'Show slide ' + (i + 1) + ' of ' + len).attr('aria-selected', 'false').attr('role', 'button').attr('tabindex', '-1'); 20895 20896 if (data.nav.hasClass('w-num')) { 20897 $dot.text(i + 1); 20898 } 20899 20900 if (spacing != null) { 20901 $dot.css({ 20902 'margin-left': spacing, 20903 'margin-right': spacing 20904 }); 20905 } 20906 20907 dots.push($dot); 20908 } 20909 20910 data.nav.empty().append(dots); 20911 } 20912 20913 function maskChanged(data) { 20914 var maskWidth = data.mask.width(); 20915 20916 if (data.maskWidth !== maskWidth) { 20917 data.maskWidth = maskWidth; 20918 return true; 20919 } 20920 20921 return false;
20922 } 20923 20924 function slidesChanged(data) { 20925 var slidesWidth = 0; 20926 data.slides.each(function (i, el) { 20927 slidesWidth += $(el).outerWidth(true); 20928 }); 20929 20930 if (data.slidesWidth !== slidesWidth) { 20931 data.slidesWidth = slidesWidth; 20932 return true; 20933 } 20934 20935 return false; 20936 } // Export module 20937 20938 20939 return api; 20940}); 20941 20942/***/ }), 20943/* 326 */ 20944/***/ (function(module, exports, __webpack_require__) { 20945 20946"use strict"; 20947 // @wf-will-never-add-flow-to-this-file 20948 20949/* globals window, document */ 20950 20951/* eslint-disable no-var */ 20952 20953/** 20954 * Webflow: Maps widget 20955 */ 20956 20957var Webflow = __webpack_require__(3); 20958 20959Webflow.define('maps', module.exports = function ($, _) { 20960 var api = {}; 20961 var $doc = $(document); 20962 var google = null; 20963 var $maps; 20964 var namespace = '.w-widget-map'; // The API key is injected here from the Webflow Integrations tab on the site's dashboard 20965 20966 var googleMapsApiKey = ''; // ----------------------------------- 20967 // Module methods 20968 20969 api.ready = function () { 20970 // Init Maps on the front-end 20971 if (!Webflow.env()) { 20972 initMaps(); 20973 } 20974 }; 20975 20976 api.destroy = removeListeners; // ----------------------------------- 20977 // Private methods 20978 20979 function initMaps() { 20980 $maps = $doc.find(namespace); 20981 20982 if (!$maps.length) { 20983 return; 20984 } 20985 20986 if (google === null) { 20987 $.getScript('https://maps.googleapis.com/maps/api/js?v=3.31&sensor=false&callback=_wf_maps_loaded&key=' + googleMapsApiKey); 20988 window._wf_maps_loaded = mapsLoaded; 20989 } else { 20990 mapsLoaded(); 20991 } 20992 20993 function mapsLoaded() { 20994 window._wf_maps_loaded = function () {}; 20995 20996 google = window.google; 20997 $maps.each(renderMap); 20998 removeListeners(); 20999 addListeners(); 21000 } 21001 } 21002 21003 function removeListeners() { 21004 Webflow.resize.off(resizeMaps); 21005 Webflow.redraw.off(resizeMaps); 21006 } 21007 21008 function addListeners() { 21009 Webflow.resize.on(resizeMaps); 21010 Webflow.redraw.on(resizeMaps); 21011 } // Render map onto each element 21012 21013 21014 function renderMap(i, el) { 21015 var data = $(el).data(); 21016 getState(el, data); 21017 } 21018 21019 function resizeMaps() { 21020 $maps.each(resizeMap); 21021 } // Resize map when window changes 21022 21023 21024 function resizeMap(i, el) { 21025 var state = getState(el); 21026 google.maps.event.trigger(state.map, 'resize'); 21027 state.setMapPosition(); 21028 } // Store state on element data 21029 21030 21031 var store = 'w-widget-map'; 21032 21033 function getState(el, data) { 21034 var state = $.data(el, store); 21035 21036 if (state) { 21037 return state; 21038 } 21039 21040 var $el = $(el); 21041 state = $.data(el, store, { 21042 // Default options 21043 latLng: '51.511214,-0.119824', 21044 tooltip: '', 21045 style: 'roadmap', 21046 zoom: 12, 21047 // Marker 21048 marker: new google.maps.Marker({ 21049 draggable: false 21050 }), 21051 // Tooltip infowindow 21052 infowindow: new google.maps.InfoWindow({ 21053 disableAutoPan: true 21054 }) 21055 }); // LatLng center point 21056 21057 var latLng = data.widgetLatlng || state.latLng; 21058 state.latLng = latLng; 21059 var coords = latLng.split(','); 21060 var latLngObj = new google.maps.LatLng(coords[0], coords[1]); 21061 state.latLngObj = latLngObj; // Disable touch events 21062 21063 var mapDraggable = !(Webflow.env.touch && data.disableTouch); // Map instance 21064 21065 state.map = new google.maps.Map(el, { 21066 center: state.latLngObj, 21067 zoom: state.zoom, 21068 maxZoom: 18, 21069 mapTypeControl: false, 21070 panControl: false, 21071 streetViewControl: false, 21072 scrollwheel: !data.disableScroll, 21073 draggable: mapDraggable, 21074 zoomControl: true, 21075 zoomControlOptions: { 21076 style: google.maps.ZoomControlStyle.SMALL 21077 }, 21078 mapTypeId: state.style 21079 }); 21080 state.marker.setMap(state.map); // Set map position and offset 21081 21082 state.setMapPosition = function () { 21083 state.map.setCenter(state.latLngObj); 21084 var offsetX = 0; 21085 var offsetY = 0; 21086 var padding = $el.css(['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft']); 21087 offsetX -= parseInt(padding.paddingLeft, 10); 21088 offsetX += parseInt(padding.paddingRight, 10); 21089 offsetY -= parseInt(padding.paddingTop, 10); 21090 offsetY += parseInt(padding.paddingBottom, 10); 21091 21092 if (offsetX || offsetY) { 21093 state.map.panBy(offsetX, offsetY); 21094 } 21095 21096 $el.css('position', ''); // Remove injected position 21097 }; // Fix position after first tiles have loaded 21098 21099 21100 google.maps.event.addListener(state.map, 'tilesloaded', function () { 21101 google.maps.event.clearListeners(state.map, 'tilesloaded'); 21102 state.setMapPosition(); 21103 }); // Set initial position 21104 21105 state.setMapPosition(); 21106 state.marker.setPosition(state.latLngObj); 21107 state.infowindow.setPosition(state.latLngObj); // Draw tooltip 21108 21109 var tooltip = data.widgetTooltip; 21110 21111 if (tooltip) { 21112 state.tooltip = tooltip; 21113 state.infowindow.setContent(tooltip); 21114 21115 if (!state.infowindowOpen) { 21116 state.infowindow.open(state.map, state.marker); 21117 state.infowindowOpen = true; 21118 } 21119 } // Map style - options.style 21120 21121 21122 var style = data.widgetStyle; 21123 21124 if (style) { 21125 state.map.setMapTypeId(style); 21126 } // Zoom - options.zoom 21127 21128 21129 var zoom = data.widgetZoom; 21130 21131 if (zoom != null) { 21132 state.zoom = zoom; 21133 state.map.setZoom(Number(zoom)); 21134 } // Click marker to open in google maps 21135 21136 21137 google.maps.event.addListener(state.marker, 'click', function () { 21138 window.open('https://maps.google.com/?z=' + state.zoom + '&daddr=' + state.latLng); 21139 }); 21140 return state; 21141 } // Export module 21142 21143 21144 return api; 21145}); 21146 21147/***/ }) 21148/******/ ]);/** 21149 * ---------------------------------------------------------------------- 21150 * Webflow: Interactions 2.0: Init 21151 */ 21152Webflow.require('ix2').init( 21153{"events":{"e":{"id":"e","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-2"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".expandable-title","originalId":"5f7cea2f5aeed41e0d326f80|1d8d6aa0-1b2d-5b81-f934-92dc03c3ef81","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1565568647478},"e-2":{"id":"e-2","name":"","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".expandable-title","originalId":"5f7cea2f5aeed41e0d326f80|1d8d6aa0-1b2d-5b81-f934-92dc03c3ef81","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1565568647478},"e-5":{"id":"e-5","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565579015108},"e-6":{"id":"e-6","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed45d7b326f86"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565580429556},"e-8":{"id":"e-8","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4
2115367d3326f88"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565651205211},"e-9":{"id":"e-9","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed467d3326f88|35f9b2b5-6f2e-bcc0-b419-0ce254d19861"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565651205211},"e-10":{"id":"e-10","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed49777326f89"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565651241894},"e-11":{"id":"e-11","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed49777326f89|b407bb2e-2b95-8bea-d562-7d6cbde37a07"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565651908988},"e-12":{"id":"e-12","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565656182608},"e-13":{"id":"e-13","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|7a995d90-238b-6a02-0b95-699e210eb66f"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565656276619},"e-16":{"id":"e-16","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565661948531},"e-17":{"id":"e-17","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|7a995d90-238b-6a02-0b95-699e210eb66f"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565661948531},"e-18":{"id":"e-18","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed47c23326f8d"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565663496748},"e-19":{"id":"e-19","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed47c23326f8d|2d28422e-c0f3-8cdc-97f8-b8a3f8004f79"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565663923418},"e-21":{"id":"e-21","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4
211536e76326f8f|c7321c28-488f-91eb-9937-b235ff635ff1"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565672986138},"e-23":{"id":"e-23","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4cec4326f90|c7321c28-488f-91eb-9937-b235ff635ff1"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565674819728},"e-25":{"id":"e-25","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41785326f91|b407bb2e-2b95-8bea-d562-7d6cbde37a07"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565674927136},"e-26":{"id":"e-26","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41785326f91|7a0e40d2-98a3-cfc3-b266-12512c607783"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565677442674},"e-28":{"id":"e-28","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed44023326f92|a759bfa4-77f4-a870-34ca-9c72c671320c"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565737453942},"e-29":{"id":"e-29","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed479f6326f94"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565737526030},"e-30":{"id":"e-30","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed479f6326f94|35f9b2b5-6f2e-bcc0-b419-0ce254d19861"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565737526030},"e-31":{"id":"e-31","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4421a326f95"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565739819916},"e-32":{"id":"e-32","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4421a326f95|591a310f-cd9f-ee87-5279-c6b4a860c792"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565740079133},"e-33":{"id":"e-33","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-21","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-34"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"dfcc347b-9488-6802-f907-ea3594cba704"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1565740729200},"e-35":{"id":"e-35","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-22","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4421a326f95"},"targets":[],"config":[{"continuousParameterGroupId":"a-22-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565746220652},"e-36":{"id":"e-36","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4
211536502326f96|0769e264-c66d-e0ec-fbfa-c11d0d7d78b4"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565751117449},"e-37":{"id":"e-37","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4d6f4326f99"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565756096900},"e-38":{"id":"e-38","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed46159326f9a"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565761896378},"e-39":{"id":"e-39","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed43218326f9b"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565822145245},"e-42":{"id":"e-42","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed46949326f9d"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565835518792},"e-43":{"id":"e-43","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed46949326f9d|def833e6-9c5e-5df8-7515-b527e786d58c"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565835518792},"e-44":{"id":"e-44","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed46949326f9d|fcfb1eb7-ad26-f467-f92a-3e277e556124"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565835518792},"e-45":{"id":"e-45","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4b16c326f9e"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565835865008},"e-46":{"id":"e-46","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4b16c326f9e|e9a9639d-1830-3d01-f9ef-6a2d4d7aa643"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565840559481},"e-47":{"id":"e-47","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed45846326f9f"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565842729600}
21153,"e-48":{"id":"e-48","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4f726326fa0"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565844395934},"e-49":{"id":"e-49","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565847140159},"e-50":{"id":"e-50","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-22","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a"},"targets":[],"config":[{"continuousParameterGroupId":"a-22-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565913632704},"e-51":{"id":"e-51","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-22","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1"},"targets":[],"config":[{"continuousParameterGroupId":"a-22-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565914520930},"e-52":{"id":"e-52","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed41ff9326fbc"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565927436127},"e-53":{"id":"e-53","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed48147326fd0"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565931889080},"e-54":{"id":"e-54","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41ff9326fbc|84d7ff8f-ba77-75ea-17d7-a0f44b4118a0"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1565932784099},"e-55":{"id":"e-55","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed48147326fd0|134ea0b9-dba0-9394-666f-cf7bb20472c0"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566168162347},"e-56":{"id":"e-56","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed41444326fe4"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566254441694},"e-57":{"id":"e-57","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41444326fe4|134ea0b9-dba0-9394-666f-cf7bb20472c0"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566254441694},"e-58":{"id":"e-58","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45d7b326f86|7553a581-113a-88ae-0b78-511d7f79b584"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566254768510},"e-59":{"id":"e-59","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|bcc1ea15-7434-4097-04c3-4ebce4ca4797"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566254948578},"e-60":{"id":"e-60","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4f726326fa0|0da03010-40ef-e302-d7d1-508cae3e37af"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566255031130},"e-61":{"id":"e-61","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|babd4ba7-7d59-9ab4-ecb3-cd5f1a0adb25"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566255335240}
21153,"e-62":{"id":"e-62","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4792932700b"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566259233084},"e-64":{"id":"e-64","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-22","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4792932700b"},"targets":[],"config":[{"continuousParameterGroupId":"a-22-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566259233084},"e-66":{"id":"e-66","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-22","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c"},"targets":[],"config":[{"continuousParameterGroupId":"a-22-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566516096638},"e-67":{"id":"e-67","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|5fde5fa8-2af1-a406-9480-07311c1da8ed"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566778489586},"e-68":{"id":"e-68","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed468b6327026"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566860069007},"e-69":{"id":"e-69","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed468b6327026|7553a581-113a-88ae-0b78-511d7f79b584"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566860069007},"e-70":{"id":"e-70","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-71"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|f35a5dee-1e7f-b139-f48d-791e53e81de6"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566861094157},"e-72":{"id":"e-72","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-73"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|f35a5dee-1e7f-b139-f48d-791e53e81dfd"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":250,"direction":null,"effectIn":true},"createdOn":1566861114307}
21153,"e-74":{"id":"e-74","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-75"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|380ed9e8-a889-0016-1372-cb714df10dea"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566861134014},"e-76":{"id":"e-76","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-77"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|380ed9e8-a889-0016-1372-cb714df10df1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":250,"direction":null,"effectIn":true},"createdOn":1566861141160},"e-78":{"id":"e-78","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-79"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|4de273b0-2571-7774-e67e-d1a4dbbbf9c1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566861159589},"e-80":{"id":"e-80","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-81"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed41e0d326f80|4de273b0-2571-7774-e67e-d1a4dbbbf9c8"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":250,"direction":null,"effectIn":true},"createdOn":1566861169082},"e-82":{"id":"e-82","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","config":{"actionListId":"slideInBottom","autoStopEventId":"e-83"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".demo-container","originalId":"5f7cea2f5aeed41e0d326f80|31df7a85-1323-9594-818a-eadd164026d8","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1566861183098},"e-84":{"id":"e-84","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-85"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|f4e63b6f-898e-92aa-8399-d944af82ccdf"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873653000},"e-86":{"id":"e-86","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-87"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|f4e63b6f-898e-92aa-8399-d944af82ccd1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873664272},"e-88":{"id":"e-88","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-89"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".team-member","originalId":"5f7cea2f5aeed418cf326f8a|880043bd-d1e0-1924-cb58-1277f8ce3189","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873676816},"e-90":{"id":"e-90","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-91"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|6151d294-06ed-7444-78eb-819ae61194f9"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873690012},"e-92":{"id":"e-92","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-93"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|6151d294-06ed-7444-78eb-819ae6119500"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873700869},"e-94":{"id":"e-94","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","config":{"actionListId":"slideInBottom","autoStopEventId":"e-95"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".cta-container","originalId":"3af66913-a4ab-bdb7-fd6f-e1e707befb4e","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"BOTTOM","effectIn":true},"createdOn":1566873718995},"e-96":{"id":"e-96","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-97"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|f4e4c23f-9696-d033-284c-5930c63006e4"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873742251},"e-98":{"id":"e-98","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-99"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|f4e4c23f-9696-d033-284c-5930c63006ea"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":250,"direction":null,"effectIn":true},"createdOn":1566873751483},"e-100":{"id":"e-100","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-101"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed418cf326f8a|f4e4c23f-9696-d033-284c-5930c63006f0"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":500,"direction":null,"effectIn":true},"createdOn":1566873770662},"e-102":{"id":"e-102","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-103"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed49777326f89|b413be71-d3fa-6b10-4365-2e127a6bf33f"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true}
21153,"createdOn":1566873812741},"e-104":{"id":"e-104","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-105"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".section-title","originalId":"5f7cea2f5aeed49777326f89|171a80d0-8855-8025-d305-a47a1a28ba60","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873823990},"e-106":{"id":"e-106","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","config":{"actionListId":"slideInRight","autoStopEventId":"e-107"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".timeline-item.timeline-item-right","originalId":"5f7cea2f5aeed49777326f89|70e66ec3-5289-63e0-6000-3d677e244afa","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"RIGHT","effectIn":true},"createdOn":1566873853804},"e-108":{"id":"e-108","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"SLIDE_EFFECT","config":{"actionListId":"slideInLeft","autoStopEventId":"e-109"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".timeline-item","originalId":"5f7cea2f5aeed49777326f89|72a46860-0149-7ac0-d0b0-923476ce6ff6","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":"LEFT","effectIn":true},"createdOn":1566873865906},"e-110":{"id":"e-110","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-111"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed49777326f89|f4e63b6f-898e-92aa-8399-d944af82ccdf"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873877686},"e-112":{"id":"e-112","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-113"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed49777326f89|f4e63b6f-898e-92aa-8399-d944af82ccd1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873886864},"e-114":{"id":"e-114","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-115"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".video-lightbox-container","originalId":"5f7cea2f5aeed467d3326f88|19f75d04-8898-4e70-fdf7-0d75616b3682","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873910064},"e-116":{"id":"e-116","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-117"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed467d3326f88|67906d49-ec0f-7356-a6fa-501308bbe8d4"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873932945},"e-118":{"id":"e-118","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-119"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed467d3326f88|1319c0ba-a460-e34d-ce98-23f5025f35e3"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873941136},"e-120":{"id":"e-120","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-121"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4
2115367d3326f88|79f6fbdd-e8f7-f7dc-92f6-cbf5d5e65bd2"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873950798},"e-122":{"id":"e-122","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-123"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed467d3326f88|79f6fbdd-e8f7-f7dc-92f6-cbf5d5e65bba"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566873958946},"e-124":{"id":"e-124","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-125"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed47c23326f8d|c943334d-9ead-ecfd-dfc0-c31490c130c8"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874347420},"e-126":{"id":"e-126","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"GROW_EFFECT","config":{"actionListId":"growIn","autoStopEventId":"e-127"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed47c23326f8d|2ecac598-6211-0448-67ab-f04054a22ca2"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874356624},"e-128":{"id":"e-128","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-129"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|f4e63b6f-898e-92aa-8399-d944af82ccd1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874471643},"e-130":{"id":"e-130","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-131"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|551b0760-2451-5ac0-cc36-07c3981a14a5"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874482986},"e-132":{"id":"e-132","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-133"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|f4e63b6f-898e-92aa-8399-d944af82ccdf"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874492748},"e-134":{"id":"e-134","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-135"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|551b0760-2451-5ac0-cc36-07c3981a14cd"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874505699},"e-136":{"id":"e-136","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-137"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|0fdaab95-5af3-a28c-5b05-adab39932f66"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874515888},"e-138":{"id":"e-138","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-139"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed40cc8326f8c|0fdaab95-5af3-a28c-5b05-adab39932f3e"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874524742},"e-140":{"id":"e-140","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-141"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed479f6326f94|3011ae6b-43d4-757b-2c54-f7ca4c390b93"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874609324},"e-142":{"id":"e-142","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-143"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4421a326f95|591a310f-cd9f-ee87-5279-c6b4a860c768"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874709180}
21153,"e-144":{"id":"e-144","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-145"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4421a326f95|591a310f-cd9f-ee87-5279-c6b4a860c790"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874718561},"e-146":{"id":"e-146","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-147"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed46949326f9d|fcfb1eb7-ad26-f467-f92a-3e277e55610f"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874768141},"e-148":{"id":"e-148","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-149"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed46949326f9d|fcfb1eb7-ad26-f467-f92a-3e277e556122"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874776274},"e-154":{"id":"e-154","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-155"},"instant":false},"mediaQueries":["main","medium"],"target":{"selector":".icon-list-item.icon-list-item-large.card","originalId":"5f7cea2f5aeed4b16c326f9e|4e9a5c9d-251b-3a4d-b84c-5fe62de1871d","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874821748},"e-156":{"id":"e-156","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-157"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4b16c326f9e|434aab7a-9b25-1f95-7836-9edd707bf277"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874830444},"e-158":{"id":"e-158","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-159"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4b16c326f9e|9109e042-81f1-e823-5cab-458730b3a250"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874839478},"e-160":{"id":"e-160","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-161"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4b16c326f9e|9109e042-81f1-e823-5cab-458730b3a258"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874847903},"e-162":{"id":"e-162","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-163"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45846326f9f|c556fdbd-f199-4008-b1d7-28167e7027e7"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874888246},"e-164":{"id":"e-164","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-165"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45846326f9f|c556fdbd-f199-4008-b1d7-28167e7027bf"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874894410},"e-166":{"id":"e-166","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-167"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45846326f9f|d030367b-685f-f69b-e49b-74cf077ccb63"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874903850},"e-168":{"id":"e-168","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-169"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45846326f9f|d030367b-685f-f69b-e49b-74cf077ccb5c"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874912277},"e-170":{"id":"e-170","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-171"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4f726326fa0|29ec5744-b56a-8fb0-1f28-372876f4b16e"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874935306},"e-172":{"id":"e-172","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-173"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4f726326fa0|29ec5744-b56a-8fb0-1f28-372876f4b156"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874943507},"e-174":{"id":"e-174","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-175"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|eb8e0e34-fdbe-1c82-c0f2-93e31ec13b19"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566874998045}
21153,"e-176":{"id":"e-176","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-177"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|eb8e0e34-fdbe-1c82-c0f2-93e31ec13b31"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566875008197},"e-178":{"id":"e-178","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-179"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|44392856-c860-bb6d-c912-c4e7a6ec91ed"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566875027499},"e-180":{"id":"e-180","name":"","eventTypeId":"SCROLL_INTO_VIEW","action":{"id":"","actionTypeId":"FADE_EFFECT","config":{"actionListId":"fadeIn","autoStopEventId":"e-181"},"instant":false},"mediaQueries":["main","medium"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed4d0c8326fa1|44392856-c860-bb6d-c912-c4e7a6ec91e5"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":0,"scrollOffsetUnit":"%","delay":0,"direction":null,"effectIn":true},"createdOn":1566875036014},"e-182":{"id":"e-182","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed479e9326fa2|7e162033-e85f-e101-4b3f-9153d3decee7"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1566875274842},"e-183":{"id":"e-183","name":"","eventTypeId":"NAVBAR_OPEN","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-3","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-184"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".navbar","originalId":"cec6feca-7767-79ce-475e-53ba9fa67cf2","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1569206849008},"e-184":{"id":"e-184","name":"","eventTypeId":"NAVBAR_CLOSE","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-4","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-183"}},"mediaQueries":["main","medium","small","tiny"],"target":{"selector":".navbar","originalId":"cec6feca-7767-79ce-475e-53ba9fa67cf2","appliesTo":"CLASS"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1569206849014},"e-185":{"id":"e-185","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed45e61327027"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1576103868852},"e-186":{"id":"e-186","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed45e61327027|7553a581-113a-88ae-0b78-511d7f79b584"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1576103868852},"e-187":{"id":"e-187","name":"","eventTypeId":"PAGE_SCROLL","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-5","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f7cea2f5aeed4
211536f22327028"},"targets":[],"config":[{"continuousParameterGroupId":"a-5-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1595896523548},"e-188":{"id":"e-188","name":"","eventTypeId":"SCROLLING_IN_VIEW","action":{"id":"","actionTypeId":"GENERAL_CONTINUOUS_ACTION","config":{"actionListId":"a-7","affectedElements":{},"duration":0}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f7cea2f5aeed46f22327028|84d7ff8f-ba77-75ea-17d7-a0f44b4118a0"},"targets":[],"config":[{"continuousParameterGroupId":"a-7-p","smoothing":50,"startsEntering":true,"addStartOffset":false,"addOffsetValue":50,"startsExiting":false,"addEndOffset":false,"endOffsetValue":50}],"createdOn":1595896523548}},"actionLists":{"a":{"id":"a","title":"Expandable Open","actionItemGroups":[{"actionItems":[{"id":"a-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"block","target":{"useEventTarget":"SIBLINGS","selector":".expandable-content-wrapper","selectorGuids":["d4f1dd39-c7bb-8b52-b502-116fddaf8722"]}}},{"id":"a-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".expandable-icon","selectorGuids":["d4f1dd39-c7bb-8b52-b502-116fddaf8721"]},"zValue":90,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}],"createdOn":1565568653025,"useFirstGroupAsInitialState":false},"a-2":{"id":"a-2","title":"Expandable Close","actionItemGroups":[{"actionItems":[{"id":"a-2-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"useEventTarget":"SIBLINGS","selector":".expandable-content-wrapper","selectorGuids":["d4f1dd39-c7bb-8b52-b502-116fddaf8722"]}}},{"id":"a-2-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"useEventTarget":"CHILDREN","selector":".expandable-icon","selectorGuids":["d4f1dd39-c7bb-8b52-b502-116fddaf8721"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}}]}],"createdOn":1565568653025,"useFirstGroupAsInitialState":false},"a-5":{"id":"a-5","title":"Show Back To Top Button","continuousParameterGroups":[{"id":"a-5-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-5-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"value":0,"unit":""}},{"id":"a-5-n-4","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"yValue":100,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]},{"keyframe":20,"actionItems":[{"id":"a-5-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"value":0,"unit":""}},{"id":"a-5-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"yValue":100,"xUnit":"PX","yUnit":"%","zUnit":"PX"}}]},{"keyframe":25,"actionItems":[{"id":"a-5-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"yValue":0,"xUnit":"PX","yUnit":"%","zUnit":"PX"}},{"id":"a-5-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".back-to-top","selectorGuids":["08a828e6-59f8-df5d-867a-e3e7fa39ad46"]},"value":1,"unit":""}}]}]}],"createdOn":1565579024705},"a-7":{"id":"a-7","title":"Parallax Slow","continuousParameterGroups":[{"id":"a-7-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-7-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"5f7cea2f5aeed41e0d326f80|35f9b2b5-6f2e-bcc0-b419-0ce254d19861"},"yValue":48,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"keyframe":100,"actionItems":[{"id":"a-7-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":true,"id":"5f7cea2f5aeed41e0d326f80|35f9b2b5-6f2e-bcc0-b419-0ce254d19861"},"yValue":-48,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]}]}],"createdOn":1565586478204},"a-21":{"id":"a-21","title":"Dismiss Announcement Bar","actionItemGroups":[{"actionItems":[{"id":"a-21-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"useEventTarget":"PARENT","selector":".announcement-bar.bg-gray-1","selectorGuids":["24a636f5-3ecc-1a03-6e1b-b37d552d276d","9b161a48-ea4f-d4e1-2eb6-912155a5ac45"]}}}]}],"createdOn":1565740734846,"useFirstGroupAsInitialState":false},"a-22":{"id":"a-22","title":"Add BG To Transparent Navbar","continuousParameterGroups":[{"id":"a-22-p","type":"SCROLL_PROGRESS","parameterLabel":"Scroll","continuousActionGroups":[{"keyframe":0,"actionItems":[{"id":"a-22-n","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".navbar-container.sticky-top","selectorGuids":["7fece259-2f99-b509-00ab-7546f943bd26","5b452738-f61e-cbe9-7be6-5f6c5497f0bc"]},"rValue":0,"gValue":84,"bValue":80,"aValue":0}}]},{"keyframe":5,"actionItems":[{"id":"a-22-n-2","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":500,"globalSwatchId":"db82bbd0","target":{"selector":".navbar-container.sticky-top","selectorGuids":["7fece259-2f99-b509-00ab-7546f943bd26","5b452738-f61e-cbe9-7be6-5f6c5497f0bc"]},"rValue":0,"gValue":84,"bValue":80,"aValue":1}}]}]}],"createdOn":1565746261211},"a-3":{"id":"a-3","title":"Navbar Toggle Open","actionItemGroups":[{"actionItems":[{"id":"a-3-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-3-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-3-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"xValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-3-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"value":1,"unit":""}},{"id":"a-3-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-icon","selectorGuids":["ae495988-f7ae-363c-ef99-a16d6760fdef"]},"value":0,"unit":""}},{"id":"a-3-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-icon","selectorGuids":["ae495988-f7ae-363c-ef99-a16d6760fdef"]},"xValue":-100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]}],"createdOn":1565573344724,"useFirstGroupAsInitialState":true},"a-4":{"id":"a-4","title":"Navbar Toggle Close","actionItemGroups":[{"actionItems":[{"id":"a-4-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"value":0,"unit":""}},{"id":"a-4-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-cross-icon","selectorGuids":["b5980122-770c-805b-6026-eae1ec048768"]},"xValue":100,"xUnit":"%","yUnit":"PX","zUnit":"PX"}},{"id":"a-4-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-icon","selectorGuids":["ae495988-f7ae-363c-ef99-a16d6760fdef"]},"value":1,"unit":""}},{"id":"a-4-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":250,"target":{"useEventTarget":"CHILDREN","selector":".navbar-toggle-icon","selectorGuids":["ae495988-f7ae-363c-ef99-a16d6760fdef"]},"xValue":0,"xUnit":"%","yUnit":"PX","zUnit":"PX"}}]}],"createdOn":1565573344724,"useFirstGroupAsInitialState":false},"fadeIn":{"id":"fadeIn","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}}]}]},"slideInBottom":{"id":"slideInBottom","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":100,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}}]}]}
21153,"slideInRight":{"id":"slideInRight","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":100,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}},{"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"}}]}]},"slideInLeft":{"id":"slideInLeft","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":-100,"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"outQuart","duration":1000,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":1}},{"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"}}]}]},"growIn":{"id":"growIn","useFirstGroupAsInitialState":true,"actionItemGroups":[{"actionItems":[{"actionTypeId":"STYLE_OPACITY","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"value":0}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"duration":0,"target":{"id":"N/A","appliesTo":"TRIGGER_ELEMENT","useEventTarget":true},"xValue":0.7500000000000001,"yValue":0.7500000000000001}}]},{"actionItems":[{"actionTypeId":"TRANSFORM_SCALE","config":{"delay":0,"easing":"outQuart","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}]}} 21154);
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.