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 = 121); 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__(170); 157 158Object.keys(_triggerEvents).forEach(function (key) { 159 if (key === "default" || key === "__esModule") return; 160 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 161 Object.defineProperty(exports, key, { 162 enumerable: true, 163 get: function get() { 164 return _triggerEvents[key]; 165 } 166 }); 167}); 168 169var _animationActions = __webpack_require__(171); 170 171Object.keys(_animationActions).forEach(function (key) { 172 if (key === "default" || key === "__esModule") return; 173 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 174 Object.defineProperty(exports, key, { 175 enumerable: true, 176 get: function get() { 177 return _animationActions[key]; 178 } 179 }); 180}); 181 182var _triggerInteractions = __webpack_require__(172); 183 184Object.keys(_triggerInteractions).forEach(function (key) { 185 if (key === "default" || key === "__esModule") return; 186 if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return; 187 Object.defineProperty(exports, key, { 188 enumerable: true, 189 get: function get() { 190 return _triggerInteractions[key]; 191 } 192 }); 193}); 194 195var IX2EngineActionTypes = _interopRequireWildcard(__webpack_require__(173)); 196 197exports.IX2EngineActionTypes = IX2EngineActionTypes; 198 199var IX2EngineConstants = _interopRequireWildcard(__webpack_require__(174)); 200 201exports.IX2EngineConstants = IX2EngineConstants; 202 203/***/ }), 204/* 3 */ 205/***/ (function(module, exports, __webpack_require__) { 206 207/* WEBPACK VAR INJECTION */(function(global) {var O = 'object'; 208var check = function (it) { 209 return it && it.Math == Math && it; 210}; 211 212// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 213module.exports = 214 // eslint-disable-next-line no-undef 215 check(typeof globalThis == O && globalThis) || 216 check(typeof window == O && window) || 217 check(typeof self == O && self) || 218 check(typeof global == O && global) || 219 // eslint-disable-next-line no-new-func 220 Function('return this')(); 221 222/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 223 224/***/ }), 225/* 4 */ 226/***/ (function(module, exports, __webpack_require__) { 227 228var freeGlobal = __webpack_require__(90); 229 230/** Detect free variable `self`. */ 231var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 232 233/** Used as a reference to the global object. */ 234var root = freeGlobal || freeSelf || Function('return this')(); 235 236module.exports = root; 237 238 239/***/ }), 240/* 5 */ 241/***/ (function(module, exports, __webpack_require__) { 242 243"use strict"; 244 // @wf-will-never-add-flow-to-this-file 245 246/* globals window, document, navigator, WEBFLOW_ENV_TEST */ 247 248/* eslint-disable no-var */ 249 250/** 251 * Webflow: Core site library 252 */ 253 254var Webflow = {}; 255var modules = {}; 256var primary = []; 257var secondary = window.Webflow || []; 258var $ = window.jQuery; 259var $win = $(window); 260var $doc = $(document); 261var isFunction = $.isFunction; 262 263var _ = Webflow._ = __webpack_require__(123); 264 265var tram = Webflow.tram = __webpack_require__(66) && $.tram; 266var domready = false; 267var destroyed = false; 268tram.config.hideBackface = false; 269tram.config.keepInherited = true; 270/** 271 * Webflow.define - Define a named module 272 * @param {string} name 273 * @param {function} factory 274 * @param {object} options 275 * @return {object} 276 */ 277 278Webflow.define = function (name, factory, options) { 279 if (modules[name]) { 280 unbindModule(modules[name]); 281 } 282 283 var instance = modules[name] = factory($, _, options) || {}; 284 bindModule(instance); 285 return instance; 286}; 287/** 288 * Webflow.require - Require a named module 289 * @param {string} name 290 * @return {object} 291 */ 292 293 294Webflow.require = function (name) { 295 return modules[name]; 296}; 297 298function bindModule(module) { 299 // If running in Webflow app, subscribe to design/preview events 300 if (Webflow.env()) { 301 isFunction(module.design) && $win.on('__wf_design', module.design); 302 isFunction(module.preview) && $win.on('__wf_preview', module.preview); 303 } // Subscribe to front-end destroy event 304 305 306 isFunction(module.destroy) && $win.on('__wf_destroy', module.destroy); // Look for ready method on module 307 308 if (module.ready && isFunction(module.ready)) { 309 addReady(module); 310 } 311} 312 313function addReady(module) { 314 // If domready has already happened, run ready method 315 if (domready) { 316 module.ready(); 317 return; 318 } // Otherwise add ready method to the primary queue (only once) 319 320 321 if (_.contains(primary, module.ready)) { 322 return; 323 } 324 325 primary.push(module.ready); 326} 327 328function unbindModule(module) { 329 // Unsubscribe module from window events 330 isFunction(module.design) && $win.off('__wf_design', module.design); 331 isFunction(module.preview) && $win.off('__wf_preview', module.preview); 332 isFunction(module.destroy) && $win.off('__wf_destroy', module.destroy); // Remove ready method from primary queue 333 334 if (module.ready && isFunction(module.ready)) { 335 removeReady(module); 336 } 337} 338 339function removeReady(module) { 340 primary = _.filter(primary, function (readyFn) { 341 return readyFn !== module.ready; 342 }); 343} 344/** 345 * Webflow.push - Add a ready handler into secondary queue 346 * @param {function} ready Callback to invoke on domready 347 */ 348 349 350Webflow.push = function (ready) { 351 // If domready has already happened, invoke handler 352 if (domready) { 353 isFunction(ready) && ready(); 354 return; 355 } // Otherwise push into secondary queue 356 357 358 secondary.push(ready); 359}; 360/** 361 * Webflow.env - Get the state of the Webflow app 362 * @param {string} mode [optional] 363 * @return {boolean} 364 */ 365 366 367Webflow.env = function (mode) { 368 var designFlag = window.__wf_design; 369 var inApp = typeof designFlag !== 'undefined'; 370 371 if (!mode) { 372 return inApp; 373 } 374 375 if (mode === 'design') { 376 return inApp && designFlag; 377 } 378 379 if (mode === 'preview') { 380 return inApp && !designFlag; 381 } 382 383 if (mode === 'slug') { 384 return inApp && window.__wf_slug; 385 } 386 387 if (mode === 'editor') { 388 return window.WebflowEditor; 389 } 390 391 if (mode === 'test') { 392 return false || window.__wf_test; 393 } 394 395 if (mode === 'frame') { 396 return window !== window.top; 397 } 398}; // Feature detects + browser sniffs ಠ_ಠ399 400 401var userAgent = navigator.userAgent.toLowerCase(); 402var touch = Webflow.env.touch = 'ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch; 403var chrome = Webflow.env.chrome = /chrome/.test(userAgent) && /Google/.test(navigator.vendor) && parseInt(userAgent.match(/chrome\/(\d+)\./)[1], 10); 404var ios = Webflow.env.ios = /(ipod|iphone|ipad)/.test(userAgent); 405Webflow.env.safari = /safari/.test(userAgent) && !chrome && !ios; // Maintain current touch target to prevent late clicks on touch devices 406 407var touchTarget; // Listen for both events to support touch/mouse hybrid devices 408 409touch && $doc.on('touchstart mousedown', function (evt) { 410 touchTarget = evt.target; 411}); 412/** 413 * Webflow.validClick - validate click target against current touch target 414 * @param {HTMLElement} clickTarget Element being clicked 415 * @return {Boolean} True if click target is valid (always true on non-touch) 416 */ 417 418Webflow.validClick = touch ? function (clickTarget) { 419 return clickTarget === touchTarget || $.contains(clickTarget, touchTarget); 420} : function () { 421 return true; 422}; 423/** 424 * Webflow.resize, Webflow.scroll - throttled event proxies 425 */ 426 427var resizeEvents = 'resize.webflow orientationchange.webflow load.webflow';
428var scrollEvents = 'scroll.webflow ' + resizeEvents; 429Webflow.resize = eventProxy($win, resizeEvents); 430Webflow.scroll = eventProxy($win, scrollEvents); 431Webflow.redraw = eventProxy(); // Create a proxy instance for throttled events 432 433function eventProxy(target, types) { 434 // Set up throttled method (using custom frame-based _.throttle) 435 var handlers = []; 436 var proxy = {}; 437 proxy.up = _.throttle(function (evt) { 438 _.each(handlers, function (h) { 439 h(evt); 440 }); 441 }); // Bind events to target 442 443 if (target && types) { 444 target.on(types, proxy.up); 445 } 446 /** 447 * Add an event handler 448 * @param {function} handler 449 */ 450 451 452 proxy.on = function (handler) { 453 if (typeof handler !== 'function') { 454 return; 455 } 456 457 if (_.contains(handlers, handler)) { 458 return; 459 } 460 461 handlers.push(handler); 462 }; 463 /** 464 * Remove an event handler 465 * @param {function} handler 466 */ 467 468 469 proxy.off = function (handler) { 470 // If no arguments supplied, clear all handlers 471 if (!arguments.length) { 472 handlers = []; 473 return; 474 } // Otherwise, remove handler from the list 475 476 477 handlers = _.filter(handlers, function (h) { 478 return h !== handler; 479 }); 480 }; 481 482 return proxy; 483} // Webflow.location - Wrap window.location in api 484 485 486Webflow.location = function (url) { 487 window.location = url; 488}; 489 490if (Webflow.env()) { 491 // Ignore redirects inside a Webflow design/edit environment 492 Webflow.location = function () {}; 493} // Webflow.ready - Call primary and secondary handlers 494 495 496Webflow.ready = function () { 497 domready = true; // Restore modules after destroy 498 499 if (destroyed) { 500 restoreModules(); // Otherwise run primary ready methods 501 } else { 502 _.each(primary, callReady); 503 } // Run secondary ready methods 504 505 506 _.each(secondary, callReady); // Trigger resize 507 508 509 Webflow.resize.up(); 510}; 511 512function callReady(readyFn) { 513 isFunction(readyFn) && readyFn(); 514} 515 516function restoreModules() { 517 destroyed = false; 518 519 _.each(modules, bindModule); 520} 521/** 522 * Webflow.load - Add a window load handler that will run even if load event has already happened 523 * @param {function} handler 524 */ 525 526 527var deferLoad; 528 529Webflow.load = function (handler) { 530 deferLoad.then(handler); 531}; 532 533function bindLoad() { 534 // Reject any previous deferred (to support destroy) 535 if (deferLoad) { 536 deferLoad.reject(); 537 $win.off('load', deferLoad.resolve); 538 } // Create deferred and bind window load event 539 540 541 deferLoad = new $.Deferred(); 542 $win.on('load', deferLoad.resolve); 543} // Webflow.destroy - Trigger a destroy event for all modules 544 545 546Webflow.destroy = function (options) { 547 options = options || {}; 548 destroyed = true; 549 $win.triggerHandler('__wf_destroy'); // Allow domready reset for tests 550 551 if (options.domready != null) { 552 domready = options.domready; 553 } // Unbind modules 554 555 556 _.each(modules, unbindModule); // Clear any proxy event handlers 557 558 559 Webflow.resize.off(); 560 Webflow.scroll.off(); 561 Webflow.redraw.off(); // Clear any queued ready methods 562 563 primary = []; 564 secondary = []; // If load event has not yet fired, replace the deferred 565 566 if (deferLoad.state() === 'pending') { 567 bindLoad(); 568 } 569}; // Listen for domready 570 571 572$(Webflow.ready); // Listen for window.onload and resolve deferred 573 574bindLoad(); // Export commonjs module 575 576module.exports = window.Webflow = Webflow; 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__(177), 620 baseMatchesProperty = __webpack_require__(231), 621 identity = __webpack_require__(60), 622 isArray = __webpack_require__(1), 623 property = __webpack_require__(240); 624 625/** 626 * The base implementation of `_.iteratee`. 627 * 628 * @private 629 * @param {*} [value=_.identity] The value to convert to an iteratee. 630 * @returns {Function} Returns the iteratee. 631 */ 632function baseIteratee(value) { 633 // Don't store the `typeof` result in a variable to avoid a JIT bug in Safari 9. 634 // See https://bugs.webkit.org/show_bug.cgi?id=156034 for more details. 635 if (typeof value == 'function') { 636 return value; 637 } 638 if (value == null) { 639 return identity; 640 } 641 if (typeof value == 'object') { 642 return isArray(value) 643 ? baseMatchesProperty(value[0], value[1]) 644 : baseMatches(value); 645 } 646 return property(value); 647} 648 649module.exports = baseIteratee; 650 651 652/***/ }), 653/* 8 */ 654/***/ (function(module, exports, __webpack_require__) { 655 656var baseIsNative = __webpack_require__(189), 657 getValue = __webpack_require__(194); 658 659/** 660 * Gets the native function at `key` of `object`. 661 * 662 * @private 663 * @param {Object} object The object to query. 664 * @param {string} key The key of the method to get. 665 * @returns {*} Returns the function if it's native, else `undefined`. 666 */ 667function getNative(object, key) { 668 var value = getValue(object, key); 669 return baseIsNative(value) ? value : undefined; 670} 671 672module.exports = getNative; 673 674 675/***/ }), 676/* 9 */
677/***/ (function(module, exports) { 678 679/** 680 * Checks if `value` is object-like. A value is object-like if it's not `null` 681 * and has a `typeof` result of "object". 682 * 683 * @static 684 * @memberOf _ 685 * @since 4.0.0 686 * @category Lang 687 * @param {*} value The value to check. 688 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 689 * @example 690 * 691 * _.isObjectLike({}); 692 * // => true 693 * 694 * _.isObjectLike([1, 2, 3]); 695 * // => true 696 * 697 * _.isObjectLike(_.noop); 698 * // => false 699 * 700 * _.isObjectLike(null); 701 * // => false 702 */ 703function isObjectLike(value) { 704 return value != null && typeof value == 'object'; 705} 706 707module.exports = isObjectLike; 708 709 710/***/ }), 711/* 10 */ 712/***/ (function(module, exports, __webpack_require__) { 713 714"use strict"; 715 716 717var _interopRequireWildcard = __webpack_require__(13); 718 719Object.defineProperty(exports, "__esModule", { 720 value: true 721}); 722exports.IX2VanillaUtils = exports.IX2VanillaPlugins = exports.IX2ElementsReducer = exports.IX2EasingUtils = exports.IX2Easings = exports.IX2BrowserSupport = void 0; 723 724var IX2BrowserSupport = _interopRequireWildcard(__webpack_require__(46)); 725 726exports.IX2BrowserSupport = IX2BrowserSupport; 727 728var IX2Easings = _interopRequireWildcard(__webpack_require__(107)); 729 730exports.IX2Easings = IX2Easings; 731 732var IX2EasingUtils = _interopRequireWildcard(__webpack_require__(109)); 733 734exports.IX2EasingUtils = IX2EasingUtils; 735 736var IX2ElementsReducer = _interopRequireWildcard(__webpack_require__(247)); 737 738exports.IX2ElementsReducer = IX2ElementsReducer; 739 740var IX2VanillaPlugins = _interopRequireWildcard(__webpack_require__(111)); 741 742exports.IX2VanillaPlugins = IX2VanillaPlugins; 743 744var IX2VanillaUtils = _interopRequireWildcard(__webpack_require__(249)); 745 746exports.IX2VanillaUtils = IX2VanillaUtils; 747 748/***/ }), 749/* 11 */ 750/***/ (function(module, exports, __webpack_require__) { 751 752var Symbol = __webpack_require__(19), 753 getRawTag = __webpack_require__(190), 754 objectToString = __webpack_require__(191); 755 756/** `Object#toString` result references. */ 757var nullTag = '[object Null]', 758 undefinedTag = '[object Undefined]'; 759 760/** Built-in value references. */ 761var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 762 763/** 764 * The base implementation of `getTag` without fallbacks for buggy environments. 765 * 766 * @private 767 * @param {*} value The value to query. 768 * @returns {string} Returns the `toStringTag`. 769 */ 770function baseGetTag(value) { 771 if (value == null) { 772 return value === undefined ? undefinedTag : nullTag; 773 } 774 return (symToStringTag && symToStringTag in Object(value)) 775 ? getRawTag(value) 776 : objectToString(value); 777} 778 779module.exports = baseGetTag; 780 781 782/***/ }), 783/* 12 */ 784/***/ (function(module, exports, __webpack_require__) { 785 786var isFunction = __webpack_require__(89), 787 isLength = __webpack_require__(54); 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__(40); 894var createPropertyDescriptor = __webpack_require__(68); 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__(4); 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__(36); 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) { 1637 1638var g; 1639 1640// This works in non-strict mode 1641g = (function() { 1642 return this; 1643})(); 1644 1645try { 1646 // This works if eval is allowed (see CSP) 1647 g = g || new Function("return this")(); 1648} catch (e) { 1649 // This works if the window reference is available 1650 if (typeof window === "object") g = window; 1651} 1652 1653// g can still be undefined, but nothing to do about it... 1654// We return undefined, instead of nothing here, so it's 1655// easier to handle this case. if(!global) { ...} 1656 1657module.exports = g; 1658 1659 1660/***/ }), 1661/* 23 */ 1662/***/ (function(module, exports) { 1663 1664module.exports = function (it) { 1665 return typeof it === 'object' ? it !== null : typeof it === 'function'; 1666}; 1667 1668 1669/***/ }), 1670/* 24 */ 1671/***/ (function(module, exports, __webpack_require__) { 1672 1673var isObject = __webpack_require__(23); 1674 1675module.exports = function (it) { 1676 if (!isObject(it)) { 1677 throw TypeError(String(it) + ' is not an object'); 1678 } return it; 1679}; 1680 1681 1682/***/ }), 1683/* 25 */ 1684/***/ (function(module, exports, __webpack_require__) { 1685 1686var global = __webpack_require__(3); 1687var setGlobal = __webpack_require__(41); 1688var IS_PURE = __webpack_require__(136); 1689 1690var SHARED = '__core-js_shared__'; 1691var store = global[SHARED] || setGlobal(SHARED, {}); 1692 1693(module.exports = function (key, value) { 1694 return store[key] || (store[key] = value !== undefined ? value : {}); 1695})('versions', []).push({ 1696 version: '3.1.3', 1697 mode: IS_PURE ? 'pure' : 'global', 1698 copyright: '© 2019 Denis Pushkarev (zloirock.ru)' 1699}); 1700 1701 1702/***/ }), 1703/* 26 */ 1704/***/ (function(module, exports) { 1705 1706function _defineProperty(obj, key, value) { 1707 if (key in obj) { 1708 Object.defineProperty(obj, key, { 1709 value: value, 1710 enumerable: true, 1711 configurable: true, 1712 writable: true 1713 }); 1714 } else { 1715 obj[key] = value; 1716 } 1717 1718 return obj; 1719} 1720 1721module.exports = _defineProperty; 1722 1723/***/ }), 1724/* 27 */ 1725/***/ (function(module, exports) { 1726 1727function _extends() { 1728 module.exports = _extends = Object.assign || function (target) { 1729 for (var i = 1; i < arguments.length; i++) { 1730 var source = arguments[i]; 1731 1732 for (var key in source) { 1733 if (Object.prototype.hasOwnProperty.call(source, key)) { 1734 target[key] = source[key]; 1735 } 1736 } 1737 } 1738 1739 return target; 1740 }; 1741 1742 return _extends.apply(this, arguments); 1743} 1744 1745module.exports = _extends; 1746 1747/***/ }), 1748/* 28 */ 1749/***/ (function(module, exports, __webpack_require__) { 1750 1751var listCacheClear = __webpack_require__(179), 1752 listCacheDelete = __webpack_require__(180), 1753 listCacheGet = __webpack_require__(181), 1754 listCacheHas = __webpack_require__(182), 1755 listCacheSet = __webpack_require__(183); 1756 1757/** 1758 * Creates an list cache object. 1759 * 1760 * @private 1761 * @constructor 1762 * @param {Array} [entries] The key-value pairs to cache. 1763 */ 1764function ListCache(entries) { 1765 var index = -1, 1766 length = entries == null ? 0 : entries.length; 1767 1768 this.clear(); 1769 while (++index < length) { 1770 var entry = entries[index]; 1771 this.set(entry[0], entry[1]); 1772 } 1773} 1774 1775// Add methods to `ListCache`. 1776ListCache.prototype.clear = listCacheClear; 1777ListCache.prototype['delete'] = listCacheDelete; 1778ListCache.prototype.get = listCacheGet; 1779ListCache.prototype.has = listCacheHas; 1780ListCache.prototype.set = listCacheSet; 1781 1782module.exports = ListCache; 1783 1784 1785/***/ }), 1786/* 29 */ 1787/***/ (function(module, exports, __webpack_require__) { 1788 1789var eq = __webpack_require__(47); 1790 1791/** 1792 * Gets the index at which the `key` is found in `array` of key-value pairs. 1793 * 1794 * @private 1795 * @param {Array} array The array to inspect. 1796 * @param {*}
vendor: 4,532 bytes, lines 1796-1987
1796 key The key to search for. 1797 * @returns {number} Returns the index of the matched value, else `-1`. 1798 */ 1799function assocIndexOf(array, key) { 1800 var length = array.length; 1801 while (length--) { 1802 if (eq(array[length][0], key)) { 1803 return length; 1804 } 1805 } 1806 return -1; 1807} 1808 1809module.exports = assocIndexOf; 1810 1811 1812/***/ }), 1813/* 30 */ 1814/***/ (function(module, exports, __webpack_require__) { 1815 1816var getNative = __webpack_require__(8); 1817 1818/* Built-in method references that are verified to be native. */ 1819var nativeCreate = getNative(Object, 'create'); 1820 1821module.exports = nativeCreate; 1822 1823 1824/***/ }), 1825/* 31 */ 1826/***/ (function(module, exports, __webpack_require__) { 1827 1828var isKeyable = __webpack_require__(203); 1829 1830/** 1831 * Gets the data for `map`. 1832 * 1833 * @private 1834 * @param {Object} map The map to query. 1835 * @param {string} key The reference key. 1836 * @returns {*} Returns the map data. 1837 */ 1838function getMapData(map, key) { 1839 var data = map.__data__; 1840 return isKeyable(key) 1841 ? data[typeof key == 'string' ? 'string' : 'hash'] 1842 : data.map; 1843} 1844 1845module.exports = getMapData; 1846 1847 1848/***/ }), 1849/* 32 */ 1850/***/ (function(module, exports, __webpack_require__) { 1851 1852var arrayLikeKeys = __webpack_require__(97), 1853 baseKeys = __webpack_require__(55), 1854 isArrayLike = __webpack_require__(12); 1855 1856/** 1857 * Creates an array of the own enumerable property names of `object`. 1858 * 1859 * **Note:** Non-object values are coerced to objects. See the 1860 * [ES spec](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 1861 * for more details. 1862 * 1863 * @static 1864 * @since 0.1.0 1865 * @memberOf _ 1866 * @category Object 1867 * @param {Object} object The object to query. 1868 * @returns {Array} Returns the array of property names. 1869 * @example 1870 * 1871 * function Foo() { 1872 * this.a = 1; 1873 * this.b = 2; 1874 * } 1875 * 1876 * Foo.prototype.c = 3; 1877 * 1878 * _.keys(new Foo); 1879 * // => ['a', 'b'] (iteration order is not guaranteed) 1880 * 1881 * _.keys('hi'); 1882 * // => ['0', '1'] 1883 */ 1884function keys(object) { 1885 return isArrayLike(object) ? arrayLikeKeys(object) : baseKeys(object); 1886} 1887 1888module.exports = keys; 1889 1890 1891/***/ }), 1892/* 33 */ 1893/***/ (function(module, exports, __webpack_require__) { 1894 1895var baseIsArguments = __webpack_require__(221), 1896 isObjectLike = __webpack_require__(9); 1897 1898/** Used for built-in method references. */ 1899var objectProto = Object.prototype; 1900 1901/** Used to check objects for own properties. */ 1902var hasOwnProperty = objectProto.hasOwnProperty; 1903 1904/** Built-in value references. */ 1905var propertyIsEnumerable = objectProto.propertyIsEnumerable; 1906 1907/** 1908 * Checks if `value` is likely an `arguments` object. 1909 * 1910 * @static 1911 * @memberOf _ 1912 * @since 0.1.0 1913 * @category Lang 1914 * @param {*} value The value to check. 1915 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 1916 * else `false`. 1917 * @example 1918 * 1919 * _.isArguments(function() { return arguments; }()); 1920 * // => true 1921 * 1922 * _.isArguments([1, 2, 3]); 1923 * // => false 1924 */ 1925var isArguments = baseIsArguments(function() { return arguments; }()) ? baseIsArguments : function(value) { 1926 return isObjectLike(value) && hasOwnProperty.call(value, 'callee') && 1927 !propertyIsEnumerable.call(value, 'callee'); 1928}; 1929 1930module.exports = isArguments; 1931 1932 1933/***/ }), 1934/* 34 */ 1935/***/ (function(module, exports, __webpack_require__) { 1936 1937var baseGet = __webpack_require__(58); 1938 1939/** 1940 * Gets the value at `path` of `object`. If the resolved value is 1941 * `undefined`, the `defaultValue` is returned in its place. 1942 * 1943 * @static 1944 * @memberOf _ 1945 * @since 3.7.0 1946 * @category Object 1947 * @param {Object} object The object to query. 1948 * @param {Array|string} path The path of the property to get. 1949 * @param {*} [defaultValue] The value returned for `undefined` resolved values. 1950 * @returns {*} Returns the resolved value. 1951 * @example 1952 * 1953 * var object = { 'a': [{ 'b': { 'c': 3 } }] }; 1954 * 1955 * _.get(object, 'a[0].b.c'); 1956 * // => 3 1957 * 1958 * _.get(object, ['a', '0', 'b', 'c']); 1959 * // => 3 1960 * 1961 * _.get(object, 'a.b.c', 'default'); 1962 * // => 'default' 1963 */ 1964function get(object, path, defaultValue) { 1965 var result = object == null ? undefined : baseGet(object, path); 1966 return result === undefined ? defaultValue : result; 1967} 1968 1969module.exports = get; 1970 1971 1972/***/ }), 1973/* 35 */ 1974/***/ (function(module, exports, __webpack_require__) { 1975 1976var isArray = __webpack_require__(1), 1977 isKey = __webpack_require__(59), 1978 stringToPath = __webpack_require__(232), 1979 toString = __webpack_require__(235); 1980 1981/** 1982 * Casts `value` to a path array if it's not one. 1983 * 1984 * @private 1985 * @param {*} value The value to inspect. 1986 * @param {Object} [object] The object to query keys on. 1987 * @returns {Array} Returns the cast property path array.
1988 */ 1989function castPath(value, object) { 1990 if (isArray(value)) { 1991 return value; 1992 } 1993 return isKey(value, object) ? [value] : stringToPath(toString(value)); 1994} 1995 1996module.exports = castPath; 1997 1998 1999/***/ }), 2000/* 36 */ 2001/***/ (function(module, exports, __webpack_require__) { 2002 2003var baseGetTag = __webpack_require__(11), 2004 isObjectLike = __webpack_require__(9); 2005 2006/** `Object#toString` result references. */ 2007var symbolTag = '[object Symbol]'; 2008 2009/** 2010 * Checks if `value` is classified as a `Symbol` primitive or object. 2011 * 2012 * @static 2013 * @memberOf _ 2014 * @since 4.0.0 2015 * @category Lang 2016 * @param {*} value The value to check. 2017 * @returns {boolean} Returns `true` if `value` is a symbol, else `false`. 2018 * @example 2019 * 2020 * _.isSymbol(Symbol.iterator); 2021 * // => true 2022 * 2023 * _.isSymbol('abc'); 2024 * // => false 2025 */ 2026function isSymbol(value) { 2027 return typeof value == 'symbol' || 2028 (isObjectLike(value) && baseGetTag(value) == symbolTag); 2029} 2030 2031module.exports = isSymbol; 2032 2033 2034/***/ }), 2035/* 37 */ 2036/***/ (function(module, exports, __webpack_require__) { 2037 2038"use strict";
2039// @wf-will-never-add-flow-to-this-file 2040 2041/* globals window */ 2042 2043/* eslint-disable no-var */ 2044 2045/** 2046 * Webflow: IX Event triggers for other modules 2047 */ 2048// eslint-disable-next-line strict 2049 2050 2051var $ = window.jQuery; 2052var api = {}; 2053var eventQueue = []; 2054var namespace = '.w-ix'; 2055var eventTriggers = { 2056 reset: function reset(i, el) { 2057 el.__wf_intro = null; 2058 }, 2059 intro: function intro(i, el) { 2060 if (el.__wf_intro) { 2061 return; 2062 } 2063 2064 el.__wf_intro = true; 2065 $(el).triggerHandler(api.types.INTRO); 2066 }, 2067 outro: function outro(i, el) { 2068 if (!el.__wf_intro) { 2069 return; 2070 } 2071 2072 el.__wf_intro = null; 2073 $(el).triggerHandler(api.types.OUTRO); 2074 } 2075}; 2076api.triggers = {}; 2077api.types = { 2078 INTRO: 'w-ix-intro' + namespace, 2079 OUTRO: 'w-ix-outro' + namespace 2080}; // Trigger any events in queue + restore trigger methods 2081 2082api.init = function () { 2083 var count = eventQueue.length; 2084 2085 for (var i = 0; i < count; i++) { 2086 var memo = eventQueue[i]; 2087 memo[0](0, memo[1]); 2088 } 2089 2090 eventQueue = []; 2091 $.extend(api.triggers, eventTriggers); 2092}; // Replace all triggers with async wrapper to queue events until init 2093 2094 2095api.async = function () { 2096 for (var key in eventTriggers) { 2097 var func = eventTriggers[key]; 2098 2099 if (!eventTriggers.hasOwnProperty(key)) { 2100 continue; 2101 } // Replace trigger method with async wrapper 2102 2103 2104 api.triggers[key] = function (i, el) { 2105 eventQueue.push([func, el]); 2106 }; 2107 } 2108}; // Default triggers to async queue 2109 2110 2111api.async(); 2112module.exports = api; 2113 2114/***/ }), 2115/* 38 */ 2116/***/ (function(module, exports, __webpack_require__) { 2117 2118"use strict";
2119// @wf-will-never-add-flow-to-this-file 2120 2121/* globals window, document */ 2122 2123/* eslint-disable no-var */ 2124// eslint-disable-next-line strict 2125 2126 2127var IXEvents = __webpack_require__(37); 2128 2129function dispatchCustomEvent(element, eventName) { 2130 var event = document.createEvent('CustomEvent'); 2131 event.initCustomEvent(eventName, true, true, null); 2132 element.dispatchEvent(event); 2133} 2134/** 2135 * Webflow: IX Event triggers for other modules 2136 */ 2137 2138 2139var $ = window.jQuery; 2140var api = {}; 2141var namespace = '.w-ix'; 2142var eventTriggers = { 2143 reset: function reset(i, el) { 2144 IXEvents.triggers.reset(i, el); 2145 }, 2146 intro: function intro(i, el) { 2147 IXEvents.triggers.intro(i, el); 2148 dispatchCustomEvent(el, 'COMPONENT_ACTIVE'); 2149 }, 2150 outro: function outro(i, el) { 2151 IXEvents.triggers.outro(i, el); 2152 dispatchCustomEvent(el, 'COMPONENT_INACTIVE'); 2153 } 2154}; 2155api.triggers = {}; 2156api.types = { 2157 INTRO: 'w-ix-intro' + namespace, 2158 OUTRO: 'w-ix-outro' + namespace 2159}; 2160$.extend(api.triggers, eventTriggers); 2161module.exports = api; 2162 2163/***/ }), 2164/* 39 */ 2165/***/ (function(module, exports, __webpack_require__) { 2166 2167// toObject with fallback for non-array-like ES3 strings 2168var IndexedObject = __webpack_require__(132); 2169var requireObjectCoercible = __webpack_require__(134); 2170 2171module.exports = function (it) { 2172 return IndexedObject(requireObjectCoercible(it)); 2173}; 2174 2175 2176/***/ }), 2177/* 40 */ 2178/***/ (function(module, exports, __webpack_require__) { 2179 2180var DESCRIPTORS = __webpack_require__(14); 2181var IE8_DOM_DEFINE = __webpack_require__(70); 2182var anObject = __webpack_require__(24); 2183var toPrimitive = __webpack_require__(69); 2184 2185var nativeDefineProperty = Object.defineProperty; 2186 2187// `Object.defineProperty` method 2188// https://tc39.github.io/ecma262/#sec-object.defineproperty 2189exports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) { 2190 anObject(O); 2191 P = toPrimitive(P, true); 2192 anObject(Attributes); 2193 if (IE8_DOM_DEFINE) try { 2194 return nativeDefineProperty(O, P, Attributes); 2195 } catch (error) { /* empty */ } 2196 if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported'); 2197 if ('value' in Attributes) O[P] = Attributes.value; 2198 return O; 2199}; 2200 2201 2202/***/ }), 2203/* 41 */ 2204/***/ (function(module, exports, __webpack_require__) { 2205 2206var global = __webpack_require__(3); 2207var hide = __webpack_require__(17); 2208 2209module.exports = function (key, value) { 2210 try { 2211 hide(global, key, value); 2212 } catch (error) { 2213 global[key] = value; 2214 } return value; 2215}; 2216 2217 2218/***/ }), 2219/* 42 */ 2220/***/ (function(module, exports) { 2221 2222module.exports = {}; 2223 2224 2225/***/ }), 2226/* 43 */ 2227/***/ (function(module, exports) { 2228 2229// IE8- don't enum bug keys 2230module.exports = [ 2231 'constructor', 2232 'hasOwnProperty', 2233 'isPrototypeOf', 2234 'propertyIsEnumerable', 2235 'toLocaleString', 2236 'toString', 2237 'valueOf' 2238]; 2239 2240 2241/***/ }), 2242/* 44 */ 2243/***/ (function(module, __webpack_exports__, __webpack_require__) { 2244 2245"use strict"; 2246__webpack_require__.r(__webpack_exports__); 2247/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ActionTypes", function() { return ActionTypes; }); 2248/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return createStore; }); 2249/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(80); 2250/* harmony import */ var symbol_observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(165); 2251 2252 2253 2254/** 2255 * These are private action types reserved by Redux. 2256 * For any unknown actions, you must return the current state. 2257 * If the current state is undefined, you must return the initial state. 2258 * Do not reference these action types directly in your code. 2259 */ 2260var ActionTypes = { 2261 INIT: '@@redux/INIT' 2262}; 2263 2264/** 2265 * Creates a Redux store that holds the state tree. 2266 * The only way to change the data in the store is to call `dispatch()` on it. 2267 *
2268 * There should only be a single store in your app. To specify how different 2269 * parts of the state tree respond to actions, you may combine several reducers 2270 * into a single reducer function by using `combineReducers`. 2271 * 2272 * @param {Function} reducer A function that returns the next state tree, given 2273 * the current state tree and the action to handle. 2274 * 2275 * @param {any} [preloadedState] The initial state. You may optionally specify it 2276 * to hydrate the state from the server in universal apps, or to restore a 2277 * previously serialized user session. 2278 * If you use `combineReducers` to produce the root reducer function, this must be 2279 * an object with the same shape as `combineReducers` keys. 2280 * 2281 * @param {Function} enhancer The store enhancer. You may optionally specify it 2282 * to enhance the store with third-party capabilities such as middleware, 2283 * time travel, persistence, etc. The only store enhancer that ships with Redux 2284 * is `applyMiddleware()`. 2285 * 2286 * @returns {Store} A Redux store that lets you read the state, dispatch actions 2287 * and subscribe to changes. 2288 */ 2289function createStore(reducer, preloadedState, enhancer) { 2290 var _ref2; 2291 2292 if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') { 2293 enhancer = preloadedState; 2294 preloadedState = undefined; 2295 } 2296 2297 if (typeof enhancer !== 'undefined') { 2298 if (typeof enhancer !== 'function') { 2299 throw new Error('Expected the enhancer to be a function.'); 2300 } 2301 2302 return enhancer(createStore)(reducer, preloadedState); 2303 } 2304 2305 if (typeof reducer !== 'function') { 2306 throw new Error('Expected the reducer to be a function.'); 2307 } 2308 2309 var currentReducer = reducer; 2310 var currentState = preloadedState; 2311 var currentListeners = []; 2312 var nextListeners = currentListeners; 2313 var isDispatching = false; 2314 2315 function ensureCanMutateNextListeners() { 2316 if (nextListeners === currentListeners) { 2317 nextListeners = currentListeners.slice(); 2318 } 2319 } 2320 2321 /** 2322 * Reads the state tree managed by the store. 2323 * 2324 * @returns {any} The current state tree of your application. 2325 */ 2326 function getState() { 2327 return currentState; 2328 } 2329 2330 /** 2331 * Adds a change listener. It will be called any time an action is dispatched, 2332 * and some part of the state tree may potentially have changed. You may then 2333 * call `getState()` to read the current state tree inside the callback. 2334 * 2335 * You may call `dispatch()` from a change listener, with the following 2336 * caveats: 2337 * 2338 * 1. The subscriptions are snapshotted just before every `dispatch()` call. 2339 * If you subscribe or unsubscribe while the listeners are being invoked, this 2340 * will not have any effect on the `dispatch()` that is currently in progress. 2341 * However, the next `dispatch()` call, whether nested or not, will use a more 2342 * recent snapshot of the subscription list. 2343 * 2344 * 2. The listener should not expect to see all state changes, as the state 2345 * might have been updated multiple times during a nested `dispatch()` before 2346 * the listener is called. It is, however, guaranteed that all subscribers 2347 * registered before the `dispatch()` started will be called with the latest 2348 * state by the time it exits. 2349 * 2350 * @param {Function} listener A callback to be invoked on every dispatch. 2351 * @returns {Function} A function to remove this change listener. 2352 */ 2353 function subscribe(listener) { 2354 if (typeof listener !== 'function') { 2355 throw new Error('Expected listener to be a function.'); 2356 } 2357 2358 var isSubscribed = true; 2359 2360 ensureCanMutateNextListeners(); 2361 nextListeners.push(listener); 2362 2363 return function unsubscribe() { 2364 if (!isSubscribed) { 2365 return; 2366 } 2367 2368 isSubscribed = false; 2369 2370 ensureCanMutateNextListeners(); 2371 var index = nextListeners.indexOf(listener); 2372 nextListeners.splice(index, 1); 2373 }; 2374 } 2375 2376 /** 2377 * Dispatches an action. It is the only way to trigger a state change. 2378 * 2379 * The `reducer` function, used to create the store, will be called with the 2380 * current state tree and the given `action`. Its return value will 2381 * be considered the **next** state of the tree, and the change listeners 2382 * will be notified. 2383 * 2384 * The base implementation only supports plain object actions. If you want to 2385 * dispatch a Promise, an Observable, a thunk, or something else, you need to 2386 * wrap your store creating function into the corresponding middleware. For 2387 * example, see the documentation for the `redux-thunk` package. Even the 2388 * middleware will eventually dispatch plain object actions using this method. 2389 * 2390 * @param {Object} action A plain object representing âwhat changedâ. It is 2391 * a good idea to keep actions serializable so you can record and replay user 2392 * sessions, or use the time travelling `redux-devtools`. An action must have 2393 * a `type` property which may not be `undefined`. It is a good idea to use 2394 * string constants for action types. 2395 * 2396 * @returns {Object} For convenience, the same action object you dispatched. 2397 * 2398 * Note that, if you use a custom middleware, it may wrap `dispatch()` to 2399 * return something else (for example, a Promise you can await). 2400 */ 2401 function dispatch(action) { 2402 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_0__["default"])(action)) { 2403 throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.'); 2404 } 2405 2406 if (typeof action.type === 'undefined') { 2407 throw new Error('Actions may not have an undefined "type" property. ' + 'Have you misspelled a constant?'); 2408 } 2409 2410 if (isDispatching) { 2411 throw new Error('Reducers may not dispatch actions.'); 2412 } 2413 2414 try { 2415 isDispatching = true; 2416 currentState = currentReducer(currentState, action); 2417 } finally { 2418 isDispatching = false;
2419 } 2420 2421 var listeners = currentListeners = nextListeners; 2422 for (var i = 0; i < listeners.length; i++) { 2423 listeners[i](); 2424 } 2425 2426 return action; 2427 } 2428 2429 /** 2430 * Replaces the reducer currently used by the store to calculate the state. 2431 * 2432 * You might need this if your app implements code splitting and you want to 2433 * load some of the reducers dynamically. You might also need this if you 2434 * implement a hot reloading mechanism for Redux. 2435 * 2436 * @param {Function} nextReducer The reducer for the store to use instead. 2437 * @returns {void} 2438 */ 2439 function replaceReducer(nextReducer) { 2440 if (typeof nextReducer !== 'function') { 2441 throw new Error('Expected the nextReducer to be a function.'); 2442 } 2443 2444 currentReducer = nextReducer; 2445 dispatch({ type: ActionTypes.INIT }); 2446 } 2447 2448 /** 2449 * Interoperability point for observable/reactive libraries. 2450 * @returns {observable} A minimal observable of state changes. 2451 * For more information, see the observable proposal: 2452 * https://github.com/zenparsing/es-observable 2453 */ 2454 function observable() { 2455 var _ref; 2456 2457 var outerSubscribe = subscribe; 2458 return _ref = { 2459 /** 2460 * The minimal observable subscription method. 2461 * @param {Object} observer Any object that can be used as an observer. 2462 * The observer object should have a `next` method. 2463 * @returns {subscription} An object with an `unsubscribe` method that can 2464 * be used to unsubscribe the observable from the store, and prevent further 2465 * emission of values from the observable. 2466 */ 2467 subscribe: function subscribe(observer) { 2468 if (typeof observer !== 'object') { 2469 throw new TypeError('Expected the observer to be an object.'); 2470 } 2471 2472 function observeState() { 2473 if (observer.next) { 2474 observer.next(getState()); 2475 } 2476 } 2477 2478 observeState(); 2479 var unsubscribe = outerSubscribe(observeState); 2480 return { unsubscribe: unsubscribe }; 2481 } 2482 }, _ref[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = function () { 2483 return this; 2484 }, _ref; 2485 } 2486 2487 // When a store is created, an "INIT" action is dispatched so that every 2488 // reducer returns their initial state. This effectively populates 2489 // the initial state tree. 2490 dispatch({ type: ActionTypes.INIT }); 2491 2492 return _ref2 = { 2493 dispatch: dispatch, 2494 subscribe: subscribe, 2495 getState: getState, 2496 replaceReducer: replaceReducer 2497 }, _ref2[symbol_observable__WEBPACK_IMPORTED_MODULE_1__["default"]] = observable, _ref2; 2498} 2499 2500/***/ }), 2501/* 45 */ 2502/***/ (function(module, __webpack_exports__, __webpack_require__) { 2503 2504"use strict"; 2505__webpack_require__.r(__webpack_exports__); 2506/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return compose; }); 2507/** 2508 * Composes single-argument functions from right to left. The rightmost 2509 * function can take multiple arguments as it provides the signature for 2510 * the resulting composite function. 2511 * 2512 * @param {...Function} funcs The functions to compose. 2513 * @returns {Function} A function obtained by composing the argument functions 2514 * from right to left. For example, compose(f, g, h) is identical to doing 2515 * (...args) => f(g(h(...args))). 2516 */ 2517 2518function compose() { 2519 for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) { 2520 funcs[_key] = arguments[_key]; 2521 } 2522 2523 if (funcs.length === 0) { 2524 return function (arg) { 2525 return arg; 2526 }; 2527 } 2528 2529 if (funcs.length === 1) { 2530 return funcs[0]; 2531 } 2532 2533 var last = funcs[funcs.length - 1]; 2534 var rest = funcs.slice(0, -1); 2535 return function () { 2536 return rest.reduceRight(function (composed, f) { 2537 return f(composed); 2538 }, last.apply(undefined, arguments)); 2539 }; 2540} 2541 2542/***/ }), 2543/* 46 */ 2544/***/ (function(module, exports, __webpack_require__) { 2545 2546"use strict"; 2547 2548 2549var _interopRequireDefault = __webpack_require__(0); 2550 2551Object.defineProperty(exports, "__esModule", { 2552 value: true 2553}); 2554exports.TRANSFORM_STYLE_PREFIXED = exports.TRANSFORM_PREFIXED = exports.FLEX_PREFIXED = exports.ELEMENT_MATCHES = exports.withBrowser = exports.IS_BROW
2554SER_ENV = void 0; 2555 2556var _find = _interopRequireDefault(__webpack_require__(86)); 2557/* eslint-env browser */ 2558 2559 2560var IS_BROWSER_ENV = typeof window !== 'undefined'; // $FlowFixMe 2561 2562exports.IS_BROWSER_ENV = IS_BROWSER_ENV; 2563 2564var withBrowser = function withBrowser(fn, fallback) { 2565 if (IS_BROWSER_ENV) { 2566 return fn(); 2567 } 2568 2569 return fallback; 2570}; 2571 2572exports.withBrowser = withBrowser; 2573var ELEMENT_MATCHES = withBrowser(function () { 2574 return (0, _find["default"])(['matches', 'matchesSelector', 'mozMatchesSelector', 'msMatchesSelector', 'oMatchesSelector', 'webkitMatchesSelector'], function (key) { 2575 return key in Element.prototype; 2576 }); 2577}); 2578exports.ELEMENT_MATCHES = ELEMENT_MATCHES; 2579var FLEX_PREFIXED = withBrowser(function () { 2580 var el = document.createElement('i'); 2581 var values = ['flex', '-webkit-flex', '-ms-flexbox', '-moz-box', '-webkit-box']; 2582 var none = ''; 2583 2584 try { 2585 var length = values.length; 2586 2587 for (var i = 0; i < length; i++) { 2588 var value = values[i]; 2589 el.style.display = value; 2590 2591 if (el.style.display === value) { 2592 return value; 2593 } 2594 } 2595 2596 return none; 2597 } catch (err) { 2598 return none; 2599 } 2600}, 'flex'); 2601exports.FLEX_PREFIXED = FLEX_PREFIXED; 2602var TRANSFORM_PREFIXED = withBrowser(function () { 2603 var el = document.createElement('i'); 2604 2605 if (el.style.transform == null) { 2606 var prefixes = ['Webkit', 'Moz', 'ms']; 2607 var suffix = 'Transform'; 2608 var length = prefixes.length; 2609 2610 for (var i = 0; i < length; i++) { 2611 var prop = prefixes[i] + suffix; // $FlowFixMe 2612 2613 if (el.style[prop] !== undefined) { 2614 return prop; 2615 } 2616 } 2617 } 2618 2619 return 'transform'; 2620}, 'transform'); // $FlowFixMe 2621 2622exports.TRANSFORM_PREFIXED = TRANSFORM_PREFIXED; 2623var TRANSFORM_PREFIX = TRANSFORM_PREFIXED.split('transform')[0]; 2624var TRANSFORM_STYLE_PREFIXED = TRANSFORM_PREFIX ? TRANSFORM_PREFIX + 'TransformStyle' : 'transformStyle'; 2625exports.TRANSFORM_STYLE_PREFIXED = TRANSFORM_STYLE_PREFIXED; 2626 2627/***/ }), 2628/* 47 */ 2629/***/ (function(module, exports) { 2630 2631/** 2632 * Performs a 2633 * [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 2634 * comparison between two values to determine if they are equivalent. 2635 * 2636 * @static 2637 * @memberOf _ 2638 * @since 4.0.0 2639 * @category Lang 2640 * @param {*} value The value to compare. 2641 * @param {*} other The other value to compare. 2642 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 2643 * @example 2644 * 2645 * var object = { 'a': 1 }; 2646 * var other = { 'a': 1 }; 2647 * 2648 * _.eq(object, object); 2649 * // => true 2650 * 2651 * _.eq(object, other); 2652 * // => false 2653 * 2654 * _.eq('a', 'a'); 2655 * // => true 2656 * 2657 * _.eq('a', Object('a')); 2658 * // => false 2659 * 2660 * _.eq(NaN, NaN); 2661 * // => true 2662 */ 2663function eq(value, other) { 2664 return value === other || (value !== value && other !== other); 2665} 2666 2667module.exports = eq; 2668 2669 2670/***/ }), 2671/* 48 */ 2672/***/ (function(module, exports, __webpack_require__) { 2673 2674var getNative = __webpack_require__(8), 2675 root = __webpack_require__(4); 2676 2677/* Built-in method references that are verified to be native. */ 2678var Map = getNative(root, 'Map'); 2679 2680module.exports = Map; 2681 2682 2683/***/ }), 2684/* 49 */ 2685/***/ (function(module, exports, __webpack_require__) { 2686 2687var mapCacheClear = __webpack_require__(195), 2688 mapCacheDelete = __webpack_require__(202), 2689 mapCacheGet = __webpack_require__(204), 2690 mapCacheHas = __webpack_require__(205), 2691 mapCacheSet = __webpack_require__(206); 2692 2693/** 2694 * Creates a map cache object to store key-value pairs. 2695 * 2696 * @private 2697 * @constructor 2698 * @param {Array} [entries] The key-value pairs to cache. 2699 */ 2700function MapCache(entries) { 2701 var index = -1, 2702 length = entries == null ? 0 : entries.length; 2703 2704 this.clear(); 2705 while (++index < length) { 2706 var entry = entries[index]; 2707 this.set(entry[0], entry[1]); 2708 } 2709} 2710 2711// Add methods to `MapCache`. 2712MapCache.prototype.clear = mapCacheClear; 2713MapCache.prototype['delete'] = mapCacheDelete; 2714MapCache.prototype.get = mapCacheGet; 2715MapCache.prototype.has = mapCacheHas; 2716MapCache.prototype.set = mapCacheSet; 2717 2718module.exports = MapCache; 2719 2720 2721/***/ }), 2722/* 50 */ 2723/***/ (function(module, exports) { 2724 2725/** 2726 * Appends the elements of `values` to `array`. 2727 * 2728 * @private 2729 * @param {Array} array The array to modify. 2730 * @param {Array} values The values to append. 2731 * @returns {Array} Returns `array`. 2732 */ 2733function arrayPush(array, values) { 2734 var index = -1, 2735 length = values.length, 2736 offset = array.length; 2737 2738 while (++index < length) { 2739 array[offset + index] = values[index]; 2740 } 2741 return array; 2742} 2743 2744module.exports = arrayPush; 2745 2746 2747/***/ }), 2748/* 51 */ 2749/***/ (function(module, exports, __webpack_require__) { 2750 2751/* WEBPACK VAR INJECTION */(function(module) {var root = __webpack_require__(4), 2752 stubFalse = __webpack_require__(222); 2753 2754/** Detect free variable `exports`. */ 2755var freeExports = true && exports && !exports.nodeType && exports; 2756 2757/** Detect free variable `module`. */ 2758var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 2759 2760/** Detect the popular CommonJS extension `module.exports`. */ 2761var moduleExports = freeModule && freeModule.exports === freeExports; 2762 2763/** Built-in value references. */ 2764var Buffer = moduleExports ? root.Buffer : undefined; 2765 2766/* Built-in method references for those with the same name as other `lodash` methods. */ 2767var nativeIsBuffer = Buffer ? Buffer.isBuffer : undefined; 2768 2769/** 2770 * Checks if `value` is a buffer. 2771 * 2772 * @static 2773 * @memberOf _ 2774 * @since 4.3.0 2775 * @category Lang 2776 * @param {*} value The value to check. 2777 * @returns {boolean} Returns `true` if `value` is a buffer, else `false`. 2778 * @example 2779 * 2780 * _.isBuffer(new Buffer(2)); 2781 * // => true 2782 * 2783 * _.isBuffer(new Uint8Array(2)); 2784 * // => false 2785 */ 2786var isBuffer = nativeIsBuffer || stubFalse; 2787 2788module.exports = isBuffer; 2789 2790/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98)(module))) 2791 2792/***/ }), 2793/* 52 */
vendor: 5,343 bytes, lines 2794-3002
2794/***/ (function(module, exports) { 2795 2796/** Used as references for various `Number` constants. */ 2797var MAX_SAFE_INTEGER = 9007199254740991; 2798 2799/** Used to detect unsigned integer values. */ 2800var reIsUint = /^(?:0|[1-9]\d*)$/; 2801 2802/** 2803 * Checks if `value` is a valid array-like index. 2804 * 2805 * @private 2806 * @param {*} value The value to check. 2807 * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index. 2808 * @returns {boolean} Returns `true` if `value` is a valid index, else `false`. 2809 */ 2810function isIndex(value, length) { 2811 var type = typeof value; 2812 length = length == null ? MAX_SAFE_INTEGER : length; 2813 2814 return !!length && 2815 (type == 'number' || 2816 (type != 'symbol' && reIsUint.test(value))) && 2817 (value > -1 && value % 1 == 0 && value < length); 2818} 2819 2820module.exports = isIndex; 2821 2822 2823/***/ }), 2824/* 53 */ 2825/***/ (function(module, exports, __webpack_require__) { 2826 2827var baseIsTypedArray = __webpack_require__(223), 2828 baseUnary = __webpack_require__(224), 2829 nodeUtil = __webpack_require__(225); 2830 2831/* Node.js helper references. */ 2832var nodeIsTypedArray = nodeUtil && nodeUtil.isTypedArray; 2833 2834/** 2835 * Checks if `value` is classified as a typed array. 2836 * 2837 * @static 2838 * @memberOf _ 2839 * @since 3.0.0 2840 * @category Lang 2841 * @param {*} value The value to check. 2842 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 2843 * @example 2844 * 2845 * _.isTypedArray(new Uint8Array); 2846 * // => true 2847 * 2848 * _.isTypedArray([]); 2849 * // => false 2850 */ 2851var isTypedArray = nodeIsTypedArray ? baseUnary(nodeIsTypedArray) : baseIsTypedArray; 2852 2853module.exports = isTypedArray; 2854 2855 2856/***/ }), 2857/* 54 */ 2858/***/ (function(module, exports) { 2859 2860/** Used as references for various `Number` constants. */ 2861var MAX_SAFE_INTEGER = 9007199254740991; 2862 2863/** 2864 * Checks if `value` is a valid array-like length. 2865 * 2866 * **Note:** This method is loosely based on 2867 * [`ToLength`](http://ecma-international.org/ecma-262/7.0/#sec-tolength). 2868 * 2869 * @static 2870 * @memberOf _ 2871 * @since 4.0.0 2872 * @category Lang 2873 * @param {*} value The value to check. 2874 * @returns {boolean} Returns `true` if `value` is a valid length, else `false`. 2875 * @example 2876 * 2877 * _.isLength(3); 2878 * // => true 2879 * 2880 * _.isLength(Number.MIN_VALUE); 2881 * // => false 2882 * 2883 * _.isLength(Infinity); 2884 * // => false 2885 * 2886 * _.isLength('3'); 2887 * // => false 2888 */ 2889function isLength(value) { 2890 return typeof value == 'number' && 2891 value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER; 2892} 2893 2894module.exports = isLength; 2895 2896 2897/***/ }), 2898/* 55 */ 2899/***/ (function(module, exports, __webpack_require__) { 2900 2901var isPrototype = __webpack_require__(56), 2902 nativeKeys = __webpack_require__(226); 2903 2904/** Used for built-in method references. */ 2905var objectProto = Object.prototype; 2906 2907/** Used to check objects for own properties. */ 2908var hasOwnProperty = objectProto.hasOwnProperty; 2909 2910/** 2911 * The base implementation of `_.keys` which doesn't treat sparse arrays as dense. 2912 * 2913 * @private 2914 * @param {Object} object The object to query. 2915 * @returns {Array} Returns the array of property names. 2916 */ 2917function baseKeys(object) { 2918 if (!isPrototype(object)) { 2919 return nativeKeys(object); 2920 } 2921 var result = []; 2922 for (var key in Object(object)) { 2923 if (hasOwnProperty.call(object, key) && key != 'constructor') { 2924 result.push(key); 2925 } 2926 } 2927 return result; 2928} 2929 2930module.exports = baseKeys; 2931 2932 2933/***/ }), 2934/* 56 */ 2935/***/ (function(module, exports) { 2936 2937/** Used for built-in method references. */ 2938var objectProto = Object.prototype; 2939 2940/** 2941 * Checks if `value` is likely a prototype object. 2942 * 2943 * @private 2944 * @param {*} value The value to check. 2945 * @returns {boolean} Returns `true` if `value` is a prototype, else `false`. 2946 */ 2947function isPrototype(value) { 2948 var Ctor = value && value.constructor, 2949 proto = (typeof Ctor == 'function' && Ctor.prototype) || objectProto; 2950 2951 return value === proto; 2952} 2953 2954module.exports = isPrototype; 2955 2956 2957/***/ }), 2958/* 57 */ 2959/***/ (function(module, exports, __webpack_require__) { 2960 2961var DataView = __webpack_require__(227), 2962 Map = __webpack_require__(48), 2963 Promise = __webpack_require__(228), 2964 Set = __webpack_require__(229), 2965 WeakMap = __webpack_require__(100), 2966 baseGetTag = __webpack_require__(11), 2967 toSource = __webpack_require__(91); 2968 2969/** `Object#toString` result references. */ 2970var mapTag = '[object Map]', 2971 objectTag = '[object Object]', 2972 promiseTag = '[object Promise]', 2973 setTag = '[object Set]', 2974 weakMapTag = '[object WeakMap]'; 2975 2976var dataViewTag = '[object DataView]'; 2977 2978/** Used to detect maps, sets, and weakmaps. */ 2979var dataViewCtorString = toSource(DataView), 2980 mapCtorString = toSource(Map), 2981 promiseCtorString = toSource(Promise), 2982 setCtorString = toSource(Set), 2983 weakMapCtorString = toSource(WeakMap); 2984 2985/** 2986 * Gets the `toStringTag` of `value`. 2987 * 2988 * @private 2989 * @param {*} value The value to query. 2990 * @returns {string} Returns the `toStringTag`. 2991 */ 2992var getTag = baseGetTag; 2993 2994// Fallback for data views, maps, sets, and weak maps in IE 11 and promises in Node.js < 6. 2995if ((DataView && getTag(new DataView(new ArrayBuffer(1))) != dataViewTag) || 2996 (Map && getTag(new Map) != mapTag) || 2997 (Promise && getTag(Promise.resolve()) != promiseTag) || 2998 (Set && getTag(new Set) != setTag) || 2999 (WeakMap && getTag(new WeakMap) != weakMapTag)) { 3000 getTag = function(value) { 3001 var result = baseGetTag(value), 3002 Ctor = result == objectTag ? value.constructor : undefined,
vendor: 5,135 bytes, lines 3003-3205
3003 ctorString = Ctor ? toSource(Ctor) : ''; 3004 3005 if (ctorString) { 3006 switch (ctorString) { 3007 case dataViewCtorString: return dataViewTag; 3008 case mapCtorString: return mapTag; 3009 case promiseCtorString: return promiseTag; 3010 case setCtorString: return setTag; 3011 case weakMapCtorString: return weakMapTag; 3012 } 3013 } 3014 return result; 3015 }; 3016} 3017 3018module.exports = getTag; 3019 3020 3021/***/ }), 3022/* 58 */ 3023/***/ (function(module, exports, __webpack_require__) { 3024 3025var castPath = __webpack_require__(35), 3026 toKey = __webpack_require__(20); 3027 3028/** 3029 * The base implementation of `_.get` without support for default values. 3030 * 3031 * @private 3032 * @param {Object} object The object to query. 3033 * @param {Array|string} path The path of the property to get. 3034 * @returns {*} Returns the resolved value. 3035 */ 3036function baseGet(object, path) { 3037 path = castPath(path, object); 3038 3039 var index = 0, 3040 length = path.length; 3041 3042 while (object != null && index < length) { 3043 object = object[toKey(path[index++])]; 3044 } 3045 return (index && index == length) ? object : undefined; 3046} 3047 3048module.exports = baseGet; 3049 3050 3051/***/ }), 3052/* 59 */ 3053/***/ (function(module, exports, __webpack_require__) { 3054 3055var isArray = __webpack_require__(1), 3056 isSymbol = __webpack_require__(36); 3057 3058/** Used to match property names within property paths. */ 3059var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/, 3060 reIsPlainProp = /^\w*$/; 3061 3062/** 3063 * Checks if `value` is a property name and not a property path. 3064 * 3065 * @private 3066 * @param {*} value The value to check. 3067 * @param {Object} [object] The object to query keys on. 3068 * @returns {boolean} Returns `true` if `value` is a property name, else `false`. 3069 */ 3070function isKey(value, object) { 3071 if (isArray(value)) { 3072 return false; 3073 } 3074 var type = typeof value; 3075 if (type == 'number' || type == 'symbol' || type == 'boolean' || 3076 value == null || isSymbol(value)) { 3077 return true; 3078 } 3079 return reIsPlainProp.test(value) || !reIsDeepProp.test(value) || 3080 (object != null && value in Object(object)); 3081} 3082 3083module.exports = isKey; 3084 3085 3086/***/ }), 3087/* 60 */ 3088/***/ (function(module, exports) { 3089 3090/** 3091 * This method returns the first argument it receives. 3092 * 3093 * @static 3094 * @since 0.1.0 3095 * @memberOf _ 3096 * @category Util 3097 * @param {*} value Any value. 3098 * @returns {*} Returns `value`. 3099 * @example 3100 * 3101 * var object = { 'a': 1 }; 3102 * 3103 * console.log(_.identity(object) === object); 3104 * // => true 3105 */ 3106function identity(value) { 3107 return value; 3108} 3109 3110module.exports = identity; 3111 3112 3113/***/ }), 3114/* 61 */ 3115/***/ (function(module, exports, __webpack_require__) { 3116 3117var isObject = __webpack_require__(6), 3118 isSymbol = __webpack_require__(36); 3119 3120/** Used as references for various `Number` constants. */ 3121var NAN = 0 / 0; 3122 3123/** Used to match leading and trailing whitespace. */ 3124var reTrim = /^\s+|\s+$/g; 3125 3126/** Used to detect bad signed hexadecimal string values. */ 3127var reIsBadHex = /^[-+]0x[0-9a-f]+$/i; 3128 3129/** Used to detect binary string values. */ 3130var reIsBinary = /^0b[01]+$/i; 3131 3132/** Used to detect octal string values. */ 3133var reIsOctal = /^0o[0-7]+$/i; 3134 3135/** Built-in method references without a dependency on `root`. */ 3136var freeParseInt = parseInt; 3137 3138/** 3139 * Converts `value` to a number. 3140 * 3141 * @static 3142 * @memberOf _ 3143 * @since 4.0.0 3144 * @category Lang 3145 * @param {*} value The value to process. 3146 * @returns {number} Returns the number. 3147 * @example 3148 * 3149 * _.toNumber(3.2); 3150 * // => 3.2 3151 * 3152 * _.toNumber(Number.MIN_VALUE); 3153 * // => 5e-324 3154 * 3155 * _.toNumber(Infinity); 3156 * // => Infinity 3157 * 3158 * _.toNumber('3.2'); 3159 * // => 3.2 3160 */ 3161function toNumber(value) { 3162 if (typeof value == 'number') { 3163 return value; 3164 } 3165 if (isSymbol(value)) { 3166 return NAN; 3167 } 3168 if (isObject(value)) { 3169 var other = typeof value.valueOf == 'function' ? value.valueOf() : value; 3170 value = isObject(other) ? (other + '') : other; 3171 } 3172 if (typeof value != 'string') { 3173 return value === 0 ? value : +value; 3174 } 3175 value = value.replace(reTrim, ''); 3176 var isBinary = reIsBinary.test(value); 3177 return (isBinary || reIsOctal.test(value)) 3178 ? freeParseInt(value.slice(2), isBinary ? 2 : 8) 3179 : (reIsBadHex.test(value) ? NAN : +value); 3180} 3181 3182module.exports = toNumber; 3183 3184 3185/***/ }), 3186/* 62 */ 3187/***/ (function(module, exports, __webpack_require__) { 3188 3189"use strict"; 3190 3191 3192var _interopRequireDefault = __webpack_require__(0); 3193 3194Object.defineProperty(exports, "__esModule", { 3195 value: true 3196}); 3197exports.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; 3198 3199var _extends2 = _interopRequireDefault(__webpack_require__(27)); 3200 3201var _constants = __webpack_require__(2); 3202 3203var _shared = __webpack_require__(10); 3204 3205var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
3206 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 3207 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 3208 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 3209 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 3210 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 3211 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 3212 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 3213 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED, 3214 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 3215 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 3216 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 3217 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 3218 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED, 3219 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 3220 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 3221 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 3222 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED, 3223 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 3224 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 3225 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 3226var reifyState = _shared.IX2VanillaUtils.reifyState; // TODO: Figure out what this is and elevate it 3227 3228var rawDataImported = function rawDataImported(rawData) { 3229 return { 3230 type: IX2_RAW_DATA_IMPORTED, 3231 payload: (0, _extends2["default"])({}, reifyState(rawData)) 3232 }; 3233}; 3234 3235exports.rawDataImported = rawDataImported; 3236 3237var sessionInitialized = function sessionInitialized(_ref) { 3238 var hasBoundaryNodes = _ref.hasBoundaryNodes; 3239 return { 3240 type: IX2_SESSION_INITIALIZED, 3241 payload: { 3242 hasBoundaryNodes: hasBoundaryNodes 3243 } 3244 }; 3245}; 3246 3247exports.sessionInitialized = sessionInitialized; 3248 3249var sessionStarted = function sessionStarted() { 3250 return { 3251 type: IX2_SESSION_STARTED 3252 }; 3253}; 3254 3255exports.sessionStarted = sessionStarted; 3256 3257var sessionStopped = function sessionStopped() { 3258 return { 3259 type: IX2_SESSION_STOPPED 3260 }; 3261}; 3262 3263exports.sessionStopped = sessionStopped; 3264 3265var previewRequested = function previewRequested(_ref2) { 3266 var rawData = _ref2.rawData, 3267 defer = _ref2.defer; 3268 return { 3269 type: IX2_PREVIEW_REQUESTED, 3270 payload: { 3271 defer: defer, 3272 rawData: rawData 3273 } 3274 }; 3275}; 3276 3277exports.previewRequested = previewRequested; 3278 3279var playbackRequested = function playbackRequested(_ref3) { 3280 var _ref3$actionTypeId = _ref3.actionTypeId, 3281 actionTypeId = _ref3$actionTypeId === void 0 ? _constants.ActionTypeConsts.GENERAL_START_ACTION : _ref3$actionTypeId, 3282 actionListId = _ref3.actionListId, 3283 actionItemId = _ref3.actionItemId, 3284 eventId = _ref3.eventId, 3285 allowEvents = _ref3.allowEvents, 3286 immediate = _ref3.immediate, 3287 testManual = _ref3.testManual, 3288 verbose = _ref3.verbose, 3289 rawData = _ref3.rawData; 3290 return { 3291 type: IX2_PLAYBACK_REQUESTED, 3292 payload: { 3293 actionTypeId: actionTypeId, 3294 actionListId: actionListId, 3295 actionItemId: actionItemId, 3296 testManual: testManual, 3297 eventId: eventId, 3298 allowEvents: allowEvents, 3299 immediate: immediate, 3300 verbose: verbose, 3301 rawData: rawData 3302 } 3303 }; 3304}; 3305 3306exports.playbackRequested = playbackRequested; 3307 3308var stopRequested = function stopRequested(actionListId) { 3309 return { 3310 type: IX2_STOP_REQUESTED, 3311 payload: { 3312 actionListId: actionListId 3313 } 3314 }; 3315}; 3316 3317exports.stopRequested = stopRequested; 3318 3319var clearRequested = function clearRequested() { 3320 return { 3321 type: IX2_CLEAR_REQUESTED 3322 }; 3323}; 3324 3325exports.clearRequested = clearRequested; 3326 3327var eventListenerAdded = function eventListenerAdded(target, listenerParams) { 3328 return { 3329 type: IX2_EVENT_LISTENER_ADDED, 3330 payload: { 3331 target: target, 3332 listenerParams: listenerParams 3333 } 3334 }; 3335}; 3336 3337exports.eventListenerAdded = eventListenerAdded; 3338 3339var testFrameRendered = function testFrameRendered() { 3340 var step = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1; 3341 return { 3342 type: IX2_TEST_FRAME_RENDERED, 3343 payload: { 3344 step: step 3345 } 3346 }; 3347}; 3348 3349exports.testFrameRendered = testFrameRendered; 3350 3351var eventStateChanged = function eventStateChanged(stateKey, newState) { 3352 return { 3353 type: IX2_EVENT_STATE_CHANGED, 3354 payload: { 3355 stateKey: stateKey, 3356 newState: newState 3357 } 3358 }; 3359}; 3360 3361exports.eventStateChanged = eventStateChanged; 3362 3363var animationFrameChanged = function animationFrameChanged(now, parameters) { 3364 return { 3365 type: IX2_ANIMATION_FRAME_CHANGED, 3366 payload: { 3367 now: now, 3368 parameters: parameters 3369 } 3370 }; 3371}; 3372 3373exports.animationFrameChanged = animationFrameChanged; 3374 3375var parameterChanged = function parameterChanged(key, value) { 3376 return { 3377 type: IX2_PARAMETER_CHANGED, 3378 payload: { 3379 key: key, 3380 value: value 3381 } 3382 }; 3383}; 3384 3385exports.parameterChanged = parameterChanged; 3386 3387var instanceAdded = function instanceAdded(options) { 3388 return { 3389 type: IX2_INSTANCE_ADDED, 3390 payload: (0, _extends2["default"])({}, options) 3391 }; 3392}; 3393 3394exports.instanceAdded = instanceAdded; 3395 3396var instanceStarted = function instanceStarted(instanceId, time) { 3397 return { 3398 type: IX2_INSTANCE_STARTED, 3399 payload: { 3400 instanceId: instanceId, 3401 time: time 3402 } 3403 }; 3404}; 3405 3406exports.instanceStarted = instanceStarted; 3407 3408var instanceRemoved = function instanceRemoved(instanceId) { 3409 return { 3410 type: IX2_INSTANCE_REMOVED, 3411 payload: { 3412 instanceId: instanceId 3413 } 3414 }; 3415}; 3416 3417exports.instanceRemoved = instanceRemoved; 3418 3419var elementStateChanged = function elementStateChanged(elementId, actionTypeId, current, actionItem) { 3420 return { 3421 type: IX2_ELEMENT_STATE_CHANGED, 3422 payload: { 3423 elementId: elementId, 3424 actionTypeId: actionTypeId, 3425 current: current, 3426 actionItem: actionItem 3427 } 3428 }; 3429}; 3430 3431exports.elementStateChanged = elementStateChanged; 3432 3433var actionListPlaybackChanged = function actionListPlaybackChanged(_ref4) { 3434 var actionListId = _ref4.actionListId, 3435 isPlaying = _ref4.isPlaying; 3436 return { 3437 type: IX2_ACTION_LIST_PLAYBACK_CHANGED, 3438 payload: { 3439 actionListId: actionListId, 3440 isPlaying: isPlaying 3441 } 3442 }; 3443}; 3444 3445exports.actionListPlaybackChanged = actionListPlaybackChanged; 3446 3447var viewportWidthChanged = function viewportWidthChanged(_ref5) { 3448 var width = _ref5.width, 3449 mediaQueries = _ref5.mediaQueries; 3450 return { 3451 type: IX2_VIEWPORT_WIDTH_CHANGED, 3452 payload: { 3453 width: width, 3454 mediaQueries: mediaQueries 3455 } 3456 }; 3457}; 3458 3459exports.viewportWidthChanged = viewportWidthChanged; 3460 3461var mediaQueriesDefined = function mediaQueriesDefined() { 3462 return { 3463 type: IX2_MEDIA_QUERIES_DEFINED 3464 }; 3465}; 3466 3467exports.mediaQueriesDefined = mediaQueriesDefined; 3468 3469/***/ }), 3470/* 63 */ 3471/***/ (function(module, exports, __webpack_require__) { 3472 3473var baseCreate = __webpack_require__(118), 3474 baseLodash = __webpack_require__(64); 3475 3476/** 3477 * The base constructor for creating `lodash` wrapper objects. 3478 * 3479 * @private 3480 * @param {*} value The value to wrap. 3481 * @param {boolean} [chainAll] Enable explicit method chain sequences. 3482 */ 3483function LodashWrapper(value, chainAll) { 3484 this.__wrapped__ = value; 3485 this.__actions__ = []; 3486 this.__chain__ = !!chainAll; 3487 this.__index__ = 0; 3488 this.__values__ = undefined; 3489} 3490
3491LodashWrapper.prototype = baseCreate(baseLodash.prototype); 3492LodashWrapper.prototype.constructor = LodashWrapper; 3493 3494module.exports = LodashWrapper; 3495 3496 3497/***/ }), 3498/* 64 */ 3499/***/ (function(module, exports) { 3500 3501/** 3502 * The function whose prototype chain sequence wrappers inherit from. 3503 * 3504 * @private 3505 */ 3506function baseLodash() { 3507 // No operation performed. 3508} 3509 3510module.exports = baseLodash; 3511 3512 3513/***/ }), 3514/* 65 */ 3515/***/ (function(module, exports, __webpack_require__) { 3516 3517var baseCreate = __webpack_require__(118), 3518 baseLodash = __webpack_require__(64); 3519 3520/** Used as references for the maximum length and index of an array. */ 3521var MAX_ARRAY_LENGTH = 4294967295; 3522 3523/** 3524 * Creates a lazy wrapper object which wraps `value` to enable lazy evaluation. 3525 * 3526 * @private 3527 * @constructor 3528 * @param {*} value The value to wrap. 3529 */ 3530function LazyWrapper(value) { 3531 this.__wrapped__ = value; 3532 this.__actions__ = []; 3533 this.__dir__ = 1; 3534 this.__filtered__ = false; 3535 this.__iteratees__ = []; 3536 this.__takeCount__ = MAX_ARRAY_LENGTH; 3537 this.__views__ = []; 3538} 3539 3540// Ensure `LazyWrapper` is an instance of `baseLodash`. 3541LazyWrapper.prototype = baseCreate(baseLodash.prototype); 3542LazyWrapper.prototype.constructor = LazyWrapper; 3543 3544module.exports = LazyWrapper; 3545 3546 3547/***/ }), 3548/* 66 */ 3549/***/ (function(module, exports, __webpack_require__) { 3550 3551"use strict"; 3552 // @wf-will-never-add-flow-to-this-file 3553 3554/* eslint-disable eslint-comments/no-unlimited-disable */ 3555 3556/* eslint-disable */ 3557 3558/*! 3559 * tram.js v0.8.2-global 3560 * Cross-browser CSS3 transitions in JavaScript 3561 * https://github.com/bkwld/tram 3562 * MIT License 3563 */ 3564 3565/* prettier-ignore */ 3566 3567var _interopRequireDefault = __webpack_require__(0); 3568 3569var _typeof2 = _interopRequireDefault(__webpack_require__(21)); 3570 3571window.tram = function (a) { 3572 function b(a, b) { 3573 var c = new M.Bare(); 3574 return c.init(a, b); 3575 } 3576 3577 function c(a) { 3578 return a.replace(/[A-Z]/g, function (a) { 3579 return "-" + a.toLowerCase(); 3580 }); 3581 } 3582 3583 function d(a) { 3584 var b = parseInt(a.slice(1), 16), 3585 c = b >> 16 & 255, 3586 d = b >> 8 & 255, 3587 e = 255 & b; 3588 return [c, d, e]; 3589 } 3590 3591 function e(a, b, c) { 3592 return "#" + (1 << 24 | a << 16 | b << 8 | c).toString(16).slice(1); 3593 } 3594 3595 function f() {} 3596 3597 function g(a, b) { 3598 j("Type warning: Expected: [" + a + "] Got: [" + (0, _typeof2["default"])(b) + "] " + b); 3599 } 3600 3601 function h(a, b, c) { 3602 j("Units do not match [" + a + "]: " + b + ", " + c); 3603 } 3604 3605 function i(a, b, c) { 3606 if (void 0 !== b && (c = b), void 0 === a) return c; 3607 var d = c; 3608 return $.test(a) || !_.test(a) ? d = parseInt(a, 10) : _.test(a) && (d = 1e3 * parseFloat(a)), 0 > d && (d = 0), d === d ? d : c; 3609 } 3610 3611 function j(a) { 3612 U.debug && window && window.console.warn(a); 3613 } 3614 3615 function k(a) { 3616 for (var b = -1, c = a ? a.length : 0, d = []; ++b < c;) { 3617 var e = a[b]; 3618 e && d.push(e); 3619 } 3620 3621 return d; 3622 } 3623 3624 var l = function (a, b, c) { 3625 function d(a) { 3626 return "object" == (0, _typeof2["default"])(a); 3627 } 3628 3629 function e(a) { 3630 return "function" == typeof a; 3631 } 3632 3633 function f() {} 3634 3635 function g(h, i) { 3636 function j() { 3637 var a = new k(); 3638 return e(a.init) && a.init.apply(a, arguments), a; 3639 } 3640 3641 function k() {} 3642 3643 i === c && (i = h, h = Object), j.Bare = k; 3644 var l, 3645 m = f[a] = h[a], 3646 n = k[a] = j[a] = new f(); 3647 return n.constructor = j, j.mixin = function (b) { 3648 return k[a] = j[a] = g(j, b)[a], j; 3649 }, j.open = function (a) { 3650 if (l = {}, e(a) ? l = a.call(j, n, m, j, h) : d(a) && (l = a), d(l)) for (var c in l) { 3651 b.call(l, c) && (n[c] = l[c]); 3652 } 3653 return e(n.init) || (n.init = h), j; 3654 }, j.open(i); 3655 } 3656 3657 return g; 3658 }("prototype", {}.hasOwnProperty), 3659 m = { 3660 ease: ["ease", function (a, b, c, d) { 3661 var e = (a /= d) * a, 3662 f = e * a; 3663 return b + c * (-2.75 * f * e + 11 * e * e + -15.5 * f + 8 * e + .25 * a); 3664 }], 3665 "ease-in": ["ease-in", function (a, b, c, d) { 3666 var e = (a /= d) * a, 3667 f = e * a; 3668 return b + c * (-1 * f * e + 3 * e * e + -3 * f + 2 * e); 3669 }], 3670 "ease-out": ["ease-out", function (a, b, c, d) { 3671 var e = (a /= d) * a, 3672 f = e * a; 3673 return b + c * (.3 * f * e + -1.6 * e * e + 2.2 * f + -1.8 * e + 1.9 * a); 3674 }], 3675 "ease-in-out": ["ease-in-out", function (a, b, c, d) { 3676 var e = (a /= d) * a, 3677 f = e * a; 3678 return b + c * (2 * f * e + -5 * e * e + 2 * f + 2 * e); 3679 }], 3680 linear: ["linear", function (a, b, c, d) { 3681 return c * a / d + b; 3682 }], 3683 "ease-in-quad": ["cubic-bezier(0.550, 0.085, 0.680, 0.530)", function (a, b, c, d) { 3684 return c * (a /= d) * a + b; 3685 }], 3686 "ease-out-quad": ["cubic-bezier(0.250, 0.460, 0.450, 0.940)", function (a, b, c, d) { 3687 return -c * (a /= d) * (a - 2) + b; 3688 }], 3689 "ease-in-out-quad": ["cubic-bezier(0.455, 0.030, 0.515, 0.955)", function (a, b, c, d) { 3690 return (a /= d / 2) < 1 ? c / 2 * a * a + b : -c / 2 * (--a * (a - 2) - 1) + b; 3691 }], 3692 "ease-in-cubic": ["cubic-bezier(0.550, 0.055, 0.675, 0.190)", function (a, b, c, d) { 3693 return c * (a /= d) * a * a + b; 3694 }], 3695 "ease-out-cubic": ["cubic-bezier(0.215, 0.610, 0.355, 1)", function (a, b, c, d) { 3696 return c * ((a = a / d - 1) * a * a + 1) + b; 3697 }], 3698 "ease-in-out-cubic": ["cubic-bezier(0.645, 0.045, 0.355, 1)", function (a, b, c, d) { 3699 return (a /= d / 2) < 1 ? c / 2 * a * a * a + b : c / 2 * ((a -= 2) * a * a + 2) + b; 3700 }], 3701 "ease-in-quart": ["cubic-bezier(0.895, 0.030, 0.685, 0.220)", function (a, b, c, d) { 3702 return c * (a /= d) * a * a * a + b; 3703 }], 3704 "ease-out-quart": ["cubic-bezier(0.165, 0.840, 0.440, 1)", function (a, b, c, d) { 3705 return -c * ((a = a / d - 1) * a * a * a - 1) + b; 3706 }], 3707 "ease-in-out-quart": ["cubic-bezier(0.770, 0, 0.175, 1)", function (a, b, c, d) { 3708 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a + b : -c / 2 * ((a -= 2) * a * a * a - 2) + b; 3709 }], 3710 "ease-in-quint": ["cubic-bezier(0.755, 0.050, 0.855, 0.060)", function (a, b, c, d) { 3711 return c * (a /= d) * a * a * a * a + b; 3712 }], 3713 "ease-out-quint": ["cubic-bezier(0.230, 1, 0.320, 1)", function (a, b, c, d) { 3714 return c * ((a = a / d - 1) * a * a * a * a + 1) + b; 3715 }], 3716 "ease-in-out-quint": ["cubic-bezier(0.860, 0, 0.070, 1)", function (a, b, c, d) { 3717 return (a /= d / 2) < 1 ? c / 2 * a * a * a * a * a + b : c / 2 * ((a -= 2) * a * a * a * a + 2) + b; 3718 }], 3719 "ease-in-sine": ["cubic-bezier(0.470, 0, 0.745, 0.715)", function (a, b, c, d) { 3720 return -c * Math.cos(a / d * (Math.PI / 2)) + c + b; 3721 }], 3722 "ease-out-sine": ["cubic-bezier(0.390, 0.575, 0.565, 1)", function (a, b, c, d) { 3723 return c * Math.sin(a / d * (Math.PI / 2)) + b; 3724 }], 3725 "ease-in-out-sine": ["cubic-bezier(0.445, 0.050, 0.550, 0.950)", function (a, b, c, d) { 3726 return -c / 2 * (Math.cos(Math.PI * a / d) - 1) + b; 3727 }], 3728 "ease-in-expo": ["cubic-bezier(0.950, 0.050, 0.795, 0.035)", function (a, b, c, d) { 3729 return 0 === a ? b : c * Math.pow(2, 10 * (a / d - 1)) + b; 3730 }], 3731 "ease-out-expo": ["cubic-bezier(0.190, 1, 0.220, 1)", function (a, b, c, d) { 3732 return a === d ? b + c : c * (-Math.pow(2, -10 * a / d) + 1) + b; 3733 }], 3734 "ease-in-out-expo": ["cubic-bezier(1, 0, 0, 1)", function (a, b, c, d) { 3735 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; 3736 }], 3737 "ease-in-circ": ["cubic-bezier(0.600, 0.040, 0.980, 0.335)", function (a, b, c, d) { 3738 return -c * (Math.sqrt(1 - (a /= d) * a) - 1) + b; 3739 }], 3740 "ease-out-circ": ["cubic-bezier(0.075, 0.820, 0.165, 1)", function (a, b, c, d) { 3741 return c * Math.sqrt(1 - (a = a / d - 1) * a) + b; 3742 }], 3743 "ease-in-out-circ": ["cubic-bezier(0.785, 0.135, 0.150, 0.860)", function (a, b, c, d) { 3744 return (a /= d / 2) < 1 ? -c / 2 * (Math.sqrt(1 - a * a) - 1) + b : c / 2 * (Math.sqrt(1 - (a -= 2) * a) + 1) + b; 3745 }], 3746 "ease-in-back": ["cubic-bezier(0.600, -0.280, 0.735, 0.045)", function (a, b, c, d, e) { 3747 return void 0 === e && (e = 1.70158), c * (a /= d) * a * ((e + 1) * a - e) + b; 3748 }], 3749 "ease-out-back": ["cubic-bezier(0.175, 0.885, 0.320, 1.275)", function (a, b, c, d, e) { 3750 return void 0 === e && (e = 1.70158), c * ((a = a / d - 1) * a * ((e + 1) * a + e) + 1) + b; 3751 }], 3752 "ease-in-out-back": ["cubic-bezier(0.680, -0.550, 0.265, 1.550)", function (a, b, c, d, e) { 3753 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; 3754 }] 3755 }, 3756 n = { 3757 "ease-in-back": "cubic-bezier(0.600, 0, 0.735, 0.045)", 3758 "ease-out-back": "cubic-bezier(0.175, 0.885, 0.320, 1)", 3759 "ease-in-out-back": "cubic-bezier(0.680, 0, 0.265, 1)" 3760 }, 3761 o = document, 3762 p = window, 3763 q = "bkwld-tram", 3764 r = /[\-\.0-9]/g, 3765 s = /[A-Z]/, 3766 t = "number", 3767 u = /^(rgb|#)/, 3768 v = /(em|cm|mm|in|pt|pc|px)$/, 3769 w = /(em|cm|mm|in|pt|pc|px|%)$/, 3770 x = /(deg|rad|turn)$/, 3771 y = "unitless", 3772 z = /(all|none) 0s ease 0s/, 3773 A = /^(width|height)$/, 3774 B = " ", 3775 C = o.createElement("a"), 3776 D = ["Webkit", "Moz", "O", "ms"], 3777 E = ["-webkit-", "-moz-", "-o-", "-ms-"], 3778 F = function F(a) { 3779 if (a in C.style) return { 3780 dom: a, 3781 css: a 3782 }; 3783 var b, 3784 c, 3785 d = "", 3786 e = a.split("-"); 3787 3788 for (b = 0; b < e.length; b++) { 3789 d += e[b].charAt(0).toUpperCase() + e[b].slice(1); 3790 } 3791 3792 for (b = 0; b < D.length; b++) { 3793 if (c = D[b] + d, c in C.style) return { 3794 dom: c, 3795 css: E[b] + a 3796 }; 3797 } 3798 }, 3799 G = b.support = { 3800 bind: Function.prototype.bind, 3801 transform: F("transform"), 3802 transition: F("transition"), 3803 backface: F("backface-visibility"), 3804 timing: F("transition-timing-function") 3805 }; 3806 3807 if (G.transition) { 3808 var H = G.timing.dom; 3809 if (C.style[H] = m["ease-in-back"][0], !C.style[H]) for (var I in n) { 3810 m[I][0] = n[I]; 3811 } 3812 } 3813 3814 var J = b.frame = function () { 3815 var a = p.requestAnimationFrame || p.webkitRequestAnimationFrame || p.mozRequestAnimationFrame || p.oRequestAnimationFrame || p.msRequestAnimationFrame; 3816 return a && G.bind ? a.bind(p) : function (a) { 3817 p.setTimeout(a, 16); 3818 }; 3819 }(), 3820 K = b.now = function () { 3821 var a = p.performance, 3822 b = a && (a.now || a.webkitNow || a.msNow || a.mozNow); 3823 return b && G.bind ? b.bind(a) : Date.now || function () { 3824 return +new Date(); 3825 }; 3826 }(), 3827 L = l(function (b) { 3828 function d(a, b) { 3829 var c = k(("" + a).split(B)), 3830 d = c[0]; 3831 b = b || {}; 3832 var e = Y[d]; 3833 if (!e) return j("Unsupported property: " + d); 3834 3835 if (!b.weak || !this.props[d]) { 3836 var f = e[0], 3837 g = this.props[d]; 3838 return g || (g = this.props[d] = new f.Bare()), g.init(this.$el, c, e, b), g; 3839 } 3840 } 3841 3842 function e(a, b, c) { 3843 if (a) { 3844 var e = (0, _typeof2["default"])(a); 3845 if (b || (this.timer && this.timer.destroy(), this.queue = [], this.active = !1), "number" == e && b) return this.timer = new S({ 3846 duration: a, 3847 context: this, 3848 complete: h 3849 }), void (this.active = !0); 3850 3851 if ("string" == e && b) { 3852 switch (a) { 3853 case "hide": 3854 o.call(this); 3855 break; 3856 3857 case "stop": 3858 l.call(this); 3859 break; 3860 3861 case "redraw": 3862 p.call(this); 3863 break; 3864 3865 default: 3866 d.call(this, a, c && c[1]); 3867 } 3868 3869 return h.call(this); 3870 } 3871 3872 if ("function" == e) return void a.call(this, this); 3873 3874 if ("object" == e) { 3875 var f = 0; 3876 u.call(this, a, function (a, b) { 3877 a.span > f && (f = a.span), a.stop(), a.animate(b); 3878 }, function (a) { 3879 "wait" in a && (f = i(a.wait, 0)); 3880 }), t.call(this), f > 0 && (this.timer = new S({ 3881 duration: f, 3882 context: this 3883 }), this.active = !0, b && (this.timer.complete = h)); 3884 var g = this, 3885 j = !1, 3886 k = {}; 3887 J(function () { 3888 u.call(g, a, function (a) { 3889 a.active && (j = !0, k[a.name] = a.nextStyle); 3890 }), j && g.$el.css(k); 3891 }); 3892 } 3893 } 3894 } 3895 3896 function f(a) { 3897 a = i(a, 0), this.active ? this.queue.push({ 3898 options: a 3899 }) : (this.timer = new S({ 3900 duration: a, 3901 context: this, 3902 complete: h 3903 }), this.active = !0); 3904 } 3905
3906 function g(a) { 3907 return this.active ? (this.queue.push({ 3908 options: a, 3909 args: arguments 3910 }), void (this.timer.complete = h)) : j("No active transition timer. Use start() or wait() before then()."); 3911 } 3912 3913 function h() { 3914 if (this.timer && this.timer.destroy(), this.active = !1, this.queue.length) { 3915 var a = this.queue.shift(); 3916 e.call(this, a.options, !0, a.args); 3917 } 3918 } 3919 3920 function l(a) { 3921 this.timer && this.timer.destroy(), this.queue = [], this.active = !1; 3922 var b; 3923 "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); 3924 } 3925 3926 function m(a) { 3927 l.call(this, a), u.call(this, a, w, x); 3928 } 3929 3930 function n(a) { 3931 "string" != typeof a && (a = "block"), this.el.style.display = a; 3932 } 3933 3934 function o() { 3935 l.call(this), this.el.style.display = "none"; 3936 } 3937 3938 function p() { 3939 this.el.offsetHeight; 3940 } 3941 3942 function r() { 3943 l.call(this), a.removeData(this.el, q), this.$el = this.el = null; 3944 } 3945 3946 function t() { 3947 var a, 3948 b, 3949 c = []; 3950 this.upstream && c.push(this.upstream); 3951 3952 for (a in this.props) { 3953 b = this.props[a], b.active && c.push(b.string); 3954 } 3955 3956 c = c.join(","), this.style !== c && (this.style = c, this.el.style[G.transition.dom] = c); 3957 } 3958 3959 function u(a, b, e) { 3960 var f, 3961 g, 3962 h, 3963 i, 3964 j = b !== v, 3965 k = {}; 3966 3967 for (f in a) { 3968 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)); 3969 } 3970 3971 for (f in k) { 3972 if (h = k[f], g = this.props[f], !g) { 3973 if (!j) continue; 3974 g = d.call(this, f); 3975 } 3976 3977 b.call(this, g, h); 3978 } 3979 3980 e && i && e.call(this, i); 3981 } 3982 3983 function v(a) { 3984 a.stop(); 3985 } 3986 3987 function w(a, b) { 3988 a.set(b); 3989 } 3990 3991 function x(a) { 3992 this.$el.css(a); 3993 } 3994 3995 function y(a, c) { 3996 b[a] = function () { 3997 return this.children ? A.call(this, c, arguments) : (this.el && c.apply(this, arguments), this); 3998 }; 3999 } 4000 4001 function A(a, b) { 4002 var c, 4003 d = this.children.length; 4004 4005 for (c = 0; d > c; c++) { 4006 a.apply(this.children[c], b); 4007 } 4008 4009 return this; 4010 } 4011 4012 b.init = function (b) { 4013 if (this.$el = a(b), this.el = this.$el[0], this.props = {}, this.queue = [], this.style = "", this.active = !1, U.keepInherited && !U.fallback) { 4014 var c = W(this.el, "transition"); 4015 c && !z.test(c) && (this.upstream = c); 4016 } 4017 4018 G.backface && U.hideBackface && V(this.el, G.backface.css, "hidden"); 4019 }, 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); 4020 }), 4021 M = l(L, function (b) { 4022 function c(b, c) { 4023 var d = a.data(b, q) || a.data(b, q, new L.Bare()); 4024 return d.el || d.init(b), c ? d.start(c) : d; 4025 } 4026 4027 b.init = function (b, d) { 4028 var e = a(b); 4029 if (!e.length) return this; 4030 if (1 === e.length) return c(e[0], d); 4031 var f = []; 4032 return e.each(function (a, b) { 4033 f.push(c(b, d)); 4034 }), this.children = f, this; 4035 }; 4036 }), 4037 N = l(function (a) { 4038 function b() { 4039 var a = this.get(); 4040 this.update("auto"); 4041 var b = this.get(); 4042 return this.update(a), b; 4043 } 4044 4045 function c(a, b, c) { 4046 return void 0 !== b && (c = b), a in m ? a : c; 4047 } 4048 4049 function d(a) { 4050 var b = /rgba?\((\d+),\s*(\d+),\s*(\d+)/.exec(a); 4051 return (b ? e(b[1], b[2], b[3]) : a).replace(/#(\w)(\w)(\w)$/, "#$1$1$2$2$3$3"); 4052 } 4053 4054 var f = { 4055 duration: 500, 4056 ease: "ease", 4057 delay: 0 4058 }; 4059 a.init = function (a, b, d, e) { 4060 this.$el = a, this.el = a[0]; 4061 var g = b[0]; 4062 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" : "")); 4063 }, a.set = function (a) { 4064 a = this.convert(a, this.type), this.update(a), this.redraw(); 4065 }, a.transition = function (a) { 4066 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; 4067 }, a.fallback = function (a) { 4068 var c = this.el.style[this.name] || this.convert(this.get(), this.type); 4069 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({ 4070 from: c, 4071 to: a, 4072 duration: this.duration, 4073 delay: this.delay, 4074 ease: this.ease, 4075 update: this.update, 4076 context: this 4077 }); 4078 }, a.get = function () { 4079 return W(this.el, this.name); 4080 }, a.update = function (a) { 4081 V(this.el, this.name, a); 4082 }, a.stop = function () { 4083 (this.active || this.nextStyle) && (this.active = !1, this.nextStyle = null, V(this.el, this.name, this.get())); 4084 var a = this.tween; 4085 a && a.context && a.destroy(); 4086 }, a.convert = function (a, b) { 4087 if ("auto" == a && this.auto) return a; 4088 var c, 4089 e = "number" == typeof a, 4090 f = "string" == typeof a; 4091 4092 switch (b) { 4093 case t: 4094 if (e) return a; 4095 if (f && "" === a.replace(r, "")) return +a; 4096 c = "number(unitless)"; 4097 break; 4098 4099 case u: 4100 if (f) { 4101 if ("" === a && this.original) return this.original; 4102 if (b.test(a)) return "#" == a.charAt(0) && 7 == a.length ? a : d(a); 4103 } 4104 4105 c = "hex or rgb string"; 4106 break; 4107 4108 case v: 4109 if (e) return a + this.unit; 4110 if (f && b.test(a)) return a; 4111 c = "number(px) or string(unit)"; 4112 break; 4113 4114 case w: 4115 if (e) return a + this.unit; 4116 if (f && b.test(a)) return a; 4117 c = "number(px) or string(unit or %)"; 4118 break; 4119 4120 case x: 4121 if (e) return a + this.angle; 4122 if (f && b.test(a)) return a; 4123 c = "number(deg) or string(angle)"; 4124 break; 4125 4126 case y: 4127 if (e) return a; 4128 if (f && w.test(a)) return a; 4129 c = "number(unitless) or string(unit or %)"; 4130 } 4131 4132 return g(c, a), a; 4133 }, a.redraw = function () { 4134 this.el.offsetHeight; 4135 }; 4136 }), 4137 O = l(N, function (a, b) { 4138 a.init = function () {
4139 b.init.apply(this, arguments), this.original || (this.original = this.convert(this.get(), u)); 4140 }; 4141 }), 4142 P = l(N, function (a, b) { 4143 a.init = function () { 4144 b.init.apply(this, arguments), this.animate = this.fallback; 4145 }, a.get = function () { 4146 return this.$el[this.name](); 4147 }, a.update = function (a) { 4148 this.$el[this.name](a); 4149 }; 4150 }), 4151 Q = l(N, function (a, b) { 4152 function c(a, b) { 4153 var c, d, e, f, g; 4154 4155 for (c in a) { 4156 f = Z[c], e = f[0], d = f[1] || c, g = this.convert(a[c], e), b.call(this, d, g, e); 4157 } 4158 } 4159 4160 a.init = function () { 4161 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())); 4162 }, a.set = function (a) { 4163 c.call(this, a, function (a, b) { 4164 this.current[a] = b; 4165 }), V(this.el, this.name, this.style(this.current)), this.redraw(); 4166 }, a.transition = function (a) { 4167 var b = this.values(a); 4168 this.tween = new T({ 4169 current: this.current, 4170 values: b, 4171 duration: this.duration, 4172 delay: this.delay, 4173 ease: this.ease 4174 }); 4175 var c, 4176 d = {}; 4177 4178 for (c in this.current) { 4179 d[c] = c in b ? b[c] : this.current[c]; 4180 } 4181 4182 this.active = !0, this.nextStyle = this.style(d); 4183 }, a.fallback = function (a) { 4184 var b = this.values(a); 4185 this.tween = new T({ 4186 current: this.current, 4187 values: b, 4188 duration: this.duration, 4189 delay: this.delay, 4190 ease: this.ease, 4191 update: this.update, 4192 context: this 4193 }); 4194 }, a.update = function () { 4195 V(this.el, this.name, this.style(this.current)); 4196 }, a.style = function (a) { 4197 var b, 4198 c = ""; 4199 4200 for (b in a) { 4201 c += b + "(" + a[b] + ") "; 4202 } 4203 4204 return c; 4205 }, a.values = function (a) { 4206 var b, 4207 d = {}; 4208 return c.call(this, a, function (a, c, e) { 4209 d[a] = c, void 0 === this.current[a] && (b = 0, ~a.indexOf("scale") && (b = 1), this.current[a] = this.convert(b, e)); 4210 }), d; 4211 }; 4212 }), 4213 R = l(function (b) { 4214 function c(a) { 4215 1 === n.push(a) && J(g); 4216 } 4217 4218 function g() { 4219 var a, 4220 b, 4221 c, 4222 d = n.length; 4223 if (d) for (J(g), b = K(), a = d; a--;) { 4224 c = n[a], c && c.render(b); 4225 } 4226 } 4227 4228 function i(b) { 4229 var c, 4230 d = a.inArray(b, n); 4231 d >= 0 && (c = n.slice(d + 1), n.length = d, c.length && (n = n.concat(c))); 4232 } 4233 4234 function j(a) { 4235 return Math.round(a * o) / o; 4236 } 4237 4238 function k(a, b, c) { 4239 return e(a[0] + c * (b[0] - a[0]), a[1] + c * (b[1] - a[1]), a[2] + c * (b[2] - a[2])); 4240 } 4241 4242 var l = { 4243 ease: m.ease[1], 4244 from: 0, 4245 to: 1 4246 }; 4247 b.init = function (a) { 4248 this.duration = a.duration || 0, this.delay = a.delay || 0; 4249 var b = a.ease || l.ease; 4250 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; 4251 var c = a.from, 4252 d = a.to; 4253 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(); 4254 }, b.play = function () { 4255 this.active || (this.start || (this.start = K()), this.active = !0, c(this)); 4256 }, b.stop = function () { 4257 this.active && (this.active = !1, i(this)); 4258 }, b.render = function (a) { 4259 var b, 4260 c = a - this.start; 4261 4262 if (this.delay) { 4263 if (c <= this.delay) return; 4264 c -= this.delay; 4265 } 4266 4267 if (c < this.duration) { 4268 var d = this.ease(c, 0, 1, this.duration); 4269 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); 4270 } 4271 4272 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(); 4273 }, b.format = function (a, b) { 4274 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); 4275 4276 if (!this.unit) { 4277 var c = b.replace(r, ""), 4278 e = a.replace(r, ""); 4279 c !== e && h("tween", b, a), this.unit = c; 4280 } 4281 4282 b = parseFloat(b), a = parseFloat(a), this.begin = this.value = b, this.change = a - b; 4283 }, b.destroy = function () { 4284 this.stop(), this.context = null, this.ease = this.update = this.complete = f; 4285 }; 4286 var n = [], 4287 o = 1e3; 4288 }),
4289 S = l(R, function (a) { 4290 a.init = function (a) { 4291 this.duration = a.duration || 0, this.complete = a.complete || f, this.context = a.context, this.play(); 4292 }, a.render = function (a) { 4293 var b = a - this.start; 4294 b < this.duration || (this.complete.call(this.context), this.destroy()); 4295 }; 4296 }), 4297 T = l(R, function (a, b) { 4298 a.init = function (a) { 4299 this.context = a.context, this.update = a.update, this.tweens = [], this.current = a.current; 4300 var b, c; 4301 4302 for (b in a.values) { 4303 c = a.values[b], this.current[b] !== c && this.tweens.push(new R({ 4304 name: b, 4305 from: this.current[b], 4306 to: c, 4307 duration: a.duration, 4308 delay: a.delay, 4309 ease: a.ease, 4310 autoplay: !1 4311 })); 4312 } 4313 4314 this.play(); 4315 }, a.render = function (a) { 4316 var b, 4317 c, 4318 d = this.tweens.length, 4319 e = !1; 4320 4321 for (b = d; b--;) { 4322 c = this.tweens[b], c.context && (c.render(a), this.current[c.name] = c.value, e = !0); 4323 } 4324 4325 return e ? void (this.update && this.update.call(this.context)) : this.destroy(); 4326 }, a.destroy = function () { 4327 if (b.destroy.call(this), this.tweens) { 4328 var a, 4329 c = this.tweens.length; 4330 4331 for (a = c; a--;) { 4332 this.tweens[a].destroy(); 4333 } 4334 4335 this.tweens = null, this.current = null; 4336 } 4337 }; 4338 }), 4339 U = b.config = { 4340 debug: !1, 4341 defaultUnit: "px", 4342 defaultAngle: "deg", 4343 keepInherited: !1, 4344 hideBackface: !1, 4345 perspective: "", 4346 fallback: !G.transition, 4347 agentTests: [] 4348 }; 4349 4350 b.fallback = function (a) { 4351 if (!G.transition) return U.fallback = !0; 4352 U.agentTests.push("(" + a + ")"); 4353 var b = new RegExp(U.agentTests.join("|"), "i"); 4354 U.fallback = b.test(navigator.userAgent); 4355 }, b.fallback("6.0.[2-5] Safari"), b.tween = function (a) { 4356 return new R(a); 4357 }, b.delay = function (a, b, c) { 4358 return new S({ 4359 complete: b, 4360 duration: a, 4361 context: c 4362 }); 4363 }, a.fn.tram = function (a) { 4364 return b.call(null, this, a); 4365 }; 4366 var V = a.style, 4367 W = a.css, 4368 X = { 4369 transform: G.transform && G.transform.css 4370 }, 4371 Y = { 4372 color: [O, u], 4373 background: [O, u, "background-color"], 4374 "outline-color": [O, u], 4375 "border-color": [O, u], 4376 "border-top-color": [O, u], 4377 "border-right-color": [O, u], 4378 "border-bottom-color": [O, u], 4379 "border-left-color": [O, u], 4380 "border-width": [N, v], 4381 "border-top-width": [N, v], 4382 "border-right-width": [N, v], 4383 "border-bottom-width": [N, v], 4384 "border-left-width": [N, v], 4385 "border-spacing": [N, v], 4386 "letter-spacing": [N, v], 4387 margin: [N, v], 4388 "margin-top": [N, v], 4389 "margin-right": [N, v], 4390 "margin-bottom": [N, v], 4391 "margin-left": [N, v], 4392 padding: [N, v], 4393 "padding-top": [N, v], 4394 "padding-right": [N, v], 4395 "padding-bottom": [N, v], 4396 "padding-left": [N, v], 4397 "outline-width": [N, v], 4398 opacity: [N, t], 4399 top: [N, w], 4400 right: [N, w], 4401 bottom: [N, w], 4402 left: [N, w], 4403 "font-size": [N, w], 4404 "text-indent": [N, w], 4405 "word-spacing": [N, w], 4406 width: [N, w], 4407 "min-width": [N, w], 4408 "max-width": [N, w], 4409 height: [N, w], 4410 "min-height": [N, w], 4411 "max-height": [N, w], 4412 "line-height": [N, y], 4413 "scroll-top": [P, t, "scrollTop"], 4414 "scroll-left": [P, t, "scrollLeft"] 4415 }, 4416 Z = {}; 4417 G.transform && (Y.transform = [Q], Z = { 4418 x: [w, "translateX"], 4419 y: [w, "translateY"], 4420 rotate: [x], 4421 rotateX: [x], 4422 rotateY: [x], 4423 scale: [t], 4424 scaleX: [t], 4425 scaleY: [t], 4426 skew: [x], 4427 skewX: [x], 4428 skewY: [x] 4429 }), G.transform && G.backface && (Z.z = [w, "translateZ"], Z.rotateZ = [x], Z.scaleZ = [t], Z.perspective = [v]); 4430 var $ = /ms/, 4431 _ = /s|\./; 4432 return a.tram = b; 4433}(window.jQuery); 4434 4435/***/ }), 4436/* 67 */ 4437/***/ (function(module, exports, __webpack_require__) { 4438 4439var DESCRIPTORS = __webpack_require__(14); 4440var propertyIsEnumerableModule = __webpack_require__(131); 4441var createPropertyDescriptor = __webpack_require__(68); 4442var toIndexedObject = __webpack_require__(39); 4443var toPrimitive = __webpack_require__(69); 4444var has = __webpack_require__(16); 4445var IE8_DOM_DEFINE = __webpack_require__(70); 4446 4447var nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 4448 4449// `Object.getOwnPropertyDescriptor` method 4450// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor 4451exports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) { 4452 O = toIndexedObject(O); 4453 P = toPrimitive(P, true); 4454 if (IE8_DOM_DEFINE) try { 4455 return nativeGetOwnPropertyDescriptor(O, P); 4456 } catch (error) { /* empty */ } 4457 if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]); 4458}; 4459 4460 4461/***/ }), 4462/* 68 */
vendor: 4,284 bytes, lines 4463-4618
4463/***/ (function(module, exports) { 4464 4465module.exports = function (bitmap, value) { 4466 return { 4467 enumerable: !(bitmap & 1), 4468 configurable: !(bitmap & 2), 4469 writable: !(bitmap & 4), 4470 value: value 4471 }; 4472}; 4473 4474 4475/***/ }), 4476/* 69 */ 4477/***/ (function(module, exports, __webpack_require__) { 4478 4479var isObject = __webpack_require__(23); 4480 4481// `ToPrimitive` abstract operation 4482// https://tc39.github.io/ecma262/#sec-toprimitive 4483// instead of the ES6 spec version, we didn't implement @@toPrimitive case 4484// and the second argument - flag - preferred type is a string 4485module.exports = function (input, PREFERRED_STRING) { 4486 if (!isObject(input)) return input; 4487 var fn, val; 4488 if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4489 if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val; 4490 if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val; 4491 throw TypeError("Can't convert object to primitive value"); 4492}; 4493 4494 4495/***/ }), 4496/* 70 */ 4497/***/ (function(module, exports, __webpack_require__) { 4498 4499var DESCRIPTORS = __webpack_require__(14); 4500var fails = __webpack_require__(15); 4501var createElement = __webpack_require__(71); 4502 4503// Thank's IE8 for his funny defineProperty 4504module.exports = !DESCRIPTORS && !fails(function () { 4505 return Object.defineProperty(createElement('div'), 'a', { 4506 get: function () { return 7; } 4507 }).a != 7; 4508}); 4509 4510 4511/***/ }), 4512/* 71 */ 4513/***/ (function(module, exports, __webpack_require__) { 4514 4515var global = __webpack_require__(3); 4516var isObject = __webpack_require__(23); 4517 4518var document = global.document; 4519// typeof document.createElement is 'object' in old IE 4520var EXISTS = isObject(document) && isObject(document.createElement); 4521 4522module.exports = function (it) { 4523 return EXISTS ? document.createElement(it) : {}; 4524}; 4525 4526 4527/***/ }), 4528/* 72 */ 4529/***/ (function(module, exports, __webpack_require__) { 4530 4531var shared = __webpack_require__(25); 4532 4533module.exports = shared('native-function-to-string', Function.toString); 4534 4535 4536/***/ }), 4537/* 73 */ 4538/***/ (function(module, exports, __webpack_require__) { 4539 4540var shared = __webpack_require__(25); 4541var uid = __webpack_require__(74); 4542 4543var keys = shared('keys'); 4544 4545module.exports = function (key) { 4546 return keys[key] || (keys[key] = uid(key)); 4547}; 4548 4549 4550/***/ }), 4551/* 74 */ 4552/***/ (function(module, exports) { 4553 4554var id = 0; 4555var postfix = Math.random(); 4556 4557module.exports = function (key) { 4558 return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36); 4559}; 4560 4561 4562/***/ }), 4563/* 75 */ 4564/***/ (function(module, exports, __webpack_require__) { 4565 4566var path = __webpack_require__(141); 4567var global = __webpack_require__(3); 4568 4569var aFunction = function (variable) { 4570 return typeof variable == 'function' ? variable : undefined; 4571}; 4572 4573module.exports = function (namespace, method) { 4574 return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace]) 4575 : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method]; 4576}; 4577 4578 4579/***/ }), 4580/* 76 */ 4581/***/ (function(module, exports, __webpack_require__) { 4582 4583var has = __webpack_require__(16); 4584var toIndexedObject = __webpack_require__(39); 4585var indexOf = __webpack_require__(77).indexOf; 4586var hiddenKeys = __webpack_require__(42); 4587 4588module.exports = function (object, names) { 4589 var O = toIndexedObject(object); 4590 var i = 0; 4591 var result = []; 4592 var key; 4593 for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key); 4594 // Don't enum bug & hidden keys 4595 while (names.length > i) if (has(O, key = names[i++])) { 4596 ~indexOf(result, key) || result.push(key); 4597 } 4598 return result; 4599}; 4600 4601 4602/***/ }), 4603/* 77 */ 4604/***/ (function(module, exports, __webpack_require__) { 4605 4606var toIndexedObject = __webpack_require__(39); 4607var toLength = __webpack_require__(143); 4608var toAbsoluteIndex = __webpack_require__(144); 4609 4610// `Array.prototype.{ indexOf, includes }` methods implementation 4611var createMethod = function (IS_INCLUDES) { 4612 return function ($this, el, fromIndex) { 4613 var O = toIndexedObject($this); 4614 var length = toLength(O.length); 4615 var index = toAbsoluteIndex(fromIndex, length); 4616 var value; 4617 // Array#includes uses SameValueZero equality algorithm 4618 // eslint-disable-next-line no-self-compare
4619 if (IS_INCLUDES && el != el) while (length > index) { 4620 value = O[index++]; 4621 // eslint-disable-next-line no-self-compare 4622 if (value != value) return true; 4623 // Array#indexOf ignores holes, Array#includes - not 4624 } else for (;length > index; index++) { 4625 if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0; 4626 } return !IS_INCLUDES && -1; 4627 }; 4628}; 4629 4630module.exports = { 4631 // `Array.prototype.includes` method 4632 // https://tc39.github.io/ecma262/#sec-array.prototype.includes 4633 includes: createMethod(true), 4634 // `Array.prototype.indexOf` method 4635 // https://tc39.github.io/ecma262/#sec-array.prototype.indexof 4636 indexOf: createMethod(false) 4637}; 4638 4639 4640/***/ }), 4641/* 78 */ 4642/***/ (function(module, exports) { 4643 4644var ceil = Math.ceil; 4645var floor = Math.floor; 4646 4647// `ToInteger` abstract operation 4648// https://tc39.github.io/ecma262/#sec-tointeger 4649module.exports = function (argument) { 4650 return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument); 4651}; 4652 4653 4654/***/ }), 4655/* 79 */ 4656/***/ (function(module, __webpack_exports__, __webpack_require__) { 4657 4658"use strict"; 4659__webpack_require__.r(__webpack_exports__); 4660/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44); 4661/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "createStore", function() { return _createStore__WEBPACK_IMPORTED_MODULE_0__["default"]; }); 4662 4663/* harmony import */ var _combineReducers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(82); 4664/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineReducers", function() { return _combineReducers__WEBPACK_IMPORTED_MODULE_1__["default"]; }); 4665 4666/* harmony import */ var _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(84); 4667/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindActionCreators", function() { return _bindActionCreators__WEBPACK_IMPORTED_MODULE_2__["default"]; }); 4668 4669/* harmony import */ var _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(85); 4670/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "applyMiddleware", function() { return _applyMiddleware__WEBPACK_IMPORTED_MODULE_3__["default"]; }); 4671 4672/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(45); 4673/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "compose", function() { return _compose__WEBPACK_IMPORTED_MODULE_4__["default"]; }); 4674 4675/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(83); 4676 4677 4678 4679 4680 4681 4682 4683/* 4684* This is a dummy function to check if the function name has been altered by minification. 4685* If the function has been minified and NODE_ENV !== 'production', warn the user. 4686*/ 4687function isCrushed() {} 4688 4689if (false) {} 4690 4691 4692 4693/***/ }), 4694/* 80 */ 4695/***/ (function(module, __webpack_exports__, __webpack_require__) { 4696 4697"use strict"; 4698__webpack_require__.r(__webpack_exports__); 4699/* harmony import */ var _baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(157); 4700/* harmony import */ var _getPrototype_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(162); 4701/* harmony import */ var _isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(164); 4702 4703 4704 4705 4706/** `Object#toString` result references. */ 4707var objectTag = '[object Object]'; 4708 4709/** Used for built-in method references. */ 4710var funcProto = Function.prototype, 4711 objectProto = Object.prototype; 4712 4713/** Used to resolve the decompiled source of functions. */ 4714var funcToString = funcProto.toString; 4715 4716/** Used to check objects for own properties. */ 4717var hasOwnProperty = objectProto.hasOwnProperty; 4718 4719/** Used to infer the `Object` constructor. */ 4720var objectCtorString = funcToString.call(Object); 4721 4722/** 4723 * Checks if `value` is a plain object, that is, an object created by the 4724 * `Object` constructor or one with a `[[Prototype]]` of `null`. 4725 * 4726 * @static 4727 * @memberOf _ 4728 * @since 0.8.0 4729 * @category Lang 4730 * @param {*} value The value to check. 4731 * @returns {boolean} Returns `true` if `value` is a plain object, else `false`. 4732 * @example 4733 * 4734 * function Foo() { 4735 * this.a = 1; 4736 * } 4737 * 4738 * _.isPlainObject(new Foo); 4739 * // => false 4740 * 4741 * _.isPlainObject([1, 2, 3]); 4742 * // => false 4743 * 4744 * _.isPlainObject({ 'x': 0, 'y': 0 }); 4745 * // => true 4746 * 4747 * _.isPlainObject(Object.create(null)); 4748 * // => true 4749 */ 4750function isPlainObject(value) { 4751 if (!Object(_isObjectLike_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value) || Object(_baseGetTag_js__WEBPACK_IMPORTED_MODULE_0__["default"])(value) != objectTag) { 4752 return false;
4753 } 4754 var proto = Object(_getPrototype_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value); 4755 if (proto === null) { 4756 return true; 4757 } 4758 var Ctor = hasOwnProperty.call(proto, 'constructor') && proto.constructor; 4759 return typeof Ctor == 'function' && Ctor instanceof Ctor && 4760 funcToString.call(Ctor) == objectCtorString; 4761} 4762 4763/* harmony default export */ __webpack_exports__["default"] = (isPlainObject); 4764 4765 4766/***/ }), 4767/* 81 */ 4768/***/ (function(module, __webpack_exports__, __webpack_require__) { 4769 4770"use strict"; 4771__webpack_require__.r(__webpack_exports__); 4772/* harmony import */ var _root_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(158); 4773 4774 4775/** Built-in value references. */ 4776var Symbol = _root_js__WEBPACK_IMPORTED_MODULE_0__["default"].Symbol; 4777 4778/* harmony default export */ __webpack_exports__["default"] = (Symbol); 4779 4780 4781/***/ }), 4782/* 82 */ 4783/***/ (function(module, __webpack_exports__, __webpack_require__) { 4784 4785"use strict"; 4786__webpack_require__.r(__webpack_exports__); 4787/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return combineReducers; }); 4788/* harmony import */ var _createStore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(44); 4789/* harmony import */ var lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(80); 4790/* harmony import */ var _utils_warning__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(83); 4791 4792 4793 4794 4795function getUndefinedStateErrorMessage(key, action) { 4796 var actionType = action && action.type; 4797 var actionName = actionType && '"' + actionType.toString() + '"' || 'an action'; 4798 4799 return 'Given action ' + actionName + ', reducer "' + key + '" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state.'; 4800} 4801 4802function getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unex
4802pectedKeyCache) { 4803 var reducerKeys = Object.keys(reducers); 4804 var argumentName = action && action.type === _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer'; 4805 4806 if (reducerKeys.length === 0) { 4807 return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.'; 4808 } 4809 4810 if (!Object(lodash_es_isPlainObject__WEBPACK_IMPORTED_MODULE_1__["default"])(inputState)) { 4811 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('", "') + '"'); 4812 } 4813 4814 var unexpectedKeys = Object.keys(inputState).filter(function (key) { 4815 return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key]; 4816 }); 4817 4818 unexpectedKeys.forEach(function (key) { 4819 unexpectedKeyCache[key] = true; 4820 }); 4821 4822 if (unexpectedKeys.length > 0) { 4823 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.'); 4824 } 4825} 4826 4827function assertReducerSanity(reducers) { 4828 Object.keys(reducers).forEach(function (key) { 4829 var reducer = reducers[key]; 4830 var initialState = reducer(undefined, { type: _createStore__WEBPACK_IMPORTED_MODULE_0__["ActionTypes"].INIT }); 4831 4832 if (typeof initialState === 'undefined') { 4833 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.'); 4834 } 4835 4836 var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.'); 4837 if (typeof reducer(undefined, { type: type }) === 'undefined') { 4838 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.'); 4839 } 4840 }); 4841} 4842 4843/** 4844 * Turns an object whose values are different reducer functions, into a single 4845 * reducer function. It will call every child reducer, and gather their results 4846 * into a single state object, whose keys correspond to the keys of the passed 4847 * reducer functions. 4848 * 4849 * @param {Object} reducers An object whose values correspond to different 4850 * reducer functions that need to be combined into one. One handy way to obtain 4851 * it is to use ES6 `import * as reducers` syntax. The reducers may never return 4852 * undefined for any action. Instead, they should return their initial state 4853 * if the state passed to them was undefined, and the current state for any 4854 * unrecognized action. 4855 * 4856 * @returns {Function} A reducer function that invokes every reducer inside the 4857 * passed object, and builds a state object with the same shape. 4858 */ 4859function combineReducers(reducers) { 4860 var reducerKeys = Object.keys(reducers); 4861 var finalReducers = {}; 4862 for (var i = 0; i < reducerKeys.length; i++) { 4863 var key = reducerKeys[i]; 4864 4865 if (false) {} 4866 4867 if (typeof reducers[key] === 'function') { 4868 finalReducers[key] = reducers[key]; 4869 } 4870 } 4871 var finalReducerKeys = Object.keys(finalReducers); 4872 4873 if (false) { var unexpectedKeyCache; } 4874 4875 var sanityError; 4876 try { 4877 assertReducerSanity(finalReducers); 4878 } catch (e) { 4879 sanityError = e; 4880 } 4881 4882 return function combination() { 4883 var state = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; 4884 var action = arguments[1]; 4885 4886 if (sanityError) { 4887 throw sanityError; 4888 } 4889 4890 if (false) { var warningMessage; } 4891 4892 var hasChanged = false;
4893 var nextState = {}; 4894 for (var i = 0; i < finalReducerKeys.length; i++) { 4895 var key = finalReducerKeys[i]; 4896 var reducer = finalReducers[key]; 4897 var previousStateForKey = state[key]; 4898 var nextStateForKey = reducer(previousStateForKey, action); 4899 if (typeof nextStateForKey === 'undefined') { 4900 var errorMessage = getUndefinedStateErrorMessage(key, action); 4901 throw new Error(errorMessage); 4902 } 4903 nextState[key] = nextStateForKey; 4904 hasChanged = hasChanged || nextStateForKey !== previousStateForKey; 4905 } 4906 return hasChanged ? nextState : state; 4907 }; 4908} 4909 4910/***/ }), 4911/* 83 */ 4912/***/ (function(module, __webpack_exports__, __webpack_require__) { 4913 4914"use strict"; 4915__webpack_require__.r(__webpack_exports__); 4916/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return warning; }); 4917/** 4918 * Prints a warning in the console if it exists. 4919 * 4920 * @param {String} message The warning message. 4921 * @returns {void} 4922 */ 4923function warning(message) { 4924 /* eslint-disable no-console */ 4925 if (typeof console !== 'undefined' && typeof console.error === 'function') { 4926 console.error(message); 4927 } 4928 /* eslint-enable no-console */ 4929 try { 4930 // This error was thrown as a convenience so that if you enable 4931 // "break on all exceptions" in your console, 4932 // it would pause the execution at this line. 4933 throw new Error(message); 4934 /* eslint-disable no-empty */ 4935 } catch (e) {} 4936 /* eslint-enable no-empty */ 4937} 4938 4939/***/ }), 4940/* 84 */ 4941/***/ (function(module, __webpack_exports__, __webpack_require__) { 4942 4943"use strict"; 4944__webpack_require__.r(__webpack_exports__); 4945/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return bindActionCreators; }); 4946function bindActionCreator(actionCreator, dispatch) { 4947 return function () { 4948 return dispatch(actionCreator.apply(undefined, arguments)); 4949 }; 4950} 4951 4952/** 4953 * Turns an object whose values are action creators, into an object with the 4954 * same keys, but with every function wrapped into a `dispatch` call so they 4955 * may be invoked directly. This is just a convenience method, as you can call 4956 * `store.dispatch(MyActionCreators.doSomething())` yourself just fine. 4957 * 4958 * For convenience, you can also pass a single function as the first argument, 4959 * and get a function in return. 4960 * 4961 * @param {Function|Object} actionCreators An object whose values are action 4962 * creator functions. One handy way to obtain it is to use ES6 `import * as` 4963 * syntax. You may also pass a single function. 4964 * 4965 * @param {Function} dispatch The `dispatch` function available on your Redux 4966 * store. 4967 * 4968 * @returns {Function|Object} The object mimicking the original object, but with 4969 * every action creator wrapped into the `dispatch` call. If you passed a 4970 * function as `actionCreators`, the return value will also be a single 4971 * function. 4972 */ 4973function bindActionCreators(actionCreators, dispatch) { 4974 if (typeof actionCreators === 'function') { 4975 return bindActionCreator(actionCreators, dispatch); 4976 } 4977 4978 if (typeof actionCreators !== 'object' || actionCreators === null) { 4979 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"?'); 4980 } 4981 4982 var keys = Object.keys(actionCreators); 4983 var boundActionCreators = {}; 4984 for (var i = 0; i < keys.length; i++) { 4985 var key = keys[i]; 4986 var actionCreator = actionCreators[key]; 4987 if (typeof actionCreator === 'function') { 4988 boundActionCreators[key] = bindActionCreator(actionCreator, dispatch); 4989 } 4990 } 4991 return boundActionCreators; 4992} 4993 4994/***/ }), 4995/* 85 */ 4996/***/ (function(module, __webpack_exports__, __webpack_require__) { 4997 4998"use strict"; 4999__webpack_require__.r(__webpack_exports__); 5000/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return applyMiddleware; }); 5001/* harmony import */ var _compose__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(45); 5002var _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; }; 5003 5004 5005 5006/** 5007 * Creates a store enhancer that applies middleware to the dispatch method 5008 * of the Redux store. This is handy for a variety of tasks, such as expressing 5009 * asynchronous actions in a concise manner, or logging every action payload. 5010 * 5011 * See `redux-thunk` package as an example of the Redux middleware. 5012 * 5013 * Because middleware is potentially asynchronous, this should be the first 5014 * store enhancer in the composition chain. 5015 *
5016 * Note that each middleware will be given the `dispatch` and `getState` functions 5017 * as named arguments. 5018 * 5019 * @param {...Function} middlewares The middleware chain to be applied. 5020 * @returns {Function} A store enhancer applying the middleware. 5021 */ 5022function applyMiddleware() { 5023 for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) { 5024 middlewares[_key] = arguments[_key]; 5025 } 5026 5027 return function (createStore) { 5028 return function (reducer, preloadedState, enhancer) { 5029 var store = createStore(reducer, preloadedState, enhancer); 5030 var _dispatch = store.dispatch; 5031 var chain = []; 5032 5033 var middlewareAPI = { 5034 getState: store.getState, 5035 dispatch: function dispatch(action) { 5036 return _dispatch(action); 5037 } 5038 }; 5039 chain = middlewares.map(function (middleware) { 5040 return middleware(middlewareAPI); 5041 }); 5042 _dispatch = _compose__WEBPACK_IMPORTED_MODULE_0__["default"].apply(undefined, chain)(store.dispatch); 5043 5044 return _extends({}, store, { 5045 dispatch: _dispatch 5046 }); 5047 }; 5048 }; 5049} 5050 5051/***/ }), 5052/* 86 */ 5053/***/ (function(module, exports, __webpack_require__) { 5054 5055var createFind = __webpack_require__(87), 5056 findIndex = __webpack_require__(242); 5057 5058/** 5059 * Iterates over elements of `collection`, returning the first element 5060 * `predicate` returns truthy for. The predicate is invoked with three 5061 * arguments: (value, index|key, collection). 5062 * 5063 * @static 5064 * @memberOf _ 5065 * @since 0.1.0 5066 * @category Collection 5067 * @param {Array|Object} collection The collection to inspect. 5068 * @param {Function} [predicate=_.identity] The function invoked per iteration. 5069 * @param {number} [fromIndex=0] The index to search from. 5070 * @returns {*} Returns the matched element, else `undefined`. 5071 * @example 5072 * 5073 * var users = [ 5074 * { 'user': 'barney', 'age': 36, 'active': true }, 5075 * { 'user': 'fred', 'age': 40, 'active': false }, 5076 * { 'user': 'pebbles', 'age': 1, 'active': true } 5077 * ]; 5078 * 5079 * _.find(users, function(o) { return o.age < 40; }); 5080 * // => object for 'barney' 5081 * 5082 * // The `_.matches` iteratee shorthand. 5083 * _.find(users, { 'age': 1, 'active': true }); 5084 * // => object for 'pebbles' 5085 * 5086 * // The `_.matchesProperty` iteratee shorthand. 5087 * _.find(users, ['active', false]); 5088 * // => object for 'fred' 5089 * 5090 * // The `_.property` iteratee shorthand. 5091 * _.find(users, 'active'); 5092 * // => object for 'barney' 5093 */ 5094var find = createFind(findIndex); 5095 5096module.exports = find; 5097 5098 5099/***/ }), 5100/* 87 */ 5101/***/ (function(module, exports, __webpack_require__) { 5102 5103var baseIteratee = __webpack_require__(7), 5104 isArrayLike = __webpack_require__(12), 5105 keys = __webpack_require__(32); 5106 5107/** 5108 * Creates a `_.find` or `_.findLast` function. 5109 * 5110 * @private 5111 * @param {Function} findIndexFunc The function to find the collection index. 5112 * @returns {Function} Returns the new find function. 5113 */ 5114function createFind(findIndexFunc) { 5115 return function(collection, predicate, fromIndex) { 5116 var iterable = Object(collection); 5117 if (!isArrayLike(collection)) { 5118 var iteratee = baseIteratee(predicate, 3); 5119 collection = keys(collection); 5120 predicate = function(key) { return iteratee(iterable[key], key, iterable); }; 5121 } 5122 var index = findIndexFunc(collection, predicate, fromIndex); 5123 return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined; 5124 }; 5125} 5126 5127module.exports = createFind; 5128 5129 5130/***/ }), 5131/* 88 */ 5132/***/ (function(module, exports, __webpack_require__) { 5133 5134var ListCache = __webpack_require__(28), 5135 stackClear = __webpack_require__(184), 5136 stackDelete = __webpack_require__(185), 5137 stackGet = __webpack_require__(186), 5138 stackHas = __webpack_require__(187), 5139 stackSet = __webpack_require__(188); 5140 5141/** 5142 * Creates a stack cache object to store key-value pairs. 5143 * 5144 * @private 5145 * @constructor 5146 * @param {Array} [entries] The key-value pairs to cache. 5147 */ 5148function Stack(entries) { 5149 var data = this.__data__ = new ListCache(entries); 5150 this.size = data.size; 5151} 5152 5153// Add methods to `Stack`. 5154Stack.prototype.clear = stackClear; 5155Stack.prototype['delete'] = stackDelete; 5156Stack.prototype.get = stackGet;
vendor: 3,424 bytes, lines 5157-5289
5157Stack.prototype.has = stackHas; 5158Stack.prototype.set = stackSet; 5159 5160module.exports = Stack; 5161 5162 5163/***/ }), 5164/* 89 */ 5165/***/ (function(module, exports, __webpack_require__) { 5166 5167var baseGetTag = __webpack_require__(11), 5168 isObject = __webpack_require__(6); 5169 5170/** `Object#toString` result references. */ 5171var asyncTag = '[object AsyncFunction]', 5172 funcTag = '[object Function]', 5173 genTag = '[object GeneratorFunction]', 5174 proxyTag = '[object Proxy]'; 5175 5176/** 5177 * Checks if `value` is classified as a `Function` object. 5178 * 5179 * @static 5180 * @memberOf _ 5181 * @since 0.1.0 5182 * @category Lang 5183 * @param {*} value The value to check. 5184 * @returns {boolean} Returns `true` if `value` is a function, else `false`. 5185 * @example 5186 * 5187 * _.isFunction(_); 5188 * // => true 5189 * 5190 * _.isFunction(/abc/); 5191 * // => false 5192 */ 5193function isFunction(value) { 5194 if (!isObject(value)) { 5195 return false; 5196 } 5197 // The use of `Object#toString` avoids issues with the `typeof` operator 5198 // in Safari 9 which returns 'object' for typed arrays and other constructors. 5199 var tag = baseGetTag(value); 5200 return tag == funcTag || tag == genTag || tag == asyncTag || tag == proxyTag; 5201} 5202 5203module.exports = isFunction; 5204 5205 5206/***/ }), 5207/* 90 */ 5208/***/ (function(module, exports, __webpack_require__) { 5209 5210/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 5211var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 5212 5213module.exports = freeGlobal; 5214 5215/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 5216 5217/***/ }), 5218/* 91 */ 5219/***/ (function(module, exports) { 5220 5221/** Used for built-in method references. */ 5222var funcProto = Function.prototype; 5223 5224/** Used to resolve the decompiled source of functions. */ 5225var funcToString = funcProto.toString; 5226 5227/** 5228 * Converts `func` to its source code. 5229 * 5230 * @private 5231 * @param {Function} func The function to convert. 5232 * @returns {string} Returns the source code. 5233 */ 5234function toSource(func) { 5235 if (func != null) { 5236 try { 5237 return funcToString.call(func); 5238 } catch (e) {} 5239 try { 5240 return (func + ''); 5241 } catch (e) {} 5242 } 5243 return ''; 5244} 5245 5246module.exports = toSource; 5247 5248 5249/***/ }), 5250/* 92 */ 5251/***/ (function(module, exports, __webpack_require__) { 5252 5253var baseIsEqualDeep = __webpack_require__(207), 5254 isObjectLike = __webpack_require__(9); 5255 5256/** 5257 * The base implementation of `_.isEqual` which supports partial comparisons 5258 * and tracks traversed objects. 5259 * 5260 * @private 5261 * @param {*} value The value to compare. 5262 * @param {*} other The other value to compare. 5263 * @param {boolean} bitmask The bitmask flags. 5264 * 1 - Unordered comparison 5265 * 2 - Partial comparison 5266 * @param {Function} [customizer] The function to customize comparisons. 5267 * @param {Object} [stack] Tracks traversed `value` and `other` objects. 5268 * @returns {boolean} Returns `true` if the values are equivalent, else `false`. 5269 */ 5270function baseIsEqual(value, other, bitmask, customizer, stack) { 5271 if (value === other) { 5272 return true; 5273 } 5274 if (value == null || other == null || (!isObjectLike(value) && !isObjectLike(other))) { 5275 return value !== value && other !== other; 5276 } 5277 return baseIsEqualDeep(value, other, bitmask, customizer, baseIsEqual, stack); 5278} 5279 5280module.exports = baseIsEqual; 5281 5282 5283/***/ }), 5284/* 93 */ 5285/***/ (function(module, exports, __webpack_require__) { 5286 5287var SetCache = __webpack_require__(208), 5288 arraySome = __webpack_require__(211), 5289 cacheHas = __webpack_require__(212
vendor: 2,480 bytes, lines 5289-5370
5289); 5290 5291/** Used to compose bitmasks for value comparisons. */ 5292var COMPARE_PARTIAL_FLAG = 1, 5293 COMPARE_UNORDERED_FLAG = 2; 5294 5295/** 5296 * A specialized version of `baseIsEqualDeep` for arrays with support for 5297 * partial deep comparisons. 5298 * 5299 * @private 5300 * @param {Array} array The array to compare. 5301 * @param {Array} other The other array to compare. 5302 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 5303 * @param {Function} customizer The function to customize comparisons. 5304 * @param {Function} equalFunc The function to determine equivalents of values. 5305 * @param {Object} stack Tracks traversed `array` and `other` objects. 5306 * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`. 5307 */ 5308function equalArrays(array, other, bitmask, customizer, equalFunc, stack) { 5309 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 5310 arrLength = array.length, 5311 othLength = other.length; 5312 5313 if (arrLength != othLength && !(isPartial && othLength > arrLength)) { 5314 return false; 5315 } 5316 // Assume cyclic values are equal. 5317 var stacked = stack.get(array); 5318 if (stacked && stack.get(other)) { 5319 return stacked == other; 5320 } 5321 var index = -1, 5322 result = true, 5323 seen = (bitmask & COMPARE_UNORDERED_FLAG) ? new SetCache : undefined; 5324 5325 stack.set(array, other); 5326 stack.set(other, array); 5327 5328 // Ignore non-index properties. 5329 while (++index < arrLength) { 5330 var arrValue = array[index], 5331 othValue = other[index]; 5332 5333 if (customizer) { 5334 var compared = isPartial 5335 ? customizer(othValue, arrValue, index, other, array, stack) 5336 : customizer(arrValue, othValue, index, array, other, stack); 5337 } 5338 if (compared !== undefined) { 5339 if (compared) { 5340 continue; 5341 } 5342 result = false; 5343 break; 5344 } 5345 // Recursively compare arrays (susceptible to call stack limits). 5346 if (seen) { 5347 if (!arraySome(other, function(othValue, othIndex) { 5348 if (!cacheHas(seen, othIndex) && 5349 (arrValue === othValue || equalFunc(arrValue, othValue, bitmask, customizer, stack))) { 5350 return seen.push(othIndex); 5351 } 5352 })) { 5353 result = false; 5354 break; 5355 } 5356 } else if (!( 5357 arrValue === othValue || 5358 equalFunc(arrValue, othValue, bitmask, customizer, stack) 5359 )) { 5360 result = false; 5361 break; 5362 } 5363 } 5364 stack['delete'](array); 5365 stack['delete'](other); 5366 return result; 5367} 5368 5369module.exports = equalArrays; 5370
vendor: 3,125 bytes, lines 5371-5490
5371 5372/***/ }), 5373/* 94 */ 5374/***/ (function(module, exports, __webpack_require__) { 5375 5376var arrayPush = __webpack_require__(50), 5377 isArray = __webpack_require__(1); 5378 5379/** 5380 * The base implementation of `getAllKeys` and `getAllKeysIn` which uses 5381 * `keysFunc` and `symbolsFunc` to get the enumerable property names and 5382 * symbols of `object`. 5383 * 5384 * @private 5385 * @param {Object} object The object to query. 5386 * @param {Function} keysFunc The function to get the keys of `object`. 5387 * @param {Function} symbolsFunc The function to get the symbols of `object`. 5388 * @returns {Array} Returns the array of property names and symbols. 5389 */ 5390function baseGetAllKeys(object, keysFunc, symbolsFunc) { 5391 var result = keysFunc(object); 5392 return isArray(object) ? result : arrayPush(result, symbolsFunc(object)); 5393} 5394 5395module.exports = baseGetAllKeys; 5396 5397 5398/***/ }), 5399/* 95 */ 5400/***/ (function(module, exports, __webpack_require__) { 5401 5402var arrayFilter = __webpack_require__(219), 5403 stubArray = __webpack_require__(96); 5404 5405/** Used for built-in method references. */ 5406var objectProto = Object.prototype; 5407 5408/** Built-in value references. */ 5409var propertyIsEnumerable = objectProto.propertyIsEnumerable; 5410 5411/* Built-in method references for those with the same name as other `lodash` methods. */ 5412var nativeGetSymbols = Object.getOwnPropertySymbols; 5413 5414/** 5415 * Creates an array of the own enumerable symbols of `object`. 5416 * 5417 * @private 5418 * @param {Object} object The object to query. 5419 * @returns {Array} Returns the array of symbols. 5420 */ 5421var getSymbols = !nativeGetSymbols ? stubArray : function(object) { 5422 if (object == null) { 5423 return []; 5424 } 5425 object = Object(object); 5426 return arrayFilter(nativeGetSymbols(object), function(symbol) { 5427 return propertyIsEnumerable.call(object, symbol); 5428 }); 5429}; 5430 5431module.exports = getSymbols; 5432 5433 5434/***/ }), 5435/* 96 */ 5436/***/ (function(module, exports) { 5437 5438/** 5439 * This method returns a new empty array. 5440 * 5441 * @static 5442 * @memberOf _ 5443 * @since 4.13.0 5444 * @category Util 5445 * @returns {Array} Returns the new empty array. 5446 * @example 5447 * 5448 * var arrays = _.times(2, _.stubArray); 5449 * 5450 * console.log(arrays); 5451 * // => [[], []] 5452 * 5453 * console.log(arrays[0] === arrays[1]); 5454 * // => false 5455 */ 5456function stubArray() { 5457 return []; 5458} 5459 5460module.exports = stubArray; 5461 5462 5463/***/ }), 5464/* 97 */ 5465/***/ (function(module, exports, __webpack_require__) { 5466 5467var baseTimes = __webpack_require__(220), 5468 isArguments = __webpack_require__(33), 5469 isArray = __webpack_require__(1), 5470 isBuffer = __webpack_require__(51), 5471 isIndex = __webpack_require__(52), 5472 isTypedArray = __webpack_require__(53); 5473 5474/** Used for built-in method references. */ 5475var objectProto = Object.prototype; 5476 5477/** Used to check objects for own properties. */ 5478var hasOwnProperty = objectProto.hasOwnProperty; 5479 5480/** 5481 * Creates an array of the enumerable property names of the array-like `value`. 5482 * 5483 * @private 5484 * @param {*} value The value to query. 5485 * @param {boolean} inherited Specify returning inherited property names. 5486 * @returns {Array} Returns the array of property names. 5487 */ 5488function arrayLikeKeys(value, inherited) { 5489 var isArr = isArray(value), 5490 isArg = !isArr && isArguments(value),
vendor: 4,426 bytes, lines 5491-5675
5491 isBuff = !isArr && !isArg && isBuffer(value), 5492 isType = !isArr && !isArg && !isBuff && isTypedArray(value), 5493 skipIndexes = isArr || isArg || isBuff || isType, 5494 result = skipIndexes ? baseTimes(value.length, String) : [], 5495 length = result.length; 5496 5497 for (var key in value) { 5498 if ((inherited || hasOwnProperty.call(value, key)) && 5499 !(skipIndexes && ( 5500 // Safari 9 has enumerable `arguments.length` in strict mode. 5501 key == 'length' || 5502 // Node.js 0.10 has enumerable non-index properties on buffers. 5503 (isBuff && (key == 'offset' || key == 'parent')) || 5504 // PhantomJS 2 has enumerable non-index properties on typed arrays. 5505 (isType && (key == 'buffer' || key == 'byteLength' || key == 'byteOffset')) || 5506 // Skip index properties. 5507 isIndex(key, length) 5508 ))) { 5509 result.push(key); 5510 } 5511 } 5512 return result; 5513} 5514 5515module.exports = arrayLikeKeys; 5516 5517 5518/***/ }), 5519/* 98 */ 5520/***/ (function(module, exports) { 5521 5522module.exports = function(module) { 5523 if (!module.webpackPolyfill) { 5524 module.deprecate = function() {}; 5525 module.paths = []; 5526 // module.parent = undefined by default 5527 if (!module.children) module.children = []; 5528 Object.defineProperty(module, "loaded", { 5529 enumerable: true, 5530 get: function() { 5531 return module.l; 5532 } 5533 }); 5534 Object.defineProperty(module, "id", { 5535 enumerable: true, 5536 get: function() { 5537 return module.i; 5538 } 5539 }); 5540 module.webpackPolyfill = 1; 5541 } 5542 return module; 5543}; 5544 5545 5546/***/ }), 5547/* 99 */ 5548/***/ (function(module, exports) { 5549 5550/** 5551 * Creates a unary function that invokes `func` with its argument transformed. 5552 * 5553 * @private 5554 * @param {Function} func The function to wrap. 5555 * @param {Function} transform The argument transform. 5556 * @returns {Function} Returns the new function. 5557 */ 5558function overArg(func, transform) { 5559 return function(arg) { 5560 return func(transform(arg)); 5561 }; 5562} 5563 5564module.exports = overArg; 5565 5566 5567/***/ }), 5568/* 100 */ 5569/***/ (function(module, exports, __webpack_require__) { 5570 5571var getNative = __webpack_require__(8), 5572 root = __webpack_require__(4); 5573 5574/* Built-in method references that are verified to be native. */ 5575var WeakMap = getNative(root, 'WeakMap'); 5576 5577module.exports = WeakMap; 5578 5579 5580/***/ }), 5581/* 101 */ 5582/***/ (function(module, exports, __webpack_require__) { 5583 5584var isObject = __webpack_require__(6); 5585 5586/** 5587 * Checks if `value` is suitable for strict equality comparisons, i.e. `===`. 5588 * 5589 * @private 5590 * @param {*} value The value to check. 5591 * @returns {boolean} Returns `true` if `value` if suitable for strict 5592 * equality comparisons, else `false`. 5593 */ 5594function isStrictComparable(value) { 5595 return value === value && !isObject(value); 5596} 5597 5598module.exports = isStrictComparable; 5599 5600 5601/***/ }), 5602/* 102 */ 5603/***/ (function(module, exports) { 5604 5605/** 5606 * A specialized version of `matchesProperty` for source values suitable 5607 * for strict equality comparisons, i.e. `===`. 5608 * 5609 * @private 5610 * @param {string} key The key of the property to get. 5611 * @param {*} srcValue The value to match. 5612 * @returns {Function} Returns the new spec function. 5613 */ 5614function matchesStrictComparable(key, srcValue) { 5615 return function(object) { 5616 if (object == null) { 5617 return false; 5618 } 5619 return object[key] === srcValue && 5620 (srcValue !== undefined || (key in Object(object))); 5621 }; 5622} 5623 5624module.exports = matchesStrictComparable; 5625 5626 5627/***/ }), 5628/* 103 */ 5629/***/ (function(module, exports) { 5630 5631/** 5632 * A specialized version of `_.map` for arrays without support for iteratee 5633 * shorthands. 5634 * 5635 * @private 5636 * @param {Array} [array] The array to iterate over. 5637 * @param {Function} iteratee The function invoked per iteration. 5638 * @returns {Array} Returns the new mapped array. 5639 */ 5640function arrayMap(array, iteratee) { 5641 var index = -1, 5642 length = array == null ? 0 : array.length, 5643 result = Array(length); 5644 5645 while (++index < length) { 5646 result[index] = iteratee(array[index], index, array); 5647 } 5648 return result; 5649} 5650 5651module.exports = arrayMap; 5652 5653 5654/***/ }), 5655/* 104 */ 5656/***/ (function(module, exports) { 5657 5658/** 5659 * The base implementation of `_.property` without support for deep paths. 5660 * 5661 * @private 5662 * @param {string} key The key of the property to get. 5663 * @returns {Function} Returns the new accessor function. 5664 */ 5665function baseProperty(key) { 5666 return function(object) { 5667 return object == null ? undefined : object[key]; 5668 }; 5669} 5670 5671module.exports = baseProperty; 5672 5673 5674/***/ }), 5675/* 105 */
5676/***/ (function(module, exports) { 5677 5678/** 5679 * The base implementation of `_.findIndex` and `_.findLastIndex` without 5680 * support for iteratee shorthands. 5681 * 5682 * @private 5683 * @param {Array} array The array to inspect. 5684 * @param {Function} predicate The function invoked per iteration. 5685 * @param {number} fromIndex The index to search from. 5686 * @param {boolean} [fromRight] Specify iterating from right to left. 5687 * @returns {number} Returns the index of the matched value, else `-1`. 5688 */ 5689function baseFindIndex(array, predicate, fromIndex, fromRight) { 5690 var length = array.length, 5691 index = fromIndex + (fromRight ? 1 : -1); 5692 5693 while ((fromRight ? index-- : ++index < length)) { 5694 if (predicate(array[index], index, array)) { 5695 return index; 5696 } 5697 } 5698 return -1; 5699} 5700 5701module.exports = baseFindIndex; 5702 5703 5704/***/ }), 5705/* 106 */ 5706/***/ (function(module, exports, __webpack_require__) { 5707 5708var toFinite = __webpack_require__(243); 5709 5710/** 5711 * Converts `value` to an integer. 5712 * 5713 * **Note:** This method is loosely based on 5714 * [`ToInteger`](http://www.ecma-international.org/ecma-262/7.0/#sec-tointeger). 5715 * 5716 * @static 5717 * @memberOf _ 5718 * @since 4.0.0 5719 * @category Lang 5720 * @param {*} value The value to convert. 5721 * @returns {number} Returns the converted integer. 5722 * @example 5723 * 5724 * _.toInteger(3.2); 5725 * // => 3 5726 * 5727 * _.toInteger(Number.MIN_VALUE); 5728 * // => 0 5729 * 5730 * _.toInteger(Infinity); 5731 * // => 1.7976931348623157e+308 5732 * 5733 * _.toInteger('3.2'); 5734 * // => 3 5735 */ 5736function toInteger(value) { 5737 var result = toFinite(value), 5738 remainder = result % 1; 5739 5740 return result === result ? (remainder ? result - remainder : result) : 0; 5741} 5742 5743module.exports = toInteger; 5744 5745 5746/***/ }), 5747/* 107 */ 5748/***/ (function(module, exports, __webpack_require__) { 5749 5750"use strict"; 5751 5752 5753var _interopRequireDefault = __webpack_require__(0); 5754 5755Object.defineProperty(exports, "__esModule", { 5756 value: true 5757}); 5758exports.inQuad = inQuad; 5759exports.outQuad = outQuad; 5760exports.inOutQuad = inOutQuad; 5761exports.inCubic = inCubic; 5762exports.outCubic = outCubic; 5763exports.inOutCubic = inOutCubic; 5764exports.inQuart = inQuart; 5765exports.outQuart = outQuart; 5766exports.inOutQuart = inOutQuart; 5767exports.inQuint = inQuint; 5768exports.outQuint = outQuint; 5769exports.inOutQuint = inOutQuint; 5770exports.inSine = inSine; 5771exports.outSine = outSine; 5772exports.inOutSine = inOutSine; 5773exports.inExpo = inExpo; 5774exports.outExpo = outExpo; 5775exports.inOutExpo = inOutExpo; 5776exports.inCirc = inCirc; 5777exports.outCirc = outCirc; 5778exports.inOutCirc = inOutCirc; 5779exports.outBounce = outBounce; 5780exports.inBack = inBack; 5781exports.outBack = outBack; 5782exports.inOutBack = inOutBack; 5783exports.inElastic = inElastic; 5784exports.outElastic = outElastic; 5785exports.inOutElastic = inOutElastic; 5786exports.swingFromTo = swingFromTo; 5787exports.swingFrom = swingFrom; 5788exports.swingTo = swingTo; 5789exports.bounce = bounce; 5790exports.bouncePast = bouncePast; 5791exports.easeInOut = exports.easeOut = exports.easeIn = exports.ease = void 0; 5792 5793var _bezierEasing = _interopRequireDefault(__webpack_require__(108)); // Easing functions adapted from Thomas Fuchs & Jeremy Kahn 5794// Easing Equations (c) 2003 Robert Penner, BSD license 5795// https://raw.github.com/danro/easing-js/master/LICENSE 5796 5797 5798var magicSwing = 1.70158; 5799var ease = (0, _bezierEasing["default"])(0.25, 0.1, 0.25, 1.0); 5800exports.ease = ease; 5801var easeIn = (0, _bezierEasing["default"])(0.42, 0.0, 1.0, 1.0); 5802exports.easeIn = easeIn; 5803var easeOut = (0, _bezierEasing["default"])(0.0, 0.0, 0.58, 1.0); 5804exports.easeOut = easeOut; 5805var easeInOut = (0, _bezierEasing["default"])(0.42, 0.0, 0.58, 1.0); 5806exports.easeInOut = easeInOut; 5807 5808function inQuad(pos) { 5809 return Math.pow(pos, 2); 5810} 5811 5812function outQuad(pos) { 5813 return -(Math.pow(pos - 1, 2) - 1); 5814} 5815 5816function inOutQuad(pos) { 5817 if ((pos /= 0.5) < 1) { 5818 return 0.5 * Math.pow(pos, 2); 5819 } 5820 5821 return -0.5 * ((pos -= 2) * pos - 2); 5822} 5823 5824function inCubic(pos) { 5825 return Math.pow(pos, 3); 5826} 5827 5828function outCubic(pos) { 5829 return Math.pow(pos - 1, 3) + 1; 5830} 5831 5832function inOutCubic(pos) { 5833 if ((pos /= 0.5) < 1) { 5834 return 0.5 * Math.pow(pos, 3); 5835 } 5836 5837 return 0.5 * (Math.pow(pos - 2, 3) + 2); 5838} 5839 5840function inQuart(pos) { 5841 return Math.pow(pos, 4); 5842} 5843 5844function outQuart(pos) { 5845 return -(Math.pow(pos - 1, 4) - 1); 5846} 5847 5848function inOutQuart(pos) { 5849 if ((pos /= 0.5) < 1) { 5850 return 0.5 * Math.pow(pos, 4); 5851 } 5852 5853 return -0.5 * ((pos -= 2) * Math.pow(pos, 3) - 2); 5854} 5855 5856function inQuint(pos) { 5857 return Math.pow(pos, 5); 5858} 5859 5860function outQuint(pos) { 5861 return Math.pow(pos - 1, 5) + 1; 5862} 5863 5864function inOutQuint(pos) { 5865 if ((pos /= 0.5) < 1) { 5866 return 0.5 * Math.pow(pos, 5); 5867 } 5868 5869 return 0.5 * (Math.pow(pos - 2, 5) + 2); 5870} 5871 5872function inSine(pos) { 5873 return -Math.cos(pos * (Math.PI / 2)) + 1; 5874} 5875 5876function outSine(pos) { 5877 return Math.sin(pos * (Math.PI / 2)); 5878} 5879 5880function inOutSine(pos) { 5881 return -0.5 * (Math.cos(Math.PI * pos) - 1); 5882} 5883 5884function inExpo(pos) { 5885 return pos === 0 ? 0 : Math.pow(2, 10 * (pos - 1)); 5886} 5887 5888function outExpo(pos) { 5889 return pos === 1 ? 1 : -Math.pow(2, -10 * pos) + 1; 5890} 5891 5892function inOutExpo(pos) { 5893 if (pos === 0) { 5894 return 0; 5895 } 5896 5897 if (pos === 1) { 5898 return 1; 5899 } 5900 5901 if ((pos /= 0.5) < 1) { 5902 return 0.5 * Math.pow(2, 10 * (pos - 1)); 5903 } 5904 5905 return 0.5 * (-Math.pow(2, -10 * --pos) + 2); 5906} 5907 5908function inCirc(pos) { 5909 return -(Math.sqrt(1 - pos * pos) - 1); 5910} 5911 5912function outCirc(pos) { 5913 return Math.sqrt(1 - Math.pow(pos - 1, 2)); 5914} 5915 5916function inOutCirc(pos) { 5917 if ((pos /= 0.5) < 1) { 5918 return -0.5 * (Math.sqrt(1 - pos * pos) - 1); 5919 } 5920 5921 return 0.5 * (Math.sqrt(1 - (pos -= 2) * pos) + 1); 5922} 5923 5924function outBounce(pos) { 5925 if (pos < 1 / 2.75) { 5926 return 7.5625 * pos * pos; 5927 } else if (pos < 2 / 2.75) { 5928 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 5929 } else if (pos < 2.5 / 2.75) { 5930 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 5931 } else { 5932 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 5933 } 5934} 5935 5936function inBack(pos) { 5937 var s = magicSwing; 5938 return pos * pos * ((s + 1) * pos - s); 5939} 5940 5941function outBack(pos) { 5942 var s = magicSwing; 5943 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 5944} 5945 5946function inOutBack(pos) { 5947 var s = magicSwing; 5948 5949 if ((pos /= 0.5) < 1) { 5950 return 0.5 * (pos * pos * (((s *= 1.525) + 1) * pos - s)); 5951 } 5952 5953 return 0.5 * ((pos -= 2) * pos * (((s *= 1.525) + 1) * pos + s) + 2); 5954} 5955 5956function inElastic(pos) { 5957 var s = magicSwing; 5958 var p = 0; 5959 var a = 1; 5960 5961 if (pos === 0) { 5962 return 0; 5963 } 5964 5965 if (pos === 1) { 5966 return 1; 5967 } 5968 5969 if (!p) { 5970 p = 0.3; 5971 } 5972 5973 if (a < 1) { 5974 a = 1; 5975 s = p / 4; 5976 } else { 5977 s = p / (2 * Math.PI) * Math.asin(1 / a); 5978 } 5979
5980 return -(a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 5981} 5982 5983function outElastic(pos) { 5984 var s = magicSwing; 5985 var p = 0; 5986 var a = 1; 5987 5988 if (pos === 0) { 5989 return 0; 5990 } 5991 5992 if (pos === 1) { 5993 return 1; 5994 } 5995 5996 if (!p) { 5997 p = 0.3; 5998 } 5999 6000 if (a < 1) { 6001 a = 1; 6002 s = p / 4; 6003 } else { 6004 s = p / (2 * Math.PI) * Math.asin(1 / a); 6005 } 6006 6007 return a * Math.pow(2, -10 * pos) * Math.sin((pos - s) * (2 * Math.PI) / p) + 1; 6008} 6009 6010function inOutElastic(pos) { 6011 var s = magicSwing; 6012 var p = 0; 6013 var a = 1; 6014 6015 if (pos === 0) { 6016 return 0; 6017 } 6018 6019 if ((pos /= 1 / 2) === 2) { 6020 return 1; 6021 } 6022 6023 if (!p) { 6024 p = 0.3 * 1.5; 6025 } 6026 6027 if (a < 1) { 6028 a = 1; 6029 s = p / 4; 6030 } else { 6031 s = p / (2 * Math.PI) * Math.asin(1 / a); 6032 } 6033 6034 if (pos < 1) { 6035 return -0.5 * (a * Math.pow(2, 10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p)); 6036 } 6037 6038 return a * Math.pow(2, -10 * (pos -= 1)) * Math.sin((pos - s) * (2 * Math.PI) / p) * 0.5 + 1; 6039} 6040 6041function swingFromTo(pos) { 6042 var s = magicSwing; 6043 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); 6044} 6045 6046function swingFrom(pos) { 6047 var s = magicSwing; 6048 return pos * pos * ((s + 1) * pos - s); 6049} 6050 6051function swingTo(pos) { 6052 var s = magicSwing; 6053 return (pos -= 1) * pos * ((s + 1) * pos + s) + 1; 6054} 6055 6056function bounce(pos) { 6057 if (pos < 1 / 2.75) { 6058 return 7.5625 * pos * pos; 6059 } else if (pos < 2 / 2.75) { 6060 return 7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75; 6061 } else if (pos < 2.5 / 2.75) { 6062 return 7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375; 6063 } else { 6064 return 7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375; 6065 } 6066} 6067 6068function bouncePast(pos) { 6069 if (pos < 1 / 2.75) { 6070 return 7.5625 * pos * pos; 6071 } else if (pos < 2 / 2.75) { 6072 return 2 - (7.5625 * (pos -= 1.5 / 2.75) * pos + 0.75); 6073 } else if (pos < 2.5 / 2.75) { 6074 return 2 - (7.5625 * (pos -= 2.25 / 2.75) * pos + 0.9375); 6075 } else { 6076 return 2 - (7.5625 * (pos -= 2.625 / 2.75) * pos + 0.984375); 6077 } 6078} 6079 6080/***/ }), 6081/* 108 */ 6082/***/ (function(module, exports) { 6083 6084/** 6085 * https://github.com/gre/bezier-easing 6086 * BezierEasing - use bezier curve for transition easing function 6087 * by Gaëtan Renaudeau 2014 - 2015 â MIT License 6088 */ 6089 6090// These values are established by empiricism with tests (tradeoff: performance VS precision) 6091var NEWTON_ITERATIONS = 4; 6092var NEWTON_MIN_SLOPE = 0.001; 6093var SUBDIVISION_PRECISION = 0.0000001; 6094var SUBDIVISION_MAX_ITERATIONS = 10; 6095 6096var kSplineTableSize = 11; 6097var kSampleStepSize = 1.0 / (kSplineTableSize - 1.0); 6098 6099var float32ArraySupported = typeof Float32Array === 'function'; 6100 6101function A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; } 6102function B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; } 6103function C (aA1) { return 3.0 * aA1; } 6104 6105// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2. 6106function calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; } 6107 6108// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2. 6109function getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); } 6110 6111function binarySubdivide (aX, aA, aB, mX1, mX2) { 6112 var currentX, currentT, i = 0; 6113 do { 6114 currentT = aA + (aB - aA) / 2.0; 6115 currentX = calcBezier(currentT, mX1, mX2) - aX; 6116 if (currentX > 0.0) { 6117 aB = currentT; 6118 } else { 6119 aA = currentT; 6120 } 6121 } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS); 6122 return currentT; 6123} 6124 6125function newtonRaphsonIterate (aX, aGuessT, mX1, mX2) { 6126 for (var i = 0; i < NEWTON_ITERATIONS; ++i) { 6127 var currentSlope = getSlope(aGuessT, mX1, mX2); 6128 if (currentSlope === 0.0) { 6129 return aGuessT; 6130 } 6131 var currentX = calcBezier(aGuessT, mX1, mX2) - aX; 6132 aGuessT -= currentX / currentSlope; 6133 } 6134 return aGuessT; 6135} 6136 6137module.exports = function bezier (mX1, mY1, mX2, mY2) { 6138 if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) { 6139 throw new Error('bezier x values must be in [0, 1] range'); 6140 } 6141 6142 // Precompute samples table 6143 var sampleValues = float32ArraySupported ? new Float32Array(kS
6143plineTableSize) : new Array(kSplineTableSize); 6144 if (mX1 !== mY1 || mX2 !== mY2) { 6145 for (var i = 0; i < kSplineTableSize; ++i) { 6146 sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2); 6147 } 6148 } 6149 6150 function getTForX (aX) { 6151 var intervalStart = 0.0; 6152 var currentSample = 1; 6153 var lastSample = kSplineTableSize - 1; 6154 6155 for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) { 6156 intervalStart += kSampleStepSize; 6157 } 6158 --currentSample; 6159 6160 // Interpolate to provide an initial guess for t 6161 var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]); 6162 var guessForT = intervalStart + dist * kSampleStepSize; 6163 6164 var initialSlope = getSlope(guessForT, mX1, mX2); 6165 if (initialSlope >= NEWTON_MIN_SLOPE) { 6166 return newtonRaphsonIterate(aX, guessForT, mX1, mX2); 6167 } else if (initialSlope === 0.0) { 6168 return guessForT; 6169 } else { 6170 return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2); 6171 } 6172 } 6173 6174 return function BezierEasing (x) { 6175 if (mX1 === mY1 && mX2 === mY2) { 6176 return x; // linear 6177 } 6178 // Because JavaScript number are imprecise, we should guarantee the extremes are right. 6179 if (x === 0) { 6180 return 0; 6181 } 6182 if (x === 1) { 6183 return 1; 6184 } 6185 return calcBezier(getTForX(x), mY1, mY2); 6186 }; 6187}; 6188 6189 6190/***/ }), 6191/* 109 */ 6192/***/ (function(module, exports, __webpack_require__) { 6193 6194"use strict"; 6195 6196 6197var _interopRequireDefault2 = __webpack_require__(0); 6198 6199var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(110)); 6200 6201var _interopRequireDefault = __webpack_require__(0); 6202 6203var _interopRequireWildcard = __webpack_require__(13); 6204 6205Object.defineProperty(exports, "__esModule", { 6206 value: true 6207}); 6208exports.optimizeFloat = optimizeFloat; 6209exports.createBezierEasing = createBezierEasing; 6210exports.applyEasing = applyEasing; 6211 6212var easings = _interopRequireWildcard(__webpack_require__(107)); 6213 6214var _bezierEasing = _interopRequireDefault(__webpack_require__(108)); 6215 6216function optimizeFloat(value) { 6217 var digits = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 5; 6218 var base = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 10; 6219 var pow = Math.pow(base, digits); 6220 6221 var _float = Number(Math.round(value * pow) / pow); 6222 6223 return Math.abs(_float) > 0.0001 ? _float : 0; 6224} 6225 6226function createBezierEasing(easing) { 6227 return (0, _bezierEasing["default"]).apply(void 0, (0, _toConsumableArray2["default"])(easing)); 6228} 6229 6230function applyEasing(easing, position, customEasingFn) { 6231 if (position === 0) { 6232 return 0; 6233 } 6234 6235 if (position === 1) { 6236 return 1; 6237 } 6238 6239 if (customEasingFn) { 6240 return optimizeFloat(position > 0 ? customEasingFn(position) : position); 6241 } 6242 6243 return optimizeFloat(position > 0 && easing && easings[easing] ? easings[easing](position) : position); 6244} 6245 6246/***/ }), 6247/* 110 */ 6248/***/ (function(module, exports, __webpack_require__) { 6249 6250var arrayWithoutHoles = __webpack_require__(244); 6251 6252var iterableToArray = __webpack_require__(245); 6253 6254var nonIterableSpread = __webpack_require__(246); 6255 6256function _toConsumableArray(arr) { 6257 return arrayWithoutHoles(arr) || iterableToArray(arr) || nonIterableSpread(); 6258} 6259 6260module.exports = _toConsumableArray; 6261 6262/***/ }), 6263/* 111 */ 6264/***/ (function(module, exports, __webpack_require__) { 6265 6266"use strict"; 6267 6268 6269var _interopRequireDefault = __webpack_require__(0); 6270 6271var _defineProperty2 = _interopRequireDefault(__webpack_require__(26)); 6272 6273Object.defineProperty(exports, "__esModule", { 6274 value: true 6275}); 6276exports.isPluginType = isPluginType; 6277exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginDuration = exports.getPluginOrigin = exports.getPluginConfig = void 0; 6278 6279var _IX2LottieUtils = __webpack_require__(248); 6280 6281var _constants = __webpack_require__(2); 6282 6283var _IX2BrowserSupport = __webpack_require__(46); // eslint-disable-next-line webflow/module-top-level-imports, webflow/packages-must-be-defined 6284 6285 6286var pluginMethodMap = (0, _defineProperty2["default"])({}, _constants.ActionTypeConsts.PLUGIN_LOTTIE, {
6287 getConfig: _IX2LottieUtils.getPluginConfig, 6288 getOrigin: _IX2LottieUtils.getPluginOrigin, 6289 getDuration: _IX2LottieUtils.getPluginDuration, 6290 getDestination: _IX2LottieUtils.getPluginDestination, 6291 createInstance: _IX2LottieUtils.createPluginInstance, 6292 render: _IX2LottieUtils.renderPlugin, 6293 clear: _IX2LottieUtils.clearPlugin 6294}); 6295 6296function isPluginType(actionTypeId) { 6297 return actionTypeId === _constants.ActionTypeConsts.PLUGIN_LOTTIE; 6298} 6299 6300var pluginMethod = function pluginMethod(methodName) { 6301 return function (actionTypeId) { 6302 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 6303 // IX2 plugins require browser libs for now 6304 return function () { 6305 return null; 6306 }; 6307 } 6308 6309 var plugin = pluginMethodMap[actionTypeId]; 6310 6311 if (!plugin) { 6312 throw new Error("IX2 no plugin configured for: ".concat(actionTypeId)); 6313 } 6314 6315 var method = plugin[methodName]; 6316 6317 if (!method) { 6318 throw new Error("IX2 invalid plugin method: ".concat(methodName)); 6319 } 6320 6321 return method; 6322 }; 6323}; 6324 6325var getPluginConfig = pluginMethod('getConfig'); 6326exports.getPluginConfig = getPluginConfig; 6327var getPluginOrigin = pluginMethod('getOrigin'); 6328exports.getPluginOrigin = getPluginOrigin; 6329var getPluginDuration = pluginMethod('getDuration'); 6330exports.getPluginDuration = getPluginDuration; 6331var getPluginDestination = pluginMethod('getDestination'); 6332exports.getPluginDestination = getPluginDestination; 6333var createPluginInstance = pluginMethod('createInstance'); 6334exports.createPluginInstance = createPluginInstance; 6335var renderPlugin = pluginMethod('render'); 6336exports.renderPlugin = renderPlugin; 6337var clearPlugin = pluginMethod('clear'); 6338exports.clearPlugin = clearPlugin; 6339 6340/***/ }), 6341/* 112 */ 6342/***/ (function(module, exports, __webpack_require__) { 6343 6344var baseForOwn = __webpack_require__(113), 6345 createBaseEach = __webpack_require__(255); 6346 6347/** 6348 * The base implementation of `_.forEach` without support for iteratee shorthands. 6349 * 6350 * @private 6351 * @param {Array|Object} collection The collection to iterate over. 6352 * @param {Function} iteratee The function invoked per iteration. 6353 * @returns {Array|Object} Returns `collection`. 6354 */ 6355var baseEach = createBaseEach(baseForOwn); 6356 6357module.exports = baseEach; 6358 6359 6360/***/ }), 6361/* 113 */ 6362/***/ (function(module, exports, __webpack_require__) { 6363 6364var baseFor = __webpack_require__(253), 6365 keys = __webpack_require__(32); 6366 6367/** 6368 * The base implementation of `_.forOwn` without support for iteratee shorthands. 6369 * 6370 * @private 6371 * @param {Object} object The object to iterate over. 6372 * @param {Function} iteratee The function invoked per iteration. 6373 * @returns {Object} Returns `object`. 6374 */ 6375function baseForOwn(object, iteratee) { 6376 return object && baseFor(object, iteratee, keys); 6377} 6378 6379module.exports = baseForOwn; 6380 6381 6382/***/ }), 6383/* 114 */ 6384/***/ (function(module, exports, __webpack_require__) { 6385 6386"use strict"; 6387 6388 6389var _interopRequireDefault = __webpack_require__(259); 6390 6391exports.__esModule = true; 6392exports.default = void 0; 6393 6394var _shallowEqual = _interopRequireDefault(__webpack_require__(260)); 6395 6396var _default = _shallowEqual.default; 6397exports.default = _default; 6398 6399/***/ }), 6400/* 115 */ 6401/***/ (function(module, exports, __webpack_require__) { 6402 6403"use strict"; 6404 6405 6406var _interopRequireDefault2 = __webpack_require__(0); 6407 6408var _toConsumableArray2 = _interopRequireDefault2(__webpack_require__(110)); 6409 6410var _interopRequireWildcard = __webpack_require__(13); 6411 6412var _interopRequireDefault = __webpack_require__(0); 6413 6414Object.defineProperty(exports, "__esModule", { 6415 value: true 6416}); 6417exports.observeRequests = observeRequests; 6418exports.startEngine = startEngine; 6419exports.stopEngine = stopEngine; 6420exports.stopAllActionGroups = stopAllActionGroups; 6421exports.stopActionGroup = stopActionGroup; 6422exports.startActionGroup = startActionGroup; 6423 6424var _extends2 = _interopRequireDefault(__webpack_require__(27)); 6425 6426var _objectWithoutPropertiesLoose2 = _interopRequireDefault(__webpack_require__(263)); 6427 6428var _find = _interopRequireDefault(__webpack_require__(86)); 6429 6430var _get = _interopRequireDefault(__webpack_require__(34)); 6431 6432var _size = _interopRequireDefault(__webpack_require__(264)); 6433 6434var _omitBy = _interopRequireDefault(__webpack_require__(270)); 6435 6436var _isEmpty = _interopRequireDefault(__webpack_require__(282)); 6437 6438var _mapValues = _interopRequireDefault(__webpack_require__(283)); 6439
6440var _forEach = _interopRequireDefault(__webpack_require__(284)); 6441 6442var _throttle = _interopRequireDefault(__webpack_require__(287)); 6443 6444var _shallowEqual = _interopRequireDefault(__webpack_require__(114)); 6445 6446var _constants = __webpack_require__(2); 6447 6448var _utils = __webpack_require__(290); 6449 6450var _shared = __webpack_require__(10); 6451 6452var _IX2EngineActions = __webpack_require__(62); 6453 6454var elementApi = _interopRequireWildcard(__webpack_require__(292)); 6455 6456var _IX2VanillaEvents = _interopRequireDefault(__webpack_require__(293)); 6457/* eslint-env browser */ 6458 6459 6460var _constants$IX2EngineC = _constants.IX2EngineConstants, 6461 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 6462 BOUNDARY_SELECTOR = _constants$IX2EngineC.BOUNDARY_SELECTOR, 6463 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 6464 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 6465 W_MOD_IX = _constants$IX2EngineC.W_MOD_IX; 6466var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 6467 getAffectedElements = _shared$IX2VanillaUti.getAffectedElements, 6468 getElementId = _shared$IX2VanillaUti.getElementId, 6469 getDestinationValues = _shared$IX2VanillaUti.getDestinationValues, 6470 observeStore = _shared$IX2VanillaUti.observeStore, 6471 getInstanceId = _shared$IX2VanillaUti.getInstanceId, 6472 renderHTMLElement = _shared$IX2VanillaUti.renderHTMLElement, 6473 clearAllStyles = _shared$IX2VanillaUti.clearAllStyles, 6474 getMaxDurationItemIndex = _shared$IX2VanillaUti.getMaxDurationItemIndex, 6475 getComputedStyle = _shared$IX2VanillaUti.getComputedStyle, 6476 getInstanceOrigin = _shared$IX2VanillaUti.getInstanceOrigin, 6477 reduceListToGroup = _shared$IX2VanillaUti.reduceListToGroup, 6478 shouldNamespaceEventParameter = _shared$IX2VanillaUti.shouldNamespaceEventParameter, 6479 getNamespacedParameterId = _shared$IX2VanillaUti.getNamespacedParameterId, 6480 shouldAllowMediaQuery = _shared$IX2VanillaUti.shouldAllowMediaQuery, 6481 cleanupHTMLElement = _shared$IX2VanillaUti.cleanupHTMLElement, 6482 stringifyTarget = _shared$IX2VanillaUti.stringifyTarget, 6483 mediaQueriesEqual = _shared$IX2VanillaUti.mediaQueriesEqual; 6484var _shared$IX2VanillaPlu = _shared.IX2VanillaPlugins, 6485 isPluginType = _shared$IX2VanillaPlu.isPluginType, 6486 createPluginInstance = _shared$IX2VanillaPlu.createPluginInstance, 6487 getPluginDuration = _shared$IX2VanillaPlu.getPluginDuration; 6488var ua = navigator.userAgent; 6489var IS_MOBILE_SAFARI = ua.match(/iPad/i) || ua.match(/iPhone/); // Keep throttled events at ~80fps to reduce reflows while maintaining render accuracy 6490 6491var THROTTLED_EVENT_WAIT = 12; // $FlowFixMe 6492 6493function observeRequests(store) { 6494 observeStore({ 6495 store: store, 6496 select: function select(_ref) { 6497 var ixRequest = _ref.ixRequest; 6498 return ixRequest.preview; 6499 }, 6500 onChange: handlePreviewRequest 6501 }); 6502 observeStore({ 6503 store: store, 6504 select: function select(_ref2) { 6505 var ixRequest = _ref2.ixRequest; 6506 return ixRequest.playback; 6507 }, 6508 onChange: handlePlaybackRequest 6509 }); 6510 observeStore({ 6511 store: store, 6512 select: function select(_ref3) { 6513 var ixRequest = _ref3.ixRequest; 6514 return ixRequest.stop; 6515 }, 6516 onChange: handleStopRequest 6517 }); 6518 observeStore({ 6519 store: store, 6520 select: function select(_ref4) { 6521 var ixRequest = _ref4.ixRequest; 6522 return ixRequest.clear; 6523 }, 6524 onChange: handleClearRequest 6525 }); 6526} 6527 6528function observeMediaQueryChange(store) { 6529 observeStore({ 6530 store: store, 6531 select: function select(_ref5) { 6532 var ixSession = _ref5.ixSession; 6533 return ixSession.mediaQueryKey; 6534 }, 6535 onChange: function onChange() { 6536 stopEngine(store); 6537 clearAllStyles({ 6538 store: store, 6539 elementApi: elementApi 6540 }); 6541 startEngine({ 6542 store: store, 6543 allowEvents: true 6544 }); 6545 dispatchPageUpdateEvent(); 6546 } 6547 }); 6548} 6549 6550function observeOneRenderTick(store, onTick) { 6551 var unsubscribe = observeStore({ 6552 store: store, 6553 select: function select(_ref6) { 6554 var ixSession = _ref6.ixSession; 6555 return ixSession.tick; 6556 }, 6557 onChange: function onChange(tick) { 6558 onTick(tick); 6559 unsubscribe(); 6560 } 6561 }); 6562} 6563 6564function handlePreviewRequest(_ref7, store) { 6565 var rawData = _ref7.rawData, 6566 defer = _ref7.defer; 6567 6568 var start = function start() { 6569 startEngine({ 6570 store: store, 6571 rawData: rawData, 6572 allowEvents: true 6573 }); 6574 dispatchPageUpdateEvent(); 6575 }; 6576 6577 defer ? setTimeout(start, 0) : start(); 6578} 6579 6580function dispatchPageUpdateEvent() { 6581 document.dispatchEvent(new CustomEvent('IX2_PAGE_UPDATE')); 6582} 6583 6584function handlePlaybackRequest(playback, store) { 6585 var actionTypeId = playback.actionTypeId, 6586 actionListId = playback.actionListId, 6587 actionItemId = playback.actionItemId, 6588 eventId = playback.eventId, 6589 allowEvents = playback.allowEvents, 6590 immediate = playback.immediate, 6591 testManual = playback.testManual, 6592 _playback$verbose = playback.verbose, 6593 verbose = _playback$verbose === void 0 ? true : _playback$verbose; 6594 var rawData = playback.rawData; 6595 6596 if (actionListId && actionItemId && rawData && immediate) { 6597 var actionList = rawData.actionLists[actionListId]; 6598 6599 if (actionList) { 6600 rawData = reduceListToGroup({ 6601 actionList: actionList, 6602 actionItemId: actionItemId, 6603 rawData: rawData 6604 }); 6605 } 6606 } 6607 6608 startEngine({ 6609 store: store, 6610 rawData: rawData, 6611 allowEvents: allowEvents, 6612 testManual: testManual 6613 }); 6614 6615 if (actionListId && actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || (0, _utils.isQuickEffect)(actionTypeId)) { 6616 stopActionGroup({ 6617 store: store, 6618 actionListId: actionListId 6619 }); 6620 renderInitialGroup({ 6621 store: store, 6622 actionListId: actionListId, 6623 eventId: eventId 6624 }); 6625 var started = startActionGroup({ 6626 store: store, 6627 eventId: eventId, 6628 actionListId: actionListId, 6629 immediate: immediate,
6630 verbose: verbose 6631 }); 6632 6633 if (verbose && started) { 6634 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 6635 actionListId: actionListId, 6636 isPlaying: !immediate 6637 })); 6638 } 6639 } 6640} 6641 6642function handleStopRequest(_ref8, store) { 6643 var actionListId = _ref8.actionListId; 6644 6645 if (actionListId) { 6646 stopActionGroup({ 6647 store: store, 6648 actionListId: actionListId 6649 }); 6650 } else { 6651 stopAllActionGroups({ 6652 store: store 6653 }); 6654 } 6655 6656 stopEngine(store); 6657} 6658 6659function handleClearRequest(state, store) { 6660 stopEngine(store); 6661 clearAllStyles({ 6662 store: store, 6663 elementApi: elementApi 6664 }); 6665} // $FlowFixMe 6666 6667 6668function startEngine(_ref9) { 6669 var store = _ref9.store, 6670 rawData = _ref9.rawData, 6671 allowEvents = _ref9.allowEvents, 6672 testManual = _ref9.testManual; 6673 6674 var _store$getState = store.getState(), 6675 ixSession = _store$getState.ixSession; 6676 6677 if (rawData) { 6678 store.dispatch((0, _IX2EngineActions.rawDataImported)(rawData)); 6679 } 6680 6681 if (!ixSession.active) { 6682 store.dispatch((0, _IX2EngineActions.sessionInitialized)({ 6683 hasBoundaryNodes: Boolean(document.querySelector(BOUNDARY_SELECTOR)) 6684 })); 6685 6686 if (allowEvents) { 6687 bindEvents(store); 6688 addDocumentClass(); 6689 6690 if (store.getState().ixSession.hasDefinedMediaQueries) { 6691 observeMediaQueryChange(store); 6692 } 6693 } 6694 6695 store.dispatch((0, _IX2EngineActions.sessionStarted)()); 6696 startRenderLoop(store, testManual); 6697 } 6698} 6699 6700function addDocumentClass() { 6701 var _document = document, 6702 documentElement = _document.documentElement; // $FlowFixMe 6703 6704 if (documentElement.className.indexOf(W_MOD_IX) === -1) { 6705 // $FlowFixMe 6706 documentElement.className += " ".concat(W_MOD_IX); 6707 } 6708} 6709 6710function startRenderLoop(store, testManual) { 6711 var handleFrame = function handleFrame(now) { 6712 var _store$getState2 = store.getState(), 6713 ixSession = _store$getState2.ixSession, 6714 ixParameters = _store$getState2.ixParameters; 6715 6716 if (ixSession.active) { 6717 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(now, ixParameters)); 6718 6719 if (testManual) { 6720 observeOneRenderTick(store, handleFrame); 6721 } else { 6722 requestAnimationFrame(handleFrame); 6723 } 6724 } 6725 }; 6726 6727 handleFrame(window.performance.now()); 6728} // $FlowFixMe 6729 6730 6731function stopEngine(store) { 6732 var _store$getState3 = store.getState(), 6733 ixSession = _store$getState3.ixSession; 6734 6735 if (ixSession.active) { 6736 var eventListeners = ixSession.eventListeners; 6737 eventListeners.forEach(clearEventListener); 6738 store.dispatch((0, _IX2EngineActions.sessionStopped)()); 6739 } 6740} 6741 6742function clearEventListener(_ref10) { 6743 var target = _ref10.target, 6744 listenerParams = _ref10.listenerParams; 6745 target.removeEventListener.apply(target, listenerParams); 6746} 6747 6748function createGroupInstances(_ref11) { 6749 var store = _ref11.store, 6750 eventStateKey = _ref11.eventStateKey, 6751 eventTarget = _ref11.eventTarget, 6752 eventId = _ref11.eventId, 6753 eventConfig = _ref11.eventConfig, 6754 actionListId = _ref11.actionListId, 6755 parameterGroup = _ref11.parameterGroup, 6756 smoothing = _ref11.smoothing, 6757 restingValue = _ref11.restingValue; 6758 6759 var _store$getState4 = store.getState(), 6760 ixData = _store$getState4.ixData, 6761 ixSession = _store$getState4.ixSession; 6762 6763 var events = ixData.events; 6764 var event = events[eventId]; 6765 var eventTypeId = event.eventTypeId; 6766 var targetCache = {}; 6767 var instanceActionGroups = {}; 6768 var instanceConfigs = []; 6769 var continuousActionGroups = parameterGroup.continuousActionGroups; 6770 var parameterId = parameterGroup.id; 6771 6772 if (shouldNamespaceEventParameter(eventTypeId, eventConfig)) { 6773 parameterId = getNamespacedParameterId(eventStateKey, parameterId); 6774 } // Limit affected elements when event target is within a boundary node 6775 6776 6777 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 6778 continuousActionGroups.forEach(function (actionGroup) { 6779 var keyframe = actionGroup.keyframe, 6780 actionItems = actionGroup.actionItems;
6781 actionItems.forEach(function (actionItem) { 6782 var actionTypeId = actionItem.actionTypeId; 6783 var target = actionItem.config.target; 6784 6785 if (!target) { 6786 return; 6787 } 6788 6789 var elementRoot = target.boundaryMode ? eventElementRoot : null; 6790 var key = stringifyTarget(target) + COLON_DELIMITER + actionTypeId; 6791 instanceActionGroups[key] = appendActionItem(instanceActionGroups[key], keyframe, actionItem); 6792 6793 if (!targetCache[key]) { 6794 targetCache[key] = true; 6795 var config = actionItem.config; 6796 getAffectedElements({ 6797 config: config, 6798 event: event, 6799 eventTarget: eventTarget, 6800 elementRoot: elementRoot, 6801 elementApi: elementApi 6802 }).forEach(function (element) { 6803 instanceConfigs.push({ 6804 element: element, 6805 key: key 6806 }); 6807 }); 6808 } 6809 }); 6810 }); 6811 instanceConfigs.forEach(function (_ref12) { 6812 var element = _ref12.element, 6813 key = _ref12.key; 6814 var actionGroups = instanceActionGroups[key]; 6815 var actionItem = (0, _get["default"])(actionGroups, "[0].actionItems[0]", {}); 6816 var actionTypeId = actionItem.actionTypeId; 6817 var pluginInstance = isPluginType(actionTypeId) ? // $FlowFixMe 6818 createPluginInstance(actionTypeId)(element, actionItem) : null; 6819 var destination = getDestinationValues({ 6820 element: element, 6821 actionItem: actionItem, 6822 elementApi: elementApi 6823 }, // $FlowFixMe 6824 pluginInstance); 6825 createInstance({ 6826 store: store, 6827 element: element, 6828 eventId: eventId, 6829 actionListId: actionListId, 6830 actionItem: actionItem, 6831 destination: destination, 6832 continuous: true, 6833 parameterId: parameterId, 6834 actionGroups: actionGroups, 6835 smoothing: smoothing, 6836 restingValue: restingValue, 6837 pluginInstance: pluginInstance 6838 }); 6839 }); 6840} 6841 6842function appendActionItem() { 6843 var actionGroups = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 6844 var keyframe = arguments.length > 1 ? arguments[1] : undefined; 6845 var actionItem = arguments.length > 2 ? arguments[2] : undefined; 6846 var newActionGroups = (0, _toConsumableArray2["default"])(actionGroups); 6847 var groupIndex; 6848 newActionGroups.some(function (group, index) { 6849 if (group.keyframe === keyframe) { 6850 groupIndex = index; 6851 return true; 6852 } 6853 6854 return false; 6855 }); 6856 6857 if (groupIndex == null) { 6858 groupIndex = newActionGroups.length; 6859 newActionGroups.push({ 6860 keyframe: keyframe, 6861 actionItems: [] 6862 }); 6863 } 6864 6865 newActionGroups[groupIndex].actionItems.push(actionItem); 6866 return newActionGroups; 6867} 6868 6869function bindEvents(store) { 6870 var _store$getState5 = store.getState(), 6871 ixData = _store$getState5.ixData; 6872 6873 var eventTypeMap = ixData.eventTypeMap; 6874 updateViewportWidth(store); 6875 (0, _forEach["default"])(eventTypeMap, function (events, key) { 6876 var logic = _IX2VanillaEvents["default"][key]; 6877 6878 if (!logic) { 6879 console.warn("IX2 event type not configured: ".concat(key)); 6880 return; 6881 } 6882 6883 bindEventType({ 6884 logic: logic, 6885 store: store, 6886 events: events 6887 }); 6888 }); 6889 6890 var _store$getState6 = store.getState(), 6891 ixSession = _store$getState6.ixSession; 6892 6893 if (ixSession.eventListeners.length) { 6894 bindResizeEvents(store); 6895 } 6896} 6897 6898var WINDOW_RESIZE_EVENTS = ['resize', 'orientationchange']; 6899 6900function bindResizeEvents(store) { 6901 var handleResize = function handleResize() { 6902 updateViewportWidth(store); 6903 }; 6904 6905 WINDOW_RESIZE_EVENTS.forEach(function (type) { 6906 window.addEventListener(type, handleResize); 6907 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(window, [type, handleResize])); 6908 }); 6909 handleResize(); 6910} 6911 6912function updateViewportWidth(store) { 6913 var _store$getState7 = store.getState(), 6914 ixSession = _store$getState7.ixSession, 6915 ixData = _store$getState7.ixData; 6916 6917 var width = window.innerWidth; 6918 6919 if (width !== ixSession.viewportWidth) { 6920 var mediaQueries = ixData.mediaQueries; 6921 store.dispatch((0, _IX2EngineActions.viewportWidthChanged)({ 6922 width: width, 6923 mediaQueries: mediaQueries 6924 })); 6925 } 6926} 6927 6928var mapFoundValues = function mapFoundValues(object, iteratee) { 6929 return (0, _omitBy["default"])((0, _mapValues["default"])(object, iteratee), _isEmpty["default"]); 6930}; 6931
6932var forEachEventTarget = function forEachEventTarget(eventTargets, eventCallback) { 6933 (0, _forEach["default"])(eventTargets, function (elements, eventId) { 6934 elements.forEach(function (element, index) { 6935 var eventStateKey = eventId + COLON_DELIMITER + index; 6936 eventCallback(element, eventId, eventStateKey); 6937 }); 6938 }); 6939}; 6940 6941var getAffectedForEvent = function getAffectedForEvent(_ref13) { 6942 var singleTarget = _ref13.target, 6943 targets = _ref13.targets; 6944 6945 if (targets && targets.length) { 6946 return targets.reduce(function (acc, target) { 6947 var config = { 6948 target: target 6949 }; 6950 return acc.concat(getAffectedElements({ 6951 config: config, 6952 elementApi: elementApi 6953 })); 6954 }, []); 6955 } else { 6956 var config = { 6957 target: singleTarget 6958 }; 6959 return getAffectedElements({ 6960 config: config, 6961 elementApi: elementApi 6962 }); 6963 } 6964}; 6965 6966function bindEventType(_ref14) { 6967 var logic = _ref14.logic, 6968 store = _ref14.store, 6969 events = _ref14.events; 6970 injectBehaviorCSSFixes(events); 6971 var eventTypes = logic.types, 6972 eventHandler = logic.handler; 6973 6974 var _store$getState8 = store.getState(), 6975 ixData = _store$getState8.ixData; 6976 6977 var actionLists = ixData.actionLists; 6978 var eventTargets = mapFoundValues(events, getAffectedForEvent); 6979 6980 if (!(0, _size["default"])(eventTargets)) { 6981 return; 6982 } 6983 6984 (0, _forEach["default"])(eventTargets, function (elements, key) { 6985 var event = events[key]; 6986 var eventAction = event.action, 6987 eventId = event.id, 6988 _event$mediaQueries = event.mediaQueries, 6989 mediaQueries = _event$mediaQueries === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries; 6990 var actionListId = eventAction.config.actionListId; 6991 6992 if (!mediaQueriesEqual(mediaQueries, ixData.mediaQueryKeys)) { 6993 store.dispatch((0, _IX2EngineActions.mediaQueriesDefined)()); 6994 } 6995 6996 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 6997 var configs = Array.isArray(event.config) ? event.config : [event.config]; 6998 configs.forEach(function (eventConfig) { 6999 var continuousParameterGroupId = eventConfig.continuousParameterGroupId; 7000 var paramGroups = (0, _get["default"])(actionLists, "".concat(actionListId, ".continuousParameterGroups"), []); 7001 var parameterGroup = (0, _find["default"])(paramGroups, function (_ref15) { 7002 var id = _ref15.id; 7003 return id === continuousParameterGroupId; 7004 }); 7005 var smoothing = (eventConfig.smoothing || 0) / 100; 7006 var restingValue = (eventConfig.restingState || 0) / 100; 7007 7008 if (!parameterGroup) { 7009 return; 7010 } 7011 7012 elements.forEach(function (eventTarget, index) { 7013 var eventStateKey = eventId + COLON_DELIMITER + index; 7014 createGroupInstances({ 7015 store: store, 7016 eventStateKey: eventStateKey, 7017 eventTarget: eventTarget, 7018 eventId: eventId, 7019 eventConfig: eventConfig, 7020 actionListId: actionListId, 7021 parameterGroup: parameterGroup, 7022 smoothing: smoothing, 7023 restingValue: restingValue 7024 }); 7025 }); 7026 }); 7027 } 7028 7029 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_START_ACTION || (0, _utils.isQuickEffect)(eventAction.actionTypeId)) { 7030 renderInitialGroup({ 7031 store: store, 7032 actionListId: actionListId, 7033 eventId: eventId 7034 }); 7035 } 7036 }); 7037 7038 var handleEvent = function handleEvent(nativeEvent) { 7039 var _store$getState9 = store.getState(), 7040 ixSession = _store$getState9.ixSession; 7041 7042 forEachEventTarget(eventTargets, function (element, eventId, eventStateKey) { 7043 var event = events[eventId]; 7044 var oldState = ixSession.eventState[eventStateKey]; 7045 var eventAction = event.action, 7046 _event$mediaQueries2 = event.mediaQueries, 7047 mediaQueries = _event$mediaQueries2 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries2; // Bypass event handler if current media query is not listed in event config 7048 7049 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7050 return; 7051 } 7052 7053 var handleEventWithConfig = function handleEventWithConfig() { 7054 var eventConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; 7055 var newState = eventHandler({ 7056 store: store, 7057 element: element, 7058 event: event, 7059 eventConfig: eventConfig, 7060 nativeEvent: nativeEvent, 7061 eventStateKey: eventStateKey 7062 }, oldState); 7063 7064 if (!(0, _shallowEqual["default"])(newState, oldState)) { 7065 store.dispatch((0, _IX2EngineActions.eventStateChanged)(eventStateKey, newState)); 7066 } 7067 }; 7068 7069 if (eventAction.actionTypeId === _constants.ActionTypeConsts.GENERAL_CONTINUOUS_ACTION) { 7070 var configs = Array.isArray(event.config) ? event.config : [event.config];
7071 configs.forEach(handleEventWithConfig); 7072 } else { 7073 handleEventWithConfig(); 7074 } 7075 }); 7076 }; 7077 7078 var handleEventThrottled = (0, _throttle["default"])(handleEvent, THROTTLED_EVENT_WAIT); 7079 7080 var addListeners = function addListeners(_ref16) { 7081 var _ref16$target = _ref16.target, 7082 target = _ref16$target === void 0 ? document : _ref16$target, 7083 types = _ref16.types, 7084 shouldThrottle = _ref16.throttle; 7085 types.split(' ').filter(Boolean).forEach(function (type) { 7086 var handlerFunc = shouldThrottle ? handleEventThrottled : handleEvent; // $FlowFixMe 7087 7088 target.addEventListener(type, handlerFunc); 7089 store.dispatch((0, _IX2EngineActions.eventListenerAdded)(target, [type, handlerFunc])); 7090 }); 7091 }; 7092 7093 if (Array.isArray(eventTypes)) { 7094 eventTypes.forEach(addListeners); 7095 } else if (typeof eventTypes === 'string') { 7096 addListeners(logic); 7097 } 7098} 7099/** 7100 * Injects CSS into the document to fix behavior issues across 7101 * different devices. 7102 */ 7103 7104 7105function injectBehaviorCSSFixes(events) { 7106 if (!IS_MOBILE_SAFARI) { 7107 return; 7108 } 7109 7110 var injectedSelectors = {}; 7111 var cssText = ''; 7112 7113 for (var eventId in events) { 7114 var _events$eventId = events[eventId], 7115 eventTypeId = _events$eventId.eventTypeId, 7116 target = _events$eventId.target; 7117 var selector = elementApi.getQuerySelector(target); // $FlowFixMe 7118 7119 if (injectedSelectors[selector]) { 7120 continue; 7121 } // add a "cursor: pointer" style rule to ensure that CLICK events get fired for IOS devices 7122 7123 7124 if (eventTypeId === _constants.EventTypeConsts.MOUSE_CLICK || eventTypeId === _constants.EventTypeConsts.MOUSE_SECOND_CLICK) { 7125 // $FlowFixMe 7126 injectedSelectors[selector] = true; 7127 cssText += // $FlowFixMe 7128 selector + '{' + 'cursor: pointer;' + 'touch-action: manipulation;' + '}'; 7129 } 7130 } 7131 7132 if (cssText) { 7133 var style = document.createElement('style'); 7134 style.textContent = cssText; // $FlowFixMe 7135 7136 document.body.appendChild(style); 7137 } 7138} 7139 7140function renderInitialGroup(_ref17) { 7141 var store = _ref17.store, 7142 actionListId = _ref17.actionListId, 7143 eventId = _ref17.eventId; 7144 7145 var _store$getState10 = store.getState(), 7146 ixData = _store$getState10.ixData, 7147 ixSession = _store$getState10.ixSession; 7148 7149 var actionLists = ixData.actionLists, 7150 events = ixData.events; 7151 var event = events[eventId]; 7152 var actionList = actionLists[actionListId]; 7153 7154 if (actionList && actionList.useFirstGroupAsInitialState) { 7155 var initialStateItems = (0, _get["default"])(actionList, 'actionItemGroups[0].actionItems', []); // Bypass initial state render if current media query is not listed in event config 7156 7157 var mediaQueries = (0, _get["default"])(event, 'mediaQueries', ixData.mediaQueryKeys); 7158 7159 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7160 return; 7161 } 7162 7163 initialStateItems.forEach(function (actionItem) { 7164 var config = actionItem.config, 7165 actionTypeId = actionItem.actionTypeId; 7166 var itemElements = getAffectedElements({ 7167 config: config, 7168 event: event, 7169 elementApi: elementApi 7170 }); 7171 var shouldUsePlugin = isPluginType(actionTypeId); 7172 itemElements.forEach(function (element) { 7173 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7174 createPluginInstance(actionTypeId)(element, actionItem) : null; 7175 createInstance({ 7176 destination: getDestinationValues({ 7177 element: element, 7178 actionItem: actionItem, 7179 elementApi: elementApi 7180 }, // $FlowFixMe 7181 pluginInstance), 7182 immediate: true, 7183 store: store, 7184 element: element, 7185 eventId: eventId, 7186 actionItem: actionItem, 7187 actionListId: actionListId, 7188 pluginInstance: pluginInstance 7189 }); 7190 }); 7191 }); 7192 } 7193} // $FlowFixMe 7194 7195 7196function stopAllActionGroups(_ref18) { 7197 var store = _ref18.store; 7198 7199 var _store$getState11 = store.getState(), 7200 ixInstances = _store$getState11.ixInstances; 7201 7202 (0, _forEach["default"])(ixInstances, function (instance) { 7203 if (!instance.continuous) { 7204 var actionListId = instance.actionListId, 7205 verbose = instance.verbose; 7206 removeInstance(instance, store); 7207 7208 if (verbose) { 7209 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7210 actionListId: actionListId, 7211 isPlaying: false 7212 })); 7213 } 7214 } 7215 }); 7216} // $FlowFixMe 7217 7218 7219function stopActionGroup(_ref19) { 7220 var store = _ref19.store, 7221 eventId = _ref19.eventId, 7222 eventTarget = _ref19.eventTarget, 7223 eventStateKey = _ref19.eventStateKey, 7224 actionListId = _ref19.actionListId; 7225 7226 var _store$getState12 = store.getState(), 7227 ixInstances = _store$getState12.ixInstances, 7228 ixSession = _store$getState12.ixSession; // Check for element boundary before stopping engine instances 7229 7230 7231 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null;
7232 (0, _forEach["default"])(ixInstances, function (instance) { 7233 var boundaryMode = (0, _get["default"])(instance, 'actionItem.config.target.boundaryMode'); // Validate event key if eventStateKey was provided, otherwise default to true 7234 7235 var validEventKey = eventStateKey ? instance.eventStateKey === eventStateKey : true; // Remove engine instances that match the required ids 7236 7237 if (instance.actionListId === actionListId && instance.eventId === eventId && validEventKey) { 7238 // Avoid removal when root boundary does not contain instance element 7239 if (eventElementRoot && boundaryMode && !elementApi.elementContains(eventElementRoot, instance.element)) { 7240 return; 7241 } 7242 7243 removeInstance(instance, store); 7244 7245 if (instance.verbose) { 7246 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7247 actionListId: actionListId, 7248 isPlaying: false 7249 })); 7250 } 7251 } 7252 }); 7253} // $FlowFixMe 7254 7255 7256function startActionGroup(_ref20) { 7257 var store = _ref20.store, 7258 eventId = _ref20.eventId, 7259 eventTarget = _ref20.eventTarget, 7260 eventStateKey = _ref20.eventStateKey, 7261 actionListId = _ref20.actionListId, 7262 _ref20$groupIndex = _ref20.groupIndex, 7263 groupIndex = _ref20$groupIndex === void 0 ? 0 : _ref20$groupIndex, 7264 immediate = _ref20.immediate, 7265 verbose = _ref20.verbose; 7266 7267 var _event$action; 7268 7269 var _store$getState13 = store.getState(), 7270 ixData = _store$getState13.ixData, 7271 ixSession = _store$getState13.ixSession; 7272 7273 var events = ixData.events; 7274 var event = events[eventId] || {}; 7275 var _event$mediaQueries3 = event.mediaQueries, 7276 mediaQueries = _event$mediaQueries3 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries3; 7277 var actionList = (0, _get["default"])(ixData, "actionLists.".concat(actionListId), {}); 7278 var actionItemGroups = actionList.actionItemGroups, 7279 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; // Abort playback if no action groups 7280 7281 if (!actionItemGroups || !actionItemGroups.length) { 7282 return false; 7283 } // Reset to first group when event loop is configured 7284 7285 7286 if (groupIndex >= actionItemGroups.length && (0, _get["default"])(event, 'config.loop')) { 7287 groupIndex = 0; 7288 } // Skip initial state group during action list playback, as it should already be applied 7289 7290 7291 if (groupIndex === 0 && useFirstGroupAsInitialState) { 7292 groupIndex++; 7293 } // Identify first animated group and apply the initial QuickEffect delay 7294 7295 7296 var isFirstGroup = groupIndex === 0 || groupIndex === 1 && useFirstGroupAsInitialState; 7297 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 7298 7299 var actionItems = (0, _get["default"])(actionItemGroups, [groupIndex, 'actionItems'], []); 7300 7301 if (!actionItems.length) { 7302 return false; 7303 } // Abort playback if current media query is not listed in event config 7304 7305 7306 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7307 return false; 7308 } // Limit affected elements when event target is within a boundary node 7309 7310 7311 var eventElementRoot = ixSession.hasBoundaryNodes && eventTarget ? elementApi.getClosestElement(eventTarget, BOUNDARY_SELECTOR) : null; 7312 var carrierIndex = getMaxDurationItemIndex(actionItems); 7313 var groupStartResult = false;
7314 actionItems.forEach(function (actionItem, actionIndex) { 7315 var config = actionItem.config, 7316 actionTypeId = actionItem.actionTypeId; 7317 var shouldUsePlugin = isPluginType(actionTypeId); 7318 var target = config.target; 7319 7320 if (!target) { 7321 return; 7322 } 7323 7324 var elementRoot = target.boundaryMode ? eventElementRoot : null; 7325 var elements = getAffectedElements({ 7326 config: config, 7327 event: event, 7328 eventTarget: eventTarget, 7329 elementRoot: elementRoot, 7330 elementApi: elementApi 7331 }); 7332 elements.forEach(function (element, elementIndex) { 7333 var pluginInstance = shouldUsePlugin ? // $FlowFixMe 7334 createPluginInstance(actionTypeId)(element, actionItem) : null; 7335 var pluginDuration = shouldUsePlugin ? // $FlowFixMe 7336 getPluginDuration(actionTypeId)(element, actionItem) : null; 7337 groupStartResult = true; 7338 var isCarrier = carrierIndex === actionIndex && elementIndex === 0; 7339 var computedStyle = getComputedStyle({ 7340 element: element, 7341 actionItem: actionItem 7342 }); 7343 var destination = getDestinationValues({ 7344 element: element, 7345 actionItem: actionItem, 7346 elementApi: elementApi 7347 }, // $FlowFixMe 7348 pluginInstance); 7349 createInstance({ 7350 store: store, 7351 element: element, 7352 actionItem: actionItem, 7353 eventId: eventId, 7354 eventTarget: eventTarget, 7355 eventStateKey: eventStateKey, 7356 actionListId: actionListId, 7357 groupIndex: groupIndex, 7358 isCarrier: isCarrier, 7359 computedStyle: computedStyle, 7360 destination: destination, 7361 immediate: immediate, 7362 verbose: verbose, 7363 pluginInstance: pluginInstance, 7364 pluginDuration: pluginDuration, 7365 instanceDelay: instanceDelay 7366 }); 7367 }); 7368 }); 7369 return groupStartResult; 7370} 7371 7372function createInstance(options) { 7373 // $FlowFixMe 7374 var store = options.store, 7375 computedStyle = options.computedStyle, 7376 rest = (0, _objectWithoutPropertiesLoose2["default"])(options, ["store", "computedStyle"]); // $FlowFixMe 7377 7378 var autoStart = !rest.continuous; // $FlowFixMe 7379 7380 var element = rest.element, 7381 actionItem = rest.actionItem, 7382 immediate = rest.immediate, 7383 pluginInstance = rest.pluginInstance; 7384 var instanceId = getInstanceId(); 7385 7386 var _store$getState14 = store.getState(), 7387 ixElements = _store$getState14.ixElements, 7388 ixSession = _store$getState14.ixSession; 7389 7390 var elementId = getElementId(ixElements, element); 7391 7392 var _ref21 = ixElements[elementId] || {}, 7393 refState = _ref21.refState; 7394 7395 var refType = elementApi.getRefType(element); 7396 var origin = getInstanceOrigin(element, refState, computedStyle, actionItem, elementApi, // $FlowFixMe 7397 pluginInstance); 7398 store.dispatch((0, _IX2EngineActions.instanceAdded)((0, _extends2["default"])({ 7399 instanceId: instanceId, 7400 elementId: elementId, 7401 origin: origin, 7402 refType: refType 7403 }, rest))); 7404 dispatchCustomEvent(document.body, 'ix2-animation-started', instanceId); 7405 7406 if (immediate) { 7407 renderImmediateInstance(store, instanceId); 7408 return; 7409 } 7410 7411 observeStore({ 7412 store: store, 7413 select: function select(_ref22) { 7414 var ixInstances = _ref22.ixInstances; 7415 return ixInstances[instanceId]; 7416 }, 7417 onChange: handleInstanceChange 7418 }); 7419 7420 if (autoStart) { 7421 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, ixSession.tick)); 7422 } 7423} 7424 7425function removeInstance(instance, store) { 7426 dispatchCustomEvent(document.body, 'ix2-animation-stopping', { 7427 instanceId: instance.id, 7428 state: store.getState() 7429 }); 7430 var elementId = instance.elementId, 7431 actionItem = instance.actionItem; 7432 7433 var _store$getState15 = store.getState(), 7434 ixElements = _store$getState15.ixElements; 7435 7436 var _ref23 = ixElements[elementId] || {}, 7437 ref = _ref23.ref, 7438 refType = _ref23.refType; 7439 7440 if (refType === HTML_ELEMENT) { 7441 cleanupHTMLElement(ref, actionItem, elementApi); 7442 } 7443 7444 store.dispatch((0, _IX2EngineActions.instanceRemoved)(instance.id)); 7445} 7446 7447function dispatchCustomEvent(element, eventName, detail) { 7448 var event = document.createEvent('CustomEvent'); 7449 event.initCustomEvent(eventName, true, true, detail); // $FlowFixMe 7450 7451 element.dispatchEvent(event); 7452} 7453 7454function renderImmediateInstance(store, instanceId) { 7455 var _store$getState16 = store.getState(), 7456 ixParameters = _store$getState16.ixParameters; 7457 7458 store.dispatch((0, _IX2EngineActions.instanceStarted)(instanceId, 0)); 7459 store.dispatch((0, _IX2EngineActions.animationFrameChanged)(performance.now(), ixParameters)); 7460 7461 var _store$getState17 = store.getState(), 7462 ixInstances = _store$getState17.ixInstances; 7463 7464 handleInstanceChange(ixInstances[instanceId], store); 7465} 7466 7467function handleInstanceChange(instance, store) { 7468 var active = instance.active, 7469 continuous = instance.continuous, 7470 complete = instance.complete, 7471 elementId = instance.elementId, 7472 actionItem = instance.actionItem, 7473 actionTypeId = instance.actionTypeId, 7474 renderType = instance.renderType, 7475 current = instance.current, 7476 groupIndex = instance.groupIndex, 7477 eventId = instance.eventId, 7478 eventTarget = instance.eventTarget, 7479 eventStateKey = instance.eventStateKey, 7480 actionListId = instance.actionListId, 7481 isCarrier = instance.isCarrier, 7482 styleProp = instance.styleProp, 7483 verbose = instance.verbose, 7484 pluginInstance = instance.pluginInstance; // Bypass render if current media query is not listed in event config 7485 7486 var _store$getState18 = store.getState(), 7487 ixData = _store$getState18.ixData, 7488 ixSession = _store$getState18.ixSession; 7489 7490 var events = ixData.events; 7491 var event = events[eventId] || {}; 7492 var _event$mediaQueries4 = event.mediaQueries, 7493 mediaQueries = _event$mediaQueries4 === void 0 ? ixData.mediaQueryKeys : _event$mediaQueries4; 7494 7495 if (!shouldAllowMediaQuery(mediaQueries, ixSession.mediaQueryKey)) { 7496 return; 7497 } 7498 7499 if (continuous || active || complete) { 7500 if (current || renderType === RENDER_GENERAL && complete) { 7501 // Render current values to ref state and grab latest 7502 store.dispatch((0, _IX2EngineActions.elementStateChanged)(elementId, actionTypeId, current, actionItem)); 7503 7504 var _store$getState19 = store.getState(), 7505 ixElements = _store$getState19.ixElements; 7506 7507 var _ref24 = ixElements[elementId] || {}, 7508 ref = _ref24.ref, 7509 refType = _ref24.refType, 7510 refState = _ref24.refState; 7511 7512 var actionState = refState && refState[actionTypeId]; // Choose render based on ref type 7513 7514 switch (refType) { 7515 case HTML_ELEMENT: 7516 { 7517 renderHTMLElement(ref, refState, actionState, eventId, actionItem, styleProp, elementApi, renderType, pluginInstance); 7518 break; 7519 } 7520 } 7521 } 7522 7523 if (complete) { 7524 if (isCarrier) { 7525 var started = startActionGroup({ 7526 store: store, 7527 eventId: eventId, 7528 eventTarget: eventTarget, 7529 eventStateKey: eventStateKey, 7530 actionListId: actionListId, 7531 groupIndex: groupIndex + 1,
7532 verbose: verbose 7533 }); 7534 7535 if (verbose && !started) { 7536 store.dispatch((0, _IX2EngineActions.actionListPlaybackChanged)({ 7537 actionListId: actionListId, 7538 isPlaying: false 7539 })); 7540 } 7541 } 7542 7543 removeInstance(instance, store); 7544 } 7545 } 7546} 7547 7548/***/ }), 7549/* 116 */ 7550/***/ (function(module, exports, __webpack_require__) { 7551 7552var defineProperty = __webpack_require__(117); 7553 7554/** 7555 * The base implementation of `assignValue` and `assignMergeValue` without 7556 * value checks. 7557 * 7558 * @private 7559 * @param {Object} object The object to modify. 7560 * @param {string} key The key of the property to assign. 7561 * @param {*} value The value to assign. 7562 */ 7563function baseAssignValue(object, key, value) { 7564 if (key == '__proto__' && defineProperty) { 7565 defineProperty(object, key, { 7566 'configurable': true, 7567 'enumerable': true, 7568 'value': value, 7569 'writable': true 7570 }); 7571 } else { 7572 object[key] = value; 7573 } 7574} 7575 7576module.exports = baseAssignValue; 7577 7578 7579/***/ }), 7580/* 117 */ 7581/***/ (function(module, exports, __webpack_require__) { 7582 7583var getNative = __webpack_require__(8); 7584 7585var defineProperty = (function() { 7586 try { 7587 var func = getNative(Object, 'defineProperty'); 7588 func({}, '', {}); 7589 return func; 7590 } catch (e) {} 7591}()); 7592 7593module.exports = defineProperty; 7594 7595 7596/***/ }), 7597/* 118 */ 7598/***/ (function(module, exports, __webpack_require__) { 7599 7600var isObject = __webpack_require__(6); 7601 7602/** Built-in value references. */ 7603var objectCreate = Object.create; 7604 7605/** 7606 * The base implementation of `_.create` without support for assigning 7607 * properties to the created object. 7608 * 7609 * @private 7610 * @param {Object} proto The object to inherit from. 7611 * @returns {Object} Returns the new object. 7612 */ 7613var baseCreate = (function() { 7614 function object() {} 7615 return function(proto) { 7616 if (!isObject(proto)) { 7617 return {}; 7618 } 7619 if (objectCreate) { 7620 return objectCreate(proto); 7621 } 7622 object.prototype = proto; 7623 var result = new object; 7624 object.prototype = undefined; 7625 return result; 7626 }; 7627}()); 7628 7629module.exports = baseCreate; 7630 7631 7632/***/ }), 7633/* 119 */ 7634/***/ (function(module, exports, __webpack_require__) { 7635 7636var metaMap = __webpack_require__(306), 7637 noop = __webpack_require__(307); 7638 7639/** 7640 * Gets metadata for `func`. 7641 * 7642 * @private 7643 * @param {Function} func The function to query. 7644 * @returns {*} Returns the metadata for `func`. 7645 */ 7646var getData = !metaMap ? noop : function(func) { 7647 return metaMap.get(func); 7648}; 7649 7650module.exports = getData; 7651 7652 7653/***/ }), 7654/* 120 */ 7655/***/ (function(module, exports, __webpack_require__) { 7656 7657var realNames = __webpack_require__(308); 7658 7659/** Used for built-in method references. */ 7660var objectProto = Object.prototype; 7661 7662/** Used to check objects for own properties. */ 7663var hasOwnProperty = objectProto.hasOwnProperty; 7664 7665/** 7666 * Gets the name of `func`. 7667 * 7668 * @private 7669 * @param {Function} func The function to query. 7670 * @returns {string} Returns the function name. 7671 */ 7672function getFuncName(func) { 7673 var result = (func.name + ''), 7674 array = realNames[result], 7675 length = hasOwnProperty.call(realNames, result) ? array.length : 0; 7676 7677 while (length--) { 7678 var data = array[length], 7679 otherFunc = data.func; 7680 if (otherFunc == null || otherFunc == func) { 7681 return data.name; 7682 } 7683 } 7684 return result; 7685} 7686 7687module.exports = getFuncName; 7688 7689 7690/***/ }), 7691/* 121 */ 7692/***/ (function(module, exports, __webpack_require__) { 7693 7694__webpack_require__(122); 7695__webpack_require__(37); 7696__webpack_require__(124); 7697__webpack_require__(38); 7698__webpack_require__(125); 7699__webpack_require__(315); 7700__webpack_require__(316); 7701__webpack_require__(317); 7702__webpack_require__(318); 7703__webpack_require__(319); 7704module.exports = __webpack_require__(324); 7705 7706 7707/***/ }), 7708/* 122 */ 7709/***/ (function(module, exports, __webpack_require__) { 7710 7711"use strict"; 7712 // @wf-will-never-add-flow-to-this-file 7713 7714/* globals document, window, navigator */ 7715 7716/* eslint-disable no-var */ 7717 7718/** 7719 * Webflow: Brand pages on the subdomain 7720 */ 7721 7722var Webflow = __webpack_require__(5); 7723 7724Webflow.define('brand', module.exports = function ($) { 7725 var api = {}; 7726 var doc = document; 7727 var $html = $('html'); 7728 var $body = $('body'); 7729 var namespace = '.w-webflow-badge'; 7730 var location = window.location; 7731 var isPhantom = /PhantomJS/i.test(navigator.userAgent); 7732 var fullScreenEvents = 'fullscreenchange webkitfullscreenchange mozfullscreenchange msfullscreenchange'; 7733 var brandElement; // ----------------------------------- 7734 // Module methods 7735 7736 api.ready = function () { 7737 var shouldBrand = $html.attr('data-wf-status'); 7738 var publishedDomain = $html.attr('data-wf-domain') || ''; 7739 7740 if (/\.webflow\.io$/i.test(publishedDomain) && location.hostname !== publishedDomain) { 7741 shouldBrand = true; 7742 } 7743 7744 if (shouldBrand && !isPhantom) { 7745 brandElement = brandElement || createBadge(); 7746 ensureBrand(); 7747 setTimeout(ensureBrand, 500); 7748 $(doc).off(fullScreenEvents, onFullScreenChange).on(fullScreenEvents, onFullScreenChange); 7749 } 7750 }; 7751 7752 function onFullScreenChange() { 7753 var fullScreen = doc.fullScreen || doc.mozFullScreen || doc.webkitIsFullScreen || doc.msFullscreenElement || Boolean(doc.webkitFullscreenElement);
7754 $(brandElement).attr('style', fullScreen ? 'display: none !important;' : ''); 7755 } 7756 7757 function createBadge() { 7758 var $brand = $('<a class="w-webflow-badge"></a>').attr('href', 'https://webflow.com?utm_campaign=brandjs'); 7759 var $logoArt = $('<img>').attr('src', 'https://d3e54v103j8qbb.cloudfront.net/img/webflow-badge-icon.f67cd735e3.svg').attr('alt', '').css({ 7760 marginRight: '8px', 7761 width: '16px' 7762 }); 7763 var $logoText = $('<img>').attr('src', 'https://d1otoma47x30pg.cloudfront.net/img/webflow-badge-text.6faa6a38cd.svg').attr('alt', 'Made in Webflow'); 7764 $brand.append($logoArt, $logoText); 7765 return $brand[0]; 7766 } 7767 7768 function ensureBrand() { 7769 var found = $body.children(namespace); 7770 var match = found.length && found.get(0) === brandElement; 7771 var inEditor = Webflow.env('editor'); 7772 7773 if (match) { 7774 // Remove brand when Editor is active 7775 if (inEditor) { 7776 found.remove(); 7777 } // Exit early, brand is in place 7778 7779 7780 return; 7781 } // Remove any invalid brand elements 7782 7783 7784 if (found.length) { 7785 found.remove(); 7786 } // Append the brand (unless Editor is active) 7787 7788 7789 if (!inEditor) { 7790 $body.append(brandElement); 7791 } 7792 } // Export module 7793 7794 7795 return api; 7796}); 7797 7798/***/ }), 7799/* 123 */ 7800/***/ (function(module, exports, __webpack_require__) { 7801 7802"use strict"; 7803 // @wf-will-never-add-flow-to-this-file 7804// Include tram for frame-throttling 7805 7806/* globals window */ 7807 7808/* eslint-disable no-var */ 7809 7810var $ = window.$; 7811var tram = __webpack_require__(66) && $.tram; 7812/*! 7813 * Webflow._ (aka) Underscore.js 1.6.0 (custom build) 7814 * _.each 7815 * _.map 7816 * _.find 7817 * _.filter 7818 * _.any 7819 * _.contains 7820 * _.delay 7821 * _.defer 7822 * _.throttle (webflow) 7823 * _.debounce 7824 * _.keys 7825 * _.has 7826 * _.now 7827 * 7828 * http://underscorejs.org 7829 * (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors 7830 * Underscore may be freely distributed under the MIT license. 7831 * @license MIT 7832 */ 7833 7834module.exports = function () { 7835 var _ = {}; // Current version. 7836 7837 _.VERSION = '1.6.0-Webflow'; // Establish the object that gets returned to break out of a loop iteration. 7838 7839 var breaker = {}; // Save bytes in the minified (but not gzipped) version: 7840 7841 /* eslint-disable one-var */ 7842 7843 var ArrayProto = Array.prototype, 7844 ObjProto = Object.prototype, 7845 FuncProto = Function.prototype; 7846 /* eslint-enable one-var */ 7847 // Create quick reference variables for speed access to core prototypes. 7848 7849 /* eslint-disable one-var, no-unused-vars */ 7850 7851 var push = ArrayProto.push, 7852 slice = ArrayProto.slice, 7853 concat = ArrayProto.concat, 7854 toString = ObjProto.toString, 7855 hasOwnProperty = ObjProto.hasOwnProperty; 7856 /* eslint-enable one-var, no-unused-vars */ 7857 // All **ECMAScript 5** native function implementations that we hope to use 7858 // are declared here. 7859 7860 /* eslint-disable one-var, no-unused-vars */ 7861 7862 var nativeForEach = ArrayProto.forEach, 7863 nativeMap = ArrayProto.map, 7864 nativeReduce = ArrayProto.reduce, 7865 nativeReduceRight = ArrayProto.reduceRight, 7866 nativeFilter = ArrayProto.filter, 7867 nativeEvery = ArrayProto.every, 7868 nativeSome = ArrayProto.some, 7869 nativeIndexOf = ArrayProto.indexOf, 7870 nativeLastIndexOf = ArrayProto.lastIndexOf, 7871 nativeIsArray = Array.isArray, 7872 nativeKeys = Object.keys, 7873 nativeBind = FuncProto.bind; 7874 /* eslint-enable one-var, no-unused-vars */ 7875 // Collection Functions 7876 // -------------------- 7877 // The cornerstone, an `each` implementation, aka `forEach`. 7878 // Handles objects with the built-in `forEach`, arrays, and raw objects. 7879 // Delegates to **ECMAScript 5**'s native `forEach` if available. 7880 7881 var each = _.each = _.forEach = function (obj, iterator, context) { 7882 /* jshint shadow:true */ 7883 if (obj == null) return obj; 7884 7885 if (nativeForEach && obj.forEach === nativeForEach) { 7886 obj.forEach(iterator, context); // eslint-disable-next-line no-implicit-coercion 7887 } else if (obj.length === +obj.length) { 7888 for (var i = 0, length = obj.length; i < length; i++) { 7889 if (iterator.call(context, obj[i], i, obj) === breaker) return; 7890 } 7891 } else { 7892 var keys = _.keys(obj); // eslint-disable-next-line no-redeclare 7893 7894 7895 for (var i = 0, length = keys.length; i < length; i++) { 7896 if (iterator.call(context, obj[keys[i]], keys[i], obj) === breaker) return; 7897 } 7898 } 7899 7900 return obj; 7901 }; // Return the results of applying the iterator to each element. 7902 // Delegates to **ECMAScript 5**'s native `map` if available. 7903 7904 7905 _.map = _.collect = function (obj, iterator, context) { 7906 var results = []; 7907 if (obj == null) return results; 7908 if (nativeMap && obj.map === nativeMap) return obj.map(iterator, context); 7909 each(obj, function (value, index, list) { 7910 results.push(iterator.call(context, value, index, list)); 7911 }); 7912 return results; 7913 }; // Return the first value which passes a truth test. Aliased as `detect`. 7914 7915 7916 _.find = _.detect = function (obj, predicate, context) { 7917 var result; 7918 any(obj, function (value, index, list) { 7919 if (predicate.call(context, value, index, list)) { 7920 result = value; 7921 return true; 7922 } 7923 }); 7924 return result; 7925 }; // Return all the elements that pass a truth test. 7926 // Delegates to **ECMAScript 5**'s native `filter` if available. 7927 // Aliased as `select`. 7928 7929 7930 _.filter = _.select = function (obj, predicate, context) { 7931 var results = []; 7932 if (obj == null) return results; 7933 if (nativeFilter && obj.filter === nativeFilter) return obj.filter(predicate, context); 7934 each(obj, function (value, index, list) { 7935 if (predicate.call(context, value, index, list)) results.push(value); 7936 }); 7937 return results; 7938 }; // Determine if at least one element in the object matches a truth test. 7939 // Delegates to **ECMAScript 5**'s native `some` if available. 7940 // Aliased as `any`. 7941 7942 7943 var any = _.some = _.any = function (obj, predicate, context) { 7944 predicate || (predicate = _.identity); 7945 var result = false;
7946 if (obj == null) return result; 7947 if (nativeSome && obj.some === nativeSome) return obj.some(predicate, context); 7948 each(obj, function (value, index, list) { 7949 if (result || (result = predicate.call(context, value, index, list))) return breaker; 7950 }); 7951 return !!result; // eslint-disable-line no-implicit-coercion 7952 }; // Determine if the array or object contains a given value (using `===`). 7953 // Aliased as `include`. 7954 7955 7956 _.contains = _.include = function (obj, target) { 7957 if (obj == null) return false; 7958 if (nativeIndexOf && obj.indexOf === nativeIndexOf) // eslint-disable-next-line eqeqeq 7959 return obj.indexOf(target) != -1; 7960 return any(obj, function (value) { 7961 return value === target; 7962 }); 7963 }; // Function (ahem) Functions 7964 // -------------------- 7965 // Delays a function for the given number of milliseconds, and then calls 7966 // it with the arguments supplied. 7967 7968 7969 _.delay = function (func, wait) { 7970 var args = slice.call(arguments, 2); 7971 return setTimeout(function () { 7972 return func.apply(null, args); 7973 }, wait); 7974 }; // Defers a function, scheduling it to run after the current call stack has 7975 // cleared. 7976 7977 7978 _.defer = function (func) { 7979 return _.delay.apply(_, [func, 1].concat(slice.call(arguments, 1))); 7980 }; // Returns a function, that, when invoked, will only be triggered once every 7981 // browser animation frame - using tram's requestAnimationFrame polyfill. 7982 7983 7984 _.throttle = function (func) { 7985 // eslint-disable-next-line one-var 7986 var wait, args, context; 7987 return function () { 7988 if (wait) return; 7989 wait = true; 7990 args = arguments; 7991 context = this; 7992 tram.frame(function () { 7993 wait = false; 7994 func.apply(context, args); 7995 }); 7996 }; 7997 }; // Returns a function, that, as long as it continues to be invoked, will not 7998 // be triggered. The function will be called after it stops being called for 7999 // N milliseconds. If `immediate` is passed, trigger the function on the 8000 // leading edge, instead of the trailing. 8001 8002 8003 _.debounce = function (func, wait, immediate) { 8004 // eslint-disable-next-line one-var 8005 var timeout, args, context, timestamp, result; 8006 8007 var later = function later() { 8008 var last = _.now() - timestamp; 8009 8010 if (last < wait) { 8011 timeout = setTimeout(later, wait - last); 8012 } else { 8013 timeout = null; 8014 8015 if (!immediate) { 8016 result = func.apply(context, args); 8017 context = args = null; 8018 } 8019 } 8020 }; 8021 8022 return function () { 8023 context = this; 8024 args = arguments; 8025 timestamp = _.now(); 8026 var callNow = immediate && !timeout; 8027 8028 if (!timeout) { 8029 timeout = setTimeout(later, wait); 8030 } 8031 8032 if (callNow) { 8033 result = func.apply(context, args); 8034 context = args = null; 8035 } 8036 8037 return result; 8038 }; 8039 }; // Object Functions 8040 // ---------------- 8041 // Fill in a given object with default properties. 8042 8043 8044 _.defaults = function (obj) { 8045 if (!_.isObject(obj)) return obj; 8046 8047 for (var i = 1, length = arguments.length; i < length; i++) { 8048 var source = arguments[i]; 8049 8050 for (var prop in source) { 8051 // eslint-disable-next-line no-void 8052 if (obj[prop] === void 0) obj[prop] = source[prop]; 8053 } 8054 } 8055 8056 return obj; 8057 }; // Retrieve the names of an object's properties. 8058 // Delegates to **ECMAScript 5**'s native `Object.keys` 8059 8060 8061 _.keys = function (obj) { 8062 if (!_.isObject(obj)) return []; 8063 if (nativeKeys) return nativeKeys(obj); 8064 var keys = []; 8065 8066 for (var key in obj) { 8067 if (_.has(obj, key)) keys.push(key); 8068 } 8069 8070 return keys; 8071 }; // Shortcut function for checking if an object has a given property directly 8072 // on itself (in other words, not on a prototype). 8073 8074 8075 _.has = function (obj, key) { 8076 return hasOwnProperty.call(obj, key); 8077 }; // Is a given variable an object? 8078 8079 8080 _.isObject = function (obj) { 8081 return obj === Object(obj); 8082 }; // Utility Functions 8083 // ----------------- 8084 // A (possibly faster) way to get the current timestamp as an integer. 8085 8086 8087 _.now = Date.now || function () { 8088 return new Date().getTime(); 8089 }; // By default, Underscore uses ERB-style template delimiters, change the 8090 // following template settings to use alternative delimiters. 8091 8092 8093 _.templateSettings = { 8094 evaluate: /<%([\s\S]+?)%>/g, 8095 interpolate: /<%=([\s\S]+?)%>/g, 8096 escape: /<%-([\s\S]+?)%>/g 8097 }; // When customizing `templateSettings`, if you don't want to define an 8098 // interpolation, evaluation or escaping regex, we need one that is 8099 // guaranteed not to match. 8100 8101 var noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a 8102 // string literal. 8103 8104 var escapes = { 8105 "'": "'", 8106 '\\': '\\', 8107 '\r': 'r', 8108 '\n': 'n', 8109 "\u2028": 'u2028', 8110 "\u2029": 'u2029' 8111 }; 8112 var escaper = /\\|'|\r|\n|\u2028|\u2029/g; 8113 8114 var escapeChar = function escapeChar(match) { 8115 return '\\' + escapes[match]; 8116 }; // JavaScript micro-templating, similar to John Resig's implementation. 8117 // Underscore templating handles arbitrary delimiters, preserves whitespace, 8118 // and correctly escapes quotes within interpolated code. 8119 // NB: `oldSettings` only exists for backwards compatibility. 8120 8121 8122 _.template = function (text, settings, oldSettings) { 8123 if (!settings && oldSettings) settings = oldSettings; 8124 settings = _.defaults({}, settings, _.templateSettings); // Combine delimiters into one regular expression via alternation. 8125 8126 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. 8127 8128 var index = 0; 8129 var source = "__p+='"; 8130 text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { 8131 source += text.slice(index, offset).replace(escaper, escapeChar); 8132 index = offset + match.length; 8133 8134 if (escape) { 8135 source += "'+\n((__t=(" + escape + "))==null?'':_.escape(__t))+\n'"; 8136 } else if (interpolate) { 8137 source += "'+\n((__t=(" + interpolate + "))==null?'':__t)+\n'";
8138 } else if (evaluate) { 8139 source += "';\n" + evaluate + "\n__p+='"; 8140 } // Adobe VMs need the match returned to produce the correct offest. 8141 8142 8143 return match; 8144 }); 8145 source += "';\n"; // If a variable is not specified, place data values in local scope. 8146 8147 if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; 8148 source = "var __t,__p='',__j=Array.prototype.join," + "print=function(){__p+=__j.call(arguments,'');};\n" + source + 'return __p;\n'; 8149 8150 try { 8151 // eslint-disable-next-line no-new-func 8152 var render = new Function(settings.variable || 'obj', '_', source); 8153 } catch (e) { 8154 e.source = source; 8155 throw e; 8156 } 8157 8158 var template = function template(data) { 8159 return render.call(this, data, _); 8160 }; // Provide the compiled source as a convenience for precompilation. 8161 8162 8163 var argument = settings.variable || 'obj'; 8164 template.source = 'function(' + argument + '){\n' + source + '}'; 8165 return template; 8166 }; // Export underscore 8167 8168 8169 return _; 8170}(); 8171/* eslint-enable */ 8172 8173/***/ }), 8174/* 124 */ 8175/***/ (function(module, exports, __webpack_require__) { 8176 8177"use strict"; 8178 // @wf-will-never-add-flow-to-this-file 8179 8180/* globals window */ 8181 8182/* eslint-disable no-var */ 8183 8184/** 8185 * Webflow: Interactions 8186 */ 8187 8188var Webflow = __webpack_require__(5); 8189 8190var IXEvents = __webpack_require__(37); 8191 8192Webflow.define('ix', module.exports = function ($, _) { 8193 var api = {}; 8194 var designer; 8195 var $win = $(window); 8196 var namespace = '.w-ix'; 8197 var tram = $.tram; 8198 var env = Webflow.env; 8199 var inApp = env(); 8200 var emptyFix = env.chrome && env.chrome < 35; 8201 var transNone = 'none 0s ease 0s'; 8202 var $subs = $(); 8203 var config = {}; 8204 var anchors = []; 8205 var loads = []; 8206 var readys = []; 8207 var destroyed; 8208 var readyDelay = 1; // Component types and proxy selectors 8209 8210 var components = { 8211 tabs: '.w-tab-link, .w-tab-pane', 8212 dropdown: '.w-dropdown', 8213 slider: '.w-slide', 8214 navbar: '.w-nav' 8215 }; // ----------------------------------- 8216 // Module methods 8217 8218 api.init = function (list) { 8219 setTimeout(function () { 8220 configure(list); 8221 }, 1); 8222 }; 8223 8224 api.preview = function () { 8225 designer = false;
8226 readyDelay = 100; 8227 setTimeout(function () { 8228 configure(window.__wf_ix); 8229 }, 1); 8230 }; 8231 8232 api.design = function () { 8233 designer = true; 8234 api.destroy(); 8235 }; 8236 8237 api.destroy = function () { 8238 destroyed = true; 8239 $subs.each(teardown); 8240 Webflow.scroll.off(scroll); 8241 IXEvents.async(); 8242 anchors = []; 8243 loads = []; 8244 readys = []; 8245 }; 8246 8247 api.ready = function () { 8248 // Redirect IX init while in design/preview modes 8249 if (inApp) { 8250 return env('design') ? api.design() : api.preview(); 8251 } // Ready should only be used after destroy, as a way to re-init 8252 8253 8254 if (config && destroyed) { 8255 destroyed = false; 8256 init(); 8257 } 8258 }; 8259 8260 api.run = run; 8261 api.style = inApp ? styleApp : stylePub; // ----------------------------------- 8262 // Private methods 8263 8264 function configure(list) { 8265 if (!list) { 8266 return; 8267 } // Map all interactions by slug 8268 8269 8270 config = {}; 8271 8272 _.each(list, function (item) { 8273 config[item.slug] = item.value; 8274 }); // Init ix after config 8275 8276 8277 init(); 8278 } 8279 8280 function init() { 8281 initIX1Engine(); // Need init IXEvents regardless if IX1 events exist since 8282 // IXEvents _also_ dispatch IX2 events. 8283 // Trigger queued events, must happen after init 8284 8285 IXEvents.init(); // Trigger a redraw to ensure all IX intros play 8286 8287 Webflow.redraw.up(); 8288 } 8289 8290 function initIX1Engine() { 8291 // Build each element's interaction keying from data attribute 8292 var els = $('[data-ix]'); 8293 8294 if (!els.length) { 8295 return; 8296 } 8297 8298 els.each(teardown); 8299 els.each(build); // Listen for scroll events if any anchors exist 8300 8301 if (anchors.length) { 8302 Webflow.scroll.on(scroll); 8303 setTimeout(scroll, 1); 8304 } // Handle loads or readys if they exist 8305 8306 8307 if (loads.length) { 8308 Webflow.load(runLoads); 8309 } 8310 8311 if (readys.length) { 8312 setTimeout(runReadys, readyDelay); 8313 } 8314 } 8315 8316 function build(i, el) { 8317 var $el = $(el); 8318 var id = $el.attr('data-ix'); 8319 var ix = config[id]; 8320 8321 if (!ix) { 8322 return; 8323 } 8324 8325 var triggers = ix.triggers; 8326 8327 if (!triggers) { 8328 return; 8329 } // Set styles immediately to provide tram with starting transform values 8330 8331 8332 api.style($el, ix.style); 8333 8334 _.each(triggers, function (trigger) { 8335 var state = {}; 8336 var type = trigger.type; 8337 var stepsB = trigger.stepsB && trigger.stepsB.length; 8338 8339 function runA() { 8340 run(trigger, $el, { 8341 group: 'A' 8342 }); 8343 } 8344 8345 function runB() { 8346 run(trigger, $el, { 8347 group: 'B' 8348 }); 8349 } 8350 8351 if (type === 'load') { 8352 trigger.preload && !inApp ? loads.push(runA) : readys.push(runA); 8353 return; 8354 } 8355 8356 if (type === 'click') { 8357 $el.on('click' + namespace, function (evt) { 8358 // Avoid late clicks on touch devices 8359 if (!Webflow.validClick(evt.currentTarget)) { 8360 return; 8361 } // Prevent default on empty hash urls 8362 8363 8364 if ($el.attr('href') === '#') { 8365 evt.preventDefault(); 8366 } 8367 8368 run(trigger, $el, { 8369 group: state.clicked ? 'B' : 'A' 8370 }); 8371 8372 if (stepsB) { 8373 state.clicked = !state.clicked; 8374 } 8375 }); 8376 $subs = $subs.add($el); 8377 return; 8378 } 8379 8380 if (type === 'hover') { 8381 $el.on('mouseenter' + namespace, runA); 8382 $el.on('mouseleave' + namespace, runB); 8383 $subs = $subs.add($el); 8384 return; 8385 } 8386 8387 if (type === 'scroll') { 8388 anchors.push({ 8389 el: $el, 8390 trigger: trigger, 8391 state: { 8392 active: false 8393 }, 8394 offsetTop: convert(trigger.offsetTop), 8395 offsetBot: convert(trigger.offsetBot) 8396 }); 8397 return; 8398 } // Check for a proxy component selector 8399 // type == [tabs, dropdown, slider, navbar] 8400 8401 8402 var proxy = components[type]; 8403 8404 if (proxy) { 8405 var $proxy = $el.closest(proxy); 8406 $proxy.on(IXEvents.types.INTRO, runA).on(IXEvents.types.OUTRO, runB); 8407 $subs = $subs.add($proxy); 8408 return; 8409 } 8410 }); 8411 } 8412 8413 function convert(offset) { 8414 if (!offset) { 8415 return 0; 8416 } 8417 8418 offset = String(offset); 8419 var result = parseInt(offset, 10); // eslint-disable-next-line no-self-compare 8420 8421 if (result !== result) { 8422 return 0; 8423 } 8424 8425 if (offset.indexOf('%') > 0) { 8426 result /= 100; 8427 8428 if (result >= 1) { 8429 result = 0.999; 8430 } 8431 } 8432 8433 return result; 8434 } 8435 8436 function teardown(i, el) { 8437 $(el).off(namespace); 8438 } 8439 8440 function scroll() { 8441 var viewTop = $win.scrollTop(); 8442 var viewHeight = $win.height(); // Check each anchor for a valid scroll trigger 8443 8444 var count = anchors.length; 8445 8446 for (var i = 0; i < count; i++) { 8447 var anchor = anchors[i]; 8448 var $el = anchor.el; 8449 var trigger = anchor.trigger; 8450 var stepsB = trigger.stepsB && trigger.stepsB.length; 8451 var state = anchor.state; 8452 var top = $el.offset().top; 8453 var height = $el.outerHeight(); 8454 var offsetTop = anchor.offsetTop; 8455 var offsetBot = anchor.offsetBot; 8456 8457 if (offsetTop < 1 && offsetTop > 0) { 8458 offsetTop *= viewHeight; 8459 } 8460 8461 if (offsetBot < 1 && offsetBot > 0) { 8462 offsetBot *= viewHeight; 8463 } 8464 8465 var active = top + height - offsetTop >= viewTop && top + offsetBot <= viewTop + viewHeight; 8466 8467 if (active === state.active) { 8468 continue; 8469 } 8470 8471 if (active === false && !stepsB) { 8472 continue; 8473 } 8474 8475 state.active = active; 8476 run(trigger, $el, { 8477 group: active ? 'A' : 'B' 8478 }); 8479 } 8480 } 8481 8482 function runLoads() { 8483 var count = loads.length; 8484 8485 for (var i = 0; i < count; i++) { 8486 loads[i](); 8487 } 8488 } 8489 8490 function runReadys() { 8491 var count = readys.length; 8492 8493 for (var i = 0; i < count; i++) { 8494 readys[i](); 8495 } 8496 } 8497 8498 function run(trigger, $el, opts, replay) { 8499 opts = opts || {}; 8500 var done = opts.done; 8501 var preserve3d = trigger.preserve3d;
8501 // Do not run in designer unless forced 8502 8503 if (designer && !opts.force) { 8504 return; 8505 } // Operate on a set of grouped steps 8506 8507 8508 var group = opts.group || 'A'; 8509 var loop = trigger['loop' + group]; 8510 var steps = trigger['steps' + group]; 8511 8512 if (!steps || !steps.length) { 8513 return; 8514 } 8515 8516 if (steps.length < 2) { 8517 loop = false; 8518 } // One-time init before any loops 8519 8520 8521 if (!replay) { 8522 // Find selector within element descendants, siblings, or query whole document 8523 var selector = trigger.selector; 8524 8525 if (selector) { 8526 if (trigger.descend) { 8527 $el = $el.find(selector); 8528 } else if (trigger.siblings) { 8529 $el = $el.siblings(selector); 8530 } else { 8531 $el = $(selector); 8532 } 8533 8534 if (inApp) { 8535 $el.attr('data-ix-affect', 1); 8536 } 8537 } // Apply empty fix for certain Chrome versions 8538 8539 8540 if (emptyFix) { 8541 $el.addClass('w-ix-emptyfix'); 8542 } // Set preserve3d for triggers with 3d transforms 8543 8544 8545 if (preserve3d) { 8546 $el.css('transform-style', 'preserve-3d'); 8547 } 8548 } 8549 8550 var _tram = tram($el); // Add steps 8551 8552 8553 var meta = { 8554 omit3d: !preserve3d 8555 }; 8556 8557 for (var i = 0; i < steps.length; i++) { 8558 addStep(_tram, steps[i], meta); 8559 } 8560 8561 function fin() { 8562 // Run trigger again if looped 8563 if (loop) { 8564 return run(trigger, $el, opts, true); 8565 } // Reset any 'auto' values 8566 8567 8568 if (meta.width === 'auto') { 8569 _tram.set({ 8570 width: 'auto' 8571 }); 8572 } 8573 8574 if (meta.height === 'auto') { 8575 _tram.set({ 8576 height: 'auto' 8577 }); 8578 } // Run callback 8579 8580 8581 done && done(); 8582 } // Add final step to queue if tram has started 8583 8584 8585 meta.start ? _tram.then(fin) : fin(); 8586 } 8587 8588 function addStep(_tram, step, meta) { 8589 var addMethod = 'add'; 8590 var startMethod = 'start'; // Once the transition has started, we will always use then() to add to the queue. 8591 8592 if (meta.start) { 8593 addMethod = startMethod = 'then'; 8594 } // Parse transitions string on the current step 8595 8596 8597 var transitions = step.transition; 8598 8599 if (transitions) { 8600 transitions = transitions.split(','); 8601 8602 for (var i = 0; i < transitions.length; i++) { 8603 var transition = transitions[i]; 8604 8605 _tram[addMethod](transition); 8606 } 8607 } // Build a clean object to pass to the tram method 8608 8609 8610 var clean = tramify(step, meta) || {}; // Store last width and height values 8611 8612 if (clean.width != null) { 8613 meta.width = clean.width; 8614 } 8615 8616 if (clean.height != null) { 8617 meta.height = clean.height; 8618 } // When transitions are not present, set values immediately and continue queue. 8619 8620 8621 if (transitions == null) { 8622 // If we have started, wrap set() in then() and reset queue 8623 if (meta.start) { 8624 _tram.then(function () { 8625 var queue = this.queue; 8626 this.set(clean); 8627 8628 if (clean.display) { 8629 _tram.redraw(); 8630 8631 Webflow.redraw.up(); 8632 } 8633 8634 this.queue = queue; 8635 this.next(); 8636 }); 8637 } else { 8638 _tram.set(clean); // Always redraw after setting display 8639 8640 8641 if (clean.display) { 8642 _tram.redraw(); 8643 8644 Webflow.redraw.up(); 8645 } 8646 } // Use the wait() method to kick off queue in absence of transitions. 8647 8648 8649 var wait = clean.wait; 8650 8651 if (wait != null) { 8652 _tram.wait(wait); 8653 8654 meta.start = true; 8655 } // Otherwise, when transitions are present 8656 8657 } else { 8658 // If display is present, handle it separately 8659 if (clean.display) { 8660 var display = clean.display; // eslint-disable-next-line webflow/no-delete 8661 8662 delete clean.display; // If we've already started, we need to wrap it in a then() 8663 8664 if (meta.start) { 8665 _tram.then(function () { 8666 var queue = this.queue; 8667 this.set({ 8668 display: display 8669 }).redraw(); 8670 Webflow.redraw.up(); 8671 this.queue = queue; 8672 this.next(); 8673 }); 8674 } else { 8675 _tram.set({ 8676 display: display 8677 }).redraw(); 8678 8679 Webflow.redraw.up(); 8680 } 8681 } // Otherwise, start a transition using the current start method. 8682 8683 8684 _tram[startMethod](clean); 8685 8686 meta.start = true; 8687 } 8688 } // (In app) Set styles immediately and manage upstream transition 8689 8690
8691 function styleApp(el, data) { 8692 var _tram = tram(el); // Exit early when data is empty to avoid clearing upstream 8693 8694 8695 if ($.isEmptyObject(data)) { 8696 return; 8697 } // Get computed transition value 8698 8699 8700 el.css('transition', ''); 8701 var computed = el.css('transition'); // If computed is set to none, clear upstream 8702 8703 if (computed === transNone) { 8704 computed = _tram.upstream = null; 8705 } // Set upstream transition to none temporarily 8706 8707 8708 _tram.upstream = transNone; // Set values immediately 8709 8710 _tram.set(tramify(data)); // Only restore upstream in preview mode 8711 8712 8713 _tram.upstream = computed; 8714 } // (Published) Set styles immediately on specified jquery element 8715 8716 8717 function stylePub(el, data) { 8718 tram(el).set(tramify(data)); 8719 } // Build a clean object for tram 8720 8721 8722 function tramify(obj, meta) { 8723 var omit3d = meta && meta.omit3d; 8724 var result = {}; 8725 var found = false; 8726 8727 for (var key in obj) { 8728 if (key === 'transition') { 8729 continue; 8730 } 8731 8732 if (key === 'keysort') { 8733 continue; 8734 } 8735 8736 if (omit3d) { 8737 if (key === 'z' || key === 'rotateX' || key === 'rotateY' || key === 'scaleZ') { 8738 continue; 8739 } 8740 } 8741 8742 result[key] = obj[key]; 8743 found = true; 8744 } // If empty, return null for tram.set/stop compliance 8745 8746 8747 return found ? result : null; 8748 } // Export module 8749 8750 8751 return api; 8752}); 8753 8754/***/ }), 8755/* 125 */ 8756/***/ (function(module, exports, __webpack_require__) { 8757 8758"use strict"; 8759 // @wf-will-never-add-flow-to-this-file 8760 8761/* eslint-disable no-var */ 8762 8763/** 8764 * Webflow: Interactions 2 8765 */ 8766 8767var Webflow = __webpack_require__(5); 8768 8769var ix2 = __webpack_require__(126); 8770 8771ix2.setEnv(Webflow.env); 8772Webflow.define('ix2', module.exports = function () { 8773 return ix2; 8774}); 8775 8776/***/ }), 8777/* 126 */ 8778/***/ (function(module, exports, __webpack_require__) { 8779 8780"use strict"; 8781 8782 8783var _interopRequireWildcard = __webpack_require__(13); 8784 8785var _interopRequireDefault = __webpack_require__(0); 8786 8787Object.defineProperty(exports, "__esModule", { 8788 value: true 8789}); 8790exports.setEnv = setEnv; 8791exports.init = init; 8792exports.destroy = destroy; 8793exports.actions = exports.store = void 0; 8794 8795__webpack_require__(127); 8796 8797var _redux = __webpack_require__(79); 8798 8799var _IX2Reducer = _interopRequireDefault(__webpack_require__(168)); 8800 8801var _IX2VanillaEngine = __webpack_require__(115); 8802 8803var actions = _interopRequireWildcard(__webpack_require__(62)); 8804 8805exports.actions = actions; // Array.includes needed for IE11 @packages/systems/ix2/shared/utils/quick-effects 8806 8807var store = (0, _redux.createStore)(_IX2Reducer["default"]); 8808exports.store = store; 8809 8810function setEnv(env) { 8811 if (env()) { 8812 (0, _IX2VanillaEngine.observeRequests)(store); 8813 } 8814} 8815 8816function init(rawData) { 8817 destroy(); 8818 (0, _IX2VanillaEngine.startEngine)({ 8819 store: store, 8820 rawData: rawData, 8821 allowEvents: true 8822 }); 8823} 8824 8825function destroy() { 8826 (0, _IX2VanillaEngine.stopEngine)(store); 8827} 8828 8829/***/ }), 8830/* 127 */ 8831/***/ (function(module, exports, __webpack_require__) { 8832 8833module.exports = __webpack_require__(128); 8834 8835 8836/***/ }), 8837/* 128 */ 8838/***/ (function(module, exports, __webpack_require__) { 8839 8840__webpack_require__(129); 8841var entryUnbind = __webpack_require__(154); 8842 8843module.exports = entryUnbind('Array', 'includes'); 8844 8845 8846/***/ }), 8847/* 129 */ 8848/***/ (function(module, exports, __webpack_require__) { 8849 8850"use strict"; 8851 8852var $ = __webpack_require__(130); 8853var $includes = __webpack_require__(77).includes; 8854var addToUnscopables = __webpack_require__(147); 8855 8856// `Array.prototype.includes` method 8857// https://tc39.github.io/ecma262/#sec-array.prototype.includes 8858$({ target: 'Array', proto: true }, { 8859 includes: function includes(el /* , fromIndex = 0 */) { 8860 return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined); 8861 } 8862}); 8863 8864// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 8865addToUnscopables('includes'); 8866 8867 8868/***/ }), 8869/* 130 */ 8870/***/ (function(module, exports, __webpack_require__) { 8871 8872var global = __webpack_require__(3); 8873var getOwnPropertyDescriptor = __webpack_require__(67).f; 8874var hide = __webpack_require__(17); 8875var redefine = __webpack_require__(135); 8876var setGlobal = __webpack_require__(41); 8877var copyConstructorProperties = __webpack_require__(139); 8878var isForced = __webpack_require__(146); 8879 8880/* 8881 options.target - name of the target object 8882 options.global - target is the global object 8883 options.stat - export as static methods of target 8884 options.proto - export as prototype methods of target 8885 options.real - real prototype method for the `pure` version 8886 options.forced - export even if the native feature is available
vendor: 4,140 bytes, lines 8887-9012
8887 options.bind - bind methods to the target, required for the `pure` version 8888 options.wrap - wrap constructors to preventing global pollution, required for the `pure` version 8889 options.unsafe - use the simple assignment of property instead of delete + defineProperty 8890 options.sham - add a flag to not completely full polyfills 8891 options.enumerable - export as enumerable property 8892 options.noTargetGet - prevent calling a getter on target 8893*/ 8894module.exports = function (options, source) { 8895 var TARGET = options.target; 8896 var GLOBAL = options.global; 8897 var STATIC = options.stat; 8898 var FORCED, target, key, targetProperty, sourceProperty, descriptor; 8899 if (GLOBAL) { 8900 target = global; 8901 } else if (STATIC) { 8902 target = global[TARGET] || setGlobal(TARGET, {}); 8903 } else { 8904 target = (global[TARGET] || {}).prototype; 8905 } 8906 if (target) for (key in source) { 8907 sourceProperty = source[key]; 8908 if (options.noTargetGet) { 8909 descriptor = getOwnPropertyDescriptor(target, key); 8910 targetProperty = descriptor && descriptor.value; 8911 } else targetProperty = target[key]; 8912 FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced); 8913 // contained in target 8914 if (!FORCED && targetProperty !== undefined) { 8915 if (typeof sourceProperty === typeof targetProperty) continue; 8916 copyConstructorProperties(sourceProperty, targetProperty); 8917 } 8918 // add a flag to not completely full polyfills 8919 if (options.sham || (targetProperty && targetProperty.sham)) { 8920 hide(sourceProperty, 'sham', true); 8921 } 8922 // extend global 8923 redefine(target, key, sourceProperty, options); 8924 } 8925}; 8926 8927 8928/***/ }), 8929/* 131 */ 8930/***/ (function(module, exports, __webpack_require__) { 8931 8932"use strict"; 8933 8934var nativePropertyIsEnumerable = {}.propertyIsEnumerable; 8935var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor; 8936 8937// Nashorn ~ JDK8 bug 8938var NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1); 8939 8940// `Object.prototype.propertyIsEnumerable` method implementation 8941// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable 8942exports.f = NASHORN_BUG ? function propertyIsEnumerable(V) { 8943 var descriptor = getOwnPropertyDescriptor(this, V); 8944 return !!descriptor && descriptor.enumerable; 8945} : nativePropertyIsEnumerable; 8946 8947 8948/***/ }), 8949/* 132 */ 8950/***/ (function(module, exports, __webpack_require__) { 8951 8952var fails = __webpack_require__(15); 8953var classof = __webpack_require__(133); 8954 8955var split = ''.split; 8956 8957// fallback for non-array-like ES3 and non-enumerable old V8 strings 8958module.exports = fails(function () { 8959 // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346 8960 // eslint-disable-next-line no-prototype-builtins 8961 return !Object('z').propertyIsEnumerable(0); 8962}) ? function (it) { 8963 return classof(it) == 'String' ? split.call(it, '') : Object(it); 8964} : Object; 8965 8966 8967/***/ }), 8968/* 133 */ 8969/***/ (function(module, exports) { 8970 8971var toString = {}.toString; 8972 8973module.exports = function (it) { 8974 return toString.call(it).slice(8, -1); 8975}; 8976 8977 8978/***/ }), 8979/* 134 */ 8980/***/ (function(module, exports) { 8981 8982// `RequireObjectCoercible` abstract operation 8983// https://tc39.github.io/ecma262/#sec-requireobjectcoercible 8984module.exports = function (it) { 8985 if (it == undefined) throw TypeError("Can't call method on " + it); 8986 return it; 8987}; 8988 8989 8990/***/ }), 8991/* 135 */ 8992/***/ (function(module, exports, __webpack_require__) { 8993 8994var global = __webpack_require__(3); 8995var shared = __webpack_require__(25); 8996var hide = __webpack_require__(17); 8997var has = __webpack_require__(16); 8998var setGlobal = __webpack_require__(41); 8999var nativeFunctionToString = __webpack_require__(72); 9000var InternalStateModule = __webpack_require__(137); 9001 9002var getInternalState = InternalStateModule.get; 9003var enforceInternalState = InternalStateModule.enforce; 9004var TEMPLATE = String(nativeFunctionToString).split('toString'); 9005 9006shared('inspectSource', function (it) { 9007 return nativeFunctionToString.call(it); 9008}); 9009 9010(module.exports = function (O, key, value, options) { 9011 var unsafe = options ? !!options.unsafe : false; 9012 var simple = options ? !!options.enumerable : false;
vendor: 10,923 bytes, lines 9013-9421
9013 var noTargetGet = options ? !!options.noTargetGet : false; 9014 if (typeof value == 'function') { 9015 if (typeof key == 'string' && !has(value, 'name')) hide(value, 'name', key); 9016 enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : ''); 9017 } 9018 if (O === global) { 9019 if (simple) O[key] = value; 9020 else setGlobal(key, value); 9021 return; 9022 } else if (!unsafe) { 9023 delete O[key]; 9024 } else if (!noTargetGet && O[key]) { 9025 simple = true; 9026 } 9027 if (simple) O[key] = value; 9028 else hide(O, key, value); 9029// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative 9030})(Function.prototype, 'toString', function toString() { 9031 return typeof this == 'function' && getInternalState(this).source || nativeFunctionToString.call(this); 9032}); 9033 9034 9035/***/ }), 9036/* 136 */ 9037/***/ (function(module, exports) { 9038 9039module.exports = false; 9040 9041 9042/***/ }), 9043/* 137 */ 9044/***/ (function(module, exports, __webpack_require__) { 9045 9046var NATIVE_WEAK_MAP = __webpack_require__(138); 9047var global = __webpack_require__(3); 9048var isObject = __webpack_require__(23); 9049var hide = __webpack_require__(17); 9050var objectHas = __webpack_require__(16); 9051var sharedKey = __webpack_require__(73); 9052var hiddenKeys = __webpack_require__(42); 9053 9054var WeakMap = global.WeakMap; 9055var set, get, has; 9056 9057var enforce = function (it) { 9058 return has(it) ? get(it) : set(it, {}); 9059}; 9060 9061var getterFor = function (TYPE) { 9062 return function (it) { 9063 var state; 9064 if (!isObject(it) || (state = get(it)).type !== TYPE) { 9065 throw TypeError('Incompatible receiver, ' + TYPE + ' required'); 9066 } return state; 9067 }; 9068}; 9069 9070if (NATIVE_WEAK_MAP) { 9071 var store = new WeakMap(); 9072 var wmget = store.get; 9073 var wmhas = store.has; 9074 var wmset = store.set; 9075 set = function (it, metadata) { 9076 wmset.call(store, it, metadata); 9077 return metadata; 9078 }; 9079 get = function (it) { 9080 return wmget.call(store, it) || {}; 9081 }; 9082 has = function (it) { 9083 return wmhas.call(store, it); 9084 }; 9085} else { 9086 var STATE = sharedKey('state'); 9087 hiddenKeys[STATE] = true; 9088 set = function (it, metadata) { 9089 hide(it, STATE, metadata); 9090 return metadata; 9091 }; 9092 get = function (it) { 9093 return objectHas(it, STATE) ? it[STATE] : {}; 9094 }; 9095 has = function (it) { 9096 return objectHas(it, STATE); 9097 }; 9098} 9099 9100module.exports = { 9101 set: set, 9102 get: get, 9103 has: has, 9104 enforce: enforce, 9105 getterFor: getterFor 9106}; 9107 9108 9109/***/ }), 9110/* 138 */ 9111/***/ (function(module, exports, __webpack_require__) { 9112 9113var global = __webpack_require__(3); 9114var nativeFunctionToString = __webpack_require__(72); 9115 9116var WeakMap = global.WeakMap; 9117 9118module.exports = typeof WeakMap === 'function' && /native code/.test(nativeFunctionToString.call(WeakMap)); 9119 9120 9121/***/ }), 9122/* 139 */ 9123/***/ (function(module, exports, __webpack_require__) { 9124 9125var has = __webpack_require__(16); 9126var ownKeys = __webpack_require__(140); 9127var getOwnPropertyDescriptorModule = __webpack_require__(67); 9128var definePropertyModule = __webpack_require__(40); 9129 9130module.exports = function (target, source) { 9131 var keys = ownKeys(source); 9132 var defineProperty = definePropertyModule.f; 9133 var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f; 9134 for (var i = 0; i < keys.length; i++) { 9135 var key = keys[i]; 9136 if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key)); 9137 } 9138}; 9139 9140 9141/***/ }), 9142/* 140 */ 9143/***/ (function(module, exports, __webpack_require__) { 9144 9145var getBuiltIn = __webpack_require__(75); 9146var getOwnPropertyNamesModule = __webpack_require__(142); 9147var getOwnPropertySymbolsModule = __webpack_require__(145); 9148var anObject = __webpack_require__(24); 9149 9150// all object keys, includes non-enumerable and symbols 9151module.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) { 9152 var keys = getOwnPropertyNamesModule.f(anObject(it)); 9153 var getOwnPropertySymbols = getOwnPropertySymbolsModule.f; 9154 return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys; 9155}; 9156 9157 9158/***/ }), 9159/* 141 */ 9160/***/ (function(module, exports, __webpack_require__) { 9161 9162module.exports = __webpack_require__(3); 9163 9164 9165/***/ }), 9166/* 142 */ 9167/***/ (function(module, exports, __webpack_require__) { 9168 9169var internalObjectKeys = __webpack_require__(76); 9170var enumBugKeys = __webpack_require__(43); 9171 9172var hiddenKeys = enumBugKeys.concat('length', 'prototype'); 9173 9174// `Object.getOwnPropertyNames` method 9175// https://tc39.github.io/ecma262/#sec-object.getownpropertynames 9176exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) { 9177 return internalObjectKeys(O, hiddenKeys); 9178}; 9179 9180 9181/***/ }), 9182/* 143 */ 9183/***/ (function(module, exports, __webpack_require__) { 9184 9185var toInteger = __webpack_require__(78); 9186 9187var min = Math.min; 9188 9189// `ToLength` abstract operation 9190// https://tc39.github.io/ecma262/#sec-tolength 9191module.exports = function (argument) { 9192 return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991 9193}; 9194 9195 9196/***/ }), 9197/* 144 */ 9198/***/ (function(module, exports, __webpack_require__) { 9199 9200var toInteger = __webpack_require__(78); 9201 9202var max = Math.max; 9203var min = Math.min; 9204 9205// Helper for a popular repeating case of the spec: 9206// Let integer be ? ToInteger(index). 9207// If integer < 0, let result be max((length + integer), 0); else let result be min(length, length). 9208module.exports = function (index, length) { 9209 var integer = toInteger(index); 9210 return integer < 0 ? max(integer + length, 0) : min(integer, length); 9211}; 9212 9213 9214/***/ }), 9215/* 145 */ 9216/***/ (function(module, exports) { 9217 9218exports.f = Object.getOwnPropertySymbols; 9219 9220 9221/***/ }), 9222/* 146 */ 9223/***/ (function(module, exports, __webpack_require__) { 9224 9225var fails = __webpack_require__(15); 9226 9227var replacement = /#|\.prototype\./; 9228 9229var isForced = function (feature, detection) { 9230 var value = data[normalize(feature)]; 9231 return value == POLYFILL ? true 9232 : value == NATIVE ? false 9233 : typeof detection == 'function' ? fails(detection) 9234 : !!detection; 9235}; 9236 9237var normalize = isForced.normalize = function (string) { 9238 return String(string).replace(replacement, '.').toLowerCase(); 9239}; 9240 9241var data = isForced.data = {}; 9242var NATIVE = isForced.NATIVE = 'N'; 9243var POLYFILL = isForced.POLYFILL = 'P'; 9244 9245module.exports = isForced; 9246 9247 9248/***/ }), 9249/* 147 */ 9250/***/ (function(module, exports, __webpack_require__) { 9251 9252var wellKnownSymbol = __webpack_require__(148); 9253var create = __webpack_require__(150); 9254var hide = __webpack_require__(17); 9255 9256var UNSCOPABLES = wellKnownSymbol('unscopables'); 9257var ArrayPrototype = Array.prototype; 9258 9259// Array.prototype[@@unscopables] 9260// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables 9261if (ArrayPrototype[UNSCOPABLES] == undefined) { 9262 hide(ArrayPrototype, UNSCOPABLES, create(null)); 9263} 9264 9265// add a key to Array.prototype[@@unscopables] 9266module.exports = function (key) { 9267 ArrayPrototype[UNSCOPABLES][key] = true; 9268}; 9269 9270 9271/***/ }), 9272/* 148 */ 9273/***/ (function(module, exports, __webpack_require__) { 9274 9275var global = __webpack_require__(3); 9276var shared = __webpack_require__(25); 9277var uid = __webpack_require__(74); 9278var NATIVE_SYMBOL = __webpack_require__(149); 9279 9280var Symbol = global.Symbol; 9281var store = shared('wks'); 9282 9283module.exports = function (name) { 9284 return store[name] || (store[name] = NATIVE_SYMBOL && Symbol[name] 9285 || (NATIVE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 9286}; 9287 9288 9289/***/ }), 9290/* 149 */ 9291/***/ (function(module, exports, __webpack_require__) { 9292 9293var fails = __webpack_require__(15); 9294 9295module.exports = !!Object.getOwnPropertySymbols && !fails(function () { 9296 // Chrome 38 Symbol has incorrect toString conversion 9297 // eslint-disable-next-line no-undef 9298 return !String(Symbol()); 9299}); 9300 9301 9302/***/ }), 9303/* 150 */ 9304/***/ (function(module, exports, __webpack_require__) { 9305 9306var anObject = __webpack_require__(24); 9307var defineProperties = __webpack_require__(151); 9308var enumBugKeys = __webpack_require__(43); 9309var hiddenKeys = __webpack_require__(42); 9310var html = __webpack_require__(153); 9311var documentCreateElement = __webpack_require__(71); 9312var sharedKey = __webpack_require__(73); 9313var IE_PROTO = sharedKey('IE_PROTO'); 9314 9315var PROTOTYPE = 'prototype'; 9316var Empty = function () { /* empty */ }; 9317 9318// Create object with fake `null` prototype: use iframe Object with cleared prototype 9319var createDict = function () { 9320 // Thrash, waste and sodomy: IE GC bug 9321 var iframe = documentCreateElement('iframe'); 9322 var length = enumBugKeys.length; 9323 var lt = '<'; 9324 var script = 'script'; 9325 var gt = '>'; 9326 var js = 'java' + script + ':'; 9327 var iframeDocument; 9328 iframe.style.display = 'none'; 9329 html.appendChild(iframe); 9330 iframe.src = String(js); 9331 iframeDocument = iframe.contentWindow.document; 9332 iframeDocument.open(); 9333 iframeDocument.write(lt + script + gt + 'document.F=Object' + lt + '/' + script + gt); 9334 iframeDocument.close(); 9335 createDict = iframeDocument.F; 9336 while (length--) delete createDict[PROTOTYPE][enumBugKeys[length]]; 9337 return createDict(); 9338}; 9339 9340// `Object.create` method 9341// https://tc39.github.io/ecma262/#sec-object.create 9342module.exports = Object.create || function create(O, Properties) { 9343 var result; 9344 if (O !== null) { 9345 Empty[PROTOTYPE] = anObject(O); 9346 result = new Empty(); 9347 Empty[PROTOTYPE] = null; 9348 // add "__proto__" for Object.getPrototypeOf polyfill 9349 result[IE_PROTO] = O; 9350 } else result = createDict(); 9351 return Properties === undefined ? result : defineProperties(result, Properties); 9352}; 9353 9354hiddenKeys[IE_PROTO] = true; 9355 9356 9357/***/ }), 9358/* 151 */ 9359/***/ (function(module, exports, __webpack_require__) { 9360 9361var DESCRIPTORS = __webpack_require__(14); 9362var definePropertyModule = __webpack_require__(40); 9363var anObject = __webpack_require__(24); 9364var objectKeys = __webpack_require__(152); 9365 9366// `Object.defineProperties` method 9367// https://tc39.github.io/ecma262/#sec-object.defineproperties 9368module.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) { 9369 anObject(O); 9370 var keys = objectKeys(Properties); 9371 var length = keys.length; 9372 var index = 0; 9373 var key; 9374 while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]); 9375 return O; 9376}; 9377 9378 9379/***/ }), 9380/* 152 */ 9381/***/ (function(module, exports, __webpack_require__) { 9382 9383var internalObjectKeys = __webpack_require__(76); 9384var enumBugKeys = __webpack_require__(43); 9385 9386// `Object.keys` method 9387// https://tc39.github.io/ecma262/#sec-object.keys 9388module.exports = Object.keys || function keys(O) { 9389 return internalObjectKeys(O, enumBugKeys); 9390}; 9391 9392 9393/***/ }), 9394/* 153 */ 9395/***/ (function(module, exports, __webpack_require__) { 9396 9397var getBuiltIn = __webpack_require__(75); 9398 9399module.exports = getBuiltIn('document', 'documentElement'); 9400 9401 9402/***/ }), 9403/* 154 */ 9404/***/ (function(module, exports, __webpack_require__) { 9405 9406var global = __webpack_require__(3); 9407var bind = __webpack_require__(155); 9408 9409var call = Function.call; 9410 9411module.exports = function (CONSTRUCTOR, METHOD, length) { 9412 return bind(call, global[CONSTRUCTOR].prototype[METHOD], length); 9413}; 9414 9415 9416/***/ }), 9417/* 155 */ 9418/***/ (function(module, exports, __webpack_require__) { 9419 9420var aFunction = __webpack_require__(156); 9421
9422// optional / simple context binding 9423module.exports = function (fn, that, length) { 9424 aFunction(fn); 9425 if (that === undefined) return fn; 9426 switch (length) { 9427 case 0: return function () { 9428 return fn.call(that); 9429 }; 9430 case 1: return function (a) { 9431 return fn.call(that, a); 9432 }; 9433 case 2: return function (a, b) { 9434 return fn.call(that, a, b); 9435 }; 9436 case 3: return function (a, b, c) { 9437 return fn.call(that, a, b, c); 9438 }; 9439 } 9440 return function (/* ...args */) { 9441 return fn.apply(that, arguments); 9442 }; 9443}; 9444 9445 9446/***/ }), 9447/* 156 */ 9448/***/ (function(module, exports) { 9449 9450module.exports = function (it) { 9451 if (typeof it != 'function') { 9452 throw TypeError(String(it) + ' is not a function'); 9453 } return it; 9454}; 9455 9456 9457/***/ }), 9458/* 157 */ 9459/***/ (function(module, __webpack_exports__, __webpack_require__) { 9460 9461"use strict"; 9462__webpack_require__.r(__webpack_exports__); 9463/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81); 9464/* harmony import */ var _getRawTag_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(160); 9465/* harmony import */ var _objectToString_js__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(161); 9466 9467 9468 9469 9470/** `Object#toString` result references. */ 9471var nullTag = '[object Null]', 9472 undefinedTag = '[object Undefined]'; 9473 9474/** Built-in value references. */ 9475var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 9476 9477/** 9478 * The base implementation of `getTag` without fallbacks for buggy environments. 9479 * 9480 * @private 9481 * @param {*} value The value to query. 9482 * @returns {string} Returns the `toStringTag`. 9483 */ 9484function baseGetTag(value) { 9485 if (value == null) { 9486 return value === undefined ? undefinedTag : nullTag; 9487 } 9488 return (symToStringTag && symToStringTag in Object(value)) 9489 ? Object(_getRawTag_js__WEBPACK_IMPORTED_MODULE_1__["default"])(value) 9490 : Object(_objectToString_js__WEBPACK_IMPORTED_MODULE_2__["default"])(value); 9491} 9492 9493/* harmony default export */ __webpack_exports__["default"] = (baseGetTag); 9494 9495 9496/***/ }), 9497/* 158 */ 9498/***/ (function(module, __webpack_exports__, __webpack_require__) { 9499 9500"use strict"; 9501__webpack_require__.r(__webpack_exports__); 9502/* harmony import */ var _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(159); 9503 9504 9505/** Detect free variable `self`. */ 9506var freeSelf = typeof self == 'object' && self && self.Object === Object && self; 9507 9508/** Used as a reference to the global object. */ 9509var root = _freeGlobal_js__WEBPACK_IMPORTED_MODULE_0__["default"] || freeSelf || Function('return this')(); 9510 9511/* harmony default export */ __webpack_exports__["default"] = (root); 9512 9513 9514/***/ }), 9515/* 159 */ 9516/***/ (function(module, __webpack_exports__, __webpack_require__) { 9517 9518"use strict"; 9519__webpack_require__.r(__webpack_exports__); 9520/* WEBPACK VAR INJECTION */(function(global) {/** Detect free variable `global` from Node.js. */ 9521var freeGlobal = typeof global == 'object' && global && global.Object === Object && global; 9522 9523/* harmony default export */ __webpack_exports__["default"] = (freeGlobal); 9524 9525/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22))) 9526 9527/***/ }), 9528/* 160 */ 9529/***/ (function(module, __webpack_exports__, __webpack_require__) { 9530 9531"use strict"; 9532__webpack_require__.r(__webpack_exports__); 9533/* harmony import */ var _Symbol_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(81); 9534 9535 9536/** Used for built-in method references. */ 9537var objectProto = Object.prototype; 9538 9539/** Used to check objects for own properties. */ 9540var hasOwnProperty = objectProto.hasOwnProperty; 9541 9542/** 9543 * Used to resolve the 9544 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 9545 * of values. 9546 */ 9547var nativeObjectToString = objectProto.toString; 9548 9549/** Built-in value references. */ 9550var symToStringTag = _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"] ? _Symbol_js__WEBPACK_IMPORTED_MODULE_0__["default"].toStringTag : undefined; 9551 9552/** 9553 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 9554 * 9555 * @private 9556 * @param {*} value The value to query. 9557 * @returns {string} Returns the raw `toStringTag`. 9558 */ 9559function getRawTag(value) { 9560 var isOwn = hasOwnProperty.call(value, symToStringTag), 9561 tag = value[symToStringTag]; 9562 9563 try { 9564 value[symToStringTag] = undefined; 9565 var unmasked = true; 9566 } catch (e) {} 9567 9568 var result = nativeObjectToString.call(value); 9569 if (unmasked) { 9570 if (isOwn) { 9571 value[symToStringTag] = tag; 9572 } else { 9573 delete value[symToStringTag]; 9574 } 9575 } 9576 return result; 9577} 9578 9579/* harmony default export */ __webpack_exports__["default"] = (getRawTag); 9580 9581 9582/***/ }), 9583/* 161 */ 9584/***/ (function(module, __webpack_exports__, __webpack_require__) { 9585 9586"use strict"; 9587__webpack_require__.r(__webpack_exports__); 9588/** Used for built-in method references. */ 9589var objectProto = Object.prototype; 9590 9591/** 9592 * Used to resolve the 9593 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 9594 * of values. 9595 */ 9596var nativeObjectToString = objectProto.toString; 9597 9598/** 9599 * Converts `value` to a string using `Object.prototype.toString`. 9600 * 9601 * @private 9602 * @param {*} value The value to convert. 9603 * @returns {string} Returns the converted string. 9604 */ 9605function objectToString(value) { 9606 return nativeObjectToString.call(value); 9607} 9608 9609/* harmony default export */ __webpack_exports__["default"] = (objectToString); 9610 9611 9612/***/ }), 9613/* 162 */ 9614/***/ (function(module, __webpack_exports__, __webpack_require__) { 9615 9616"use strict"; 9617__webpack_require__.r(__webpack_exports__); 9618/* harmony import */ var _overArg_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(163); 9619 9620
9621/** Built-in value references. */ 9622var getPrototype = Object(_overArg_js__WEBPACK_IMPORTED_MODULE_0__["default"])(Object.getPrototypeOf, Object); 9623 9624/* harmony default export */ __webpack_exports__["default"] = (getPrototype); 9625 9626 9627/***/ }), 9628/* 163 */ 9629/***/ (function(module, __webpack_exports__, __webpack_require__) { 9630 9631"use strict"; 9632__webpack_require__.r(__webpack_exports__); 9633/** 9634 * Creates a unary function that invokes `func` with its argument transformed. 9635 * 9636 * @private 9637 * @param {Function} func The function to wrap. 9638 * @param {Function} transform The argument transform. 9639 * @returns {Function} Returns the new function. 9640 */ 9641function overArg(func, transform) { 9642 return function(arg) { 9643 return func(transform(arg)); 9644 }; 9645} 9646 9647/* harmony default export */ __webpack_exports__["default"] = (overArg); 9648 9649 9650/***/ }), 9651/* 164 */ 9652/***/ (function(module, __webpack_exports__, __webpack_require__) { 9653 9654"use strict"; 9655__webpack_require__.r(__webpack_exports__); 9656/** 9657 * Checks if `value` is object-like. A value is object-like if it's not `null` 9658 * and has a `typeof` result of "object". 9659 * 9660 * @static 9661 * @memberOf _ 9662 * @since 4.0.0 9663 * @category Lang 9664 * @param {*} value The value to check. 9665 * @returns {boolean} Returns `true` if `value` is object-like, else `false`. 9666 * @example 9667 * 9668 * _.isObjectLike({}); 9669 * // => true 9670 * 9671 * _.isObjectLike([1, 2, 3]); 9672 * // => true 9673 * 9674 * _.isObjectLike(_.noop); 9675 * // => false 9676 * 9677 * _.isObjectLike(null); 9678 * // => false 9679 */ 9680function isObjectLike(value) { 9681 return value != null && typeof value == 'object'; 9682} 9683 9684/* harmony default export */ __webpack_exports__["default"] = (isObjectLike); 9685 9686 9687/***/ }), 9688/* 165 */ 9689/***/ (function(module, __webpack_exports__, __webpack_require__) { 9690 9691"use strict"; 9692__webpack_require__.r(__webpack_exports__); 9693/* WEBPACK VAR INJECTION */(function(global, module) {/* harmony import */ var _ponyfill_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(167); 9694/* global window */ 9695 9696 9697var root; 9698 9699if (typeof self !== 'undefined') { 9700 root = self; 9701} else if (typeof window !== 'undefined') { 9702 root = window; 9703} else if (typeof global !== 'undefined') { 9704 root = global; 9705} else if (true) { 9706 root = module; 9707} else {} 9708 9709var result = Object(_ponyfill_js__WEBPACK_IMPORTED_MODULE_0__["default"])(root); 9710/* harmony default export */ __webpack_exports__["default"] = (result); 9711 9712/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(22), __webpack_require__(166)(module))) 9713 9714/***/ }), 9715/* 166 */ 9716/***/ (function(module, exports) { 9717 9718module.exports = function(originalModule) { 9719 if (!originalModule.webpackPolyfill) { 9720 var module = Object.create(originalModule); 9721 // module.parent = undefined by default 9722 if (!module.children) module.children = []; 9723 Object.defineProperty(module, "loaded", { 9724 enumerable: true, 9725 get: function() { 9726 return module.l; 9727 } 9728 }); 9729 Object.defineProperty(module, "id", { 9730 enumerable: true, 9731 get: function() { 9732 return module.i; 9733 } 9734 }); 9735 Object.defineProperty(module, "exports", { 9736 enumerable: true 9737 }); 9738 module.webpackPolyfill = 1; 9739 } 9740 return module; 9741}; 9742 9743 9744/***/ }), 9745/* 167 */ 9746/***/ (function(module, __webpack_exports__, __webpack_require__) { 9747 9748"use strict"; 9749__webpack_require__.r(__webpack_exports__); 9750/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "default", function() { return symbolObservablePonyfill; }); 9751function symbolObservablePonyfill(root) { 9752 var result; 9753 var Symbol = root.Symbol; 9754 9755 if (typeof Symbol === 'function') { 9756 if (Symbol.observable) { 9757 result = Symbol.observable; 9758 } else { 9759 result = Symbol('observable'); 9760 Symbol.observable = result; 9761 } 9762 } else { 9763 result = '@@observable'; 9764 } 9765 9766 return result; 9767}; 9768 9769 9770/***/ }), 9771/* 168 */ 9772/***/ (function(module, exports, __webpack_require__) { 9773 9774"use strict"; 9775 9776 9777Object.defineProperty(exports, "__esModule", { 9778 value: true 9779}); 9780exports["default"] = void 0; 9781 9782var _redux = __webpack_require__(79); 9783 9784var _IX2DataReducer = __webpack_require__(169); 9785 9786var _IX2RequestReducer = __webpack_require__(175); 9787 9788var _IX2SessionReducer = __webpack_require__(176); 9789 9790var _shared = __webpack_require__(10); 9791 9792var _IX2InstancesReducer = __webpack_require__(261); 9793 9794var _IX2ParametersReducer = __webpack_require__(262); 9795 9796var ixElements = _shared.IX2ElementsReducer.ixElements; 9797 9798var _default = (0, _redux.combineReducers)({ 9799 ixData: _IX2DataReducer.ixData, 9800 ixRequest: _IX2RequestReducer.ixRequest, 9801 ixSession: _IX2SessionReducer.ixSession,
9802 ixElements: ixElements, 9803 ixInstances: _IX2InstancesReducer.ixInstances, 9804 ixParameters: _IX2ParametersReducer.ixParameters 9805}); 9806 9807exports["default"] = _default; 9808 9809/***/ }), 9810/* 169 */ 9811/***/ (function(module, exports, __webpack_require__) { 9812 9813"use strict"; 9814 9815 9816Object.defineProperty(exports, "__esModule", { 9817 value: true 9818}); 9819exports.ixData = void 0; 9820 9821var _constants = __webpack_require__(2); 9822 9823var IX2_RAW_DATA_IMPORTED = _constants.IX2EngineActionTypes.IX2_RAW_DATA_IMPORTED; 9824 9825var ixData = function ixData() { 9826 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 9827 var action = arguments.length > 1 ? arguments[1] : undefined; 9828 9829 switch (action.type) { 9830 case IX2_RAW_DATA_IMPORTED: 9831 { 9832 return action.payload.ixData || Object.freeze({}); 9833 } 9834 9835 default: 9836 { 9837 return state; 9838 } 9839 } 9840}; 9841 9842exports.ixData = ixData; 9843 9844/***/ }), 9845/* 170 */ 9846/***/ (function(module, exports, __webpack_require__) { 9847 9848"use strict"; 9849 9850 9851Object.defineProperty(exports, "__esModule", { 9852 value: true 9853}); 9854exports.QuickEffectDirectionConsts = exports.QuickEffectIds = exports.EventLimitAffectedElements = exports.EventContinuousMouseAxes = exports.EventBasedOn = exports.EventAppliesTo = exports.EventTypeConsts = void 0; 9855/** 9856 * Event Type IDs 9857 */ 9858 9859var EventTypeConsts = { 9860 NAVBAR_OPEN: 'NAVBAR_OPEN', 9861 NAVBAR_CLOSE: 'NAVBAR_CLOSE', 9862 TAB_ACTIVE: 'TAB_ACTIVE', 9863 TAB_INACTIVE: 'TAB_INACTIVE', 9864 SLIDER_ACTIVE: 'SLIDER_ACTIVE', 9865 SLIDER_INACTIVE: 'SLIDER_INACTIVE', 9866 DROPDOWN_OPEN: 'DROPDOWN_OPEN', 9867 DROPDOWN_CLOSE: 'DROPDOWN_CLOSE', 9868 MOUSE_CLICK: 'MOUSE_CLICK', 9869 MOUSE_SECOND_CLICK: 'MOUSE_SECOND_CLICK', 9870 MOUSE_DOWN: 'MOUSE_DOWN', 9871 MOUSE_UP: 'MOUSE_UP', 9872 MOUSE_OVER: 'MOUSE_OVER', 9873 MOUSE_OUT: 'MOUSE_OUT', 9874 MOUSE_MOVE: 'MOUSE_MOVE', 9875 MOUSE_MOVE_IN_VIEWPORT: 'MOUSE_MOVE_IN_VIEWPORT', 9876 SCROLL_INTO_VIEW: 'SCROLL_INTO_VIEW', 9877 SCROLL_OUT_OF_VIEW: 'SCROLL_OUT_OF_VIEW', 9878 SCROLLING_IN_VIEW: 'SCROLLING_IN_VIEW', 9879 ECOMMERCE_CART_OPEN: 'ECOMMERCE_CART_OPEN', 9880 ECOMMERCE_CART_CLOSE: 'ECOMMERCE_CART_CLOSE', 9881 PAGE_START: 'PAGE_START', 9882 PAGE_FINISH: 'PAGE_FINISH', 9883 PAGE_SCROLL_UP: 'PAGE_SCROLL_UP', 9884 PAGE_SCROLL_DOWN: 'PAGE_SCROLL_DOWN', 9885 PAGE_SCROLL: 'PAGE_SCROLL' 9886}; 9887/** 9888 * Event Config Enums 9889 */ 9890 9891exports.EventTypeConsts = EventTypeConsts; 9892var EventAppliesTo = { 9893 ELEMENT: 'ELEMENT', 9894 CLASS: 'CLASS', 9895 PAGE: 'PAGE' 9896}; 9897exports.EventAppliesTo = EventAppliesTo; 9898var EventBasedOn = { 9899 ELEMENT: 'ELEMENT', 9900 VIEWPORT: 'VIEWPORT' 9901}; 9902exports.EventBasedOn = EventBasedOn; 9903var EventContinuousMouseAxes = { 9904 X_AXIS: 'X_AXIS', 9905 Y_AXIS: 'Y_AXIS' 9906}; 9907exports.EventContinuousMouseAxes = EventContinuousMouseAxes; 9908var EventLimitAffectedElements = { 9909 CHILDREN: 'CHILDREN', 9910 SIBLINGS: 'SIBLINGS', 9911 IMMEDIATE_CHILDREN: 'IMMEDIATE_CHILDREN' 9912}; 9913/** 9914 * Quick Effect Enums 9915 */ 9916 9917exports.EventLimitAffectedElements = EventLimitAffectedElements; 9918var QuickEffectIds = { 9919 FADE_EFFECT: 'FADE_EFFECT', 9920 SLIDE_EFFECT: 'SLIDE_EFFECT', 9921 GROW_EFFECT: 'GROW_EFFECT', 9922 SHRINK_EFFECT: 'SHRINK_EFFECT', 9923 SPIN_EFFECT: 'SPIN_EFFECT', 9924 FLY_EFFECT: 'FLY_EFFECT', 9925 POP_EFFECT: 'POP_EFFECT', 9926 FLIP_EFFECT: 'FLIP_EFFECT', 9927 JIGGLE_EFFECT: 'JIGGLE_EFFECT', 9928 PULSE_EFFECT: 'PULSE_EFFECT', 9929 DROP_EFFECT: 'DROP_EFFECT', 9930 BLINK_EFFECT: 'BLINK_EFFECT', 9931 BOUNCE_EFFECT: 'BOUNCE_EFFECT', 9932 FLIP_LEFT_TO_RIGHT_EFFECT: 'FLIP_LEFT_TO_RIGHT_EFFECT', 9933 FLIP_RIGHT_TO_LEFT_EFFECT: 'FLIP_RIGHT_TO_LEFT_EFFECT', 9934 RUBBER_BAND_EFFECT: 'RUBBER_BAND_EFFECT', 9935 JELLO_EFFECT: 'JELLO_EFFECT', 9936 GROW_BIG_EFFECT: 'GROW_BIG_EFFECT', 9937 SHRINK_BIG_EFFECT: 'SHRINK_BIG_EFFECT', 9938 PLUGIN_LOTTIE_EFFECT: 'PLUGIN_LOTTIE_EFFECT' 9939}; 9940/** 9941 * Quick Effect Direction Enums 9942 */ 9943 9944exports.QuickEffectIds = QuickEffectIds; 9945var QuickEffectDirectionConsts = { 9946 LEFT: 'LEFT', 9947 RIGHT: 'RIGHT', 9948 BOTTOM: 'BOTTOM', 9949 TOP: 'TOP', 9950 BOTTOM_LEFT: 'BOTTOM_LEFT', 9951 BOTTOM_RIGHT: 'BOTTOM_RIGHT', 9952 TOP_RIGHT: 'TOP_RIGHT', 9953 TOP_LEFT: 'TOP_LEFT', 9954 CLOCKWISE: 'CLOCKWISE', 9955 COUNTER_CLOCKWISE: 'COUNTER_CLOCKWISE' 9956}; 9957exports.QuickEffectDirectionConsts = QuickEffectDirectionConsts; 9958 9959/***/ }), 9960/* 171 */ 9961/***/ (function(module, exports, __webpack_require__) { 9962 9963"use strict"; 9964 9965 9966Object.defineProperty(exports, "__esModule", { 9967 value: true 9968}); 9969exports.ActionAppliesTo = exports.ActionTypeConsts = void 0; 9970var ActionTypeConsts = { 9971 TRANSFORM_MOVE: 'TRANSFORM_MOVE', 9972 TRANSFORM_SCALE: 'TRANSFORM_SCALE', 9973 TRANSFORM_ROTATE: 'TRANSFORM_ROTATE', 9974 TRANSFORM_SKEW: 'TRANSFORM_SKEW', 9975 STYLE_OPACITY: 'STYLE_OPACITY', 9976 STYLE_SIZE: 'STYLE_SIZE', 9977 STYLE_FILTER: 'STYLE_FILTER', 9978 STYLE_BACKGROUND_COLOR: 'STYLE_BACKGROUND_COLOR', 9979 STYLE_BORDER: 'STYLE_BORDER', 9980 STYLE_TEXT_COLOR: 'STYLE_TEXT_COLOR', 9981 PLUGIN_LOTTIE: 'PLUGIN_LOTTIE', 9982 GENERAL_DISPLAY: 'GENERAL_DISPLAY', 9983 GENERAL_START_ACTION: 'GENERAL_START_ACTION', 9984 GENERAL_CONTINUOUS_ACTION: 'GENERAL_CONTINUOUS_ACTION', 9985 // TODO: Clean these up below because they're not used at this time 9986 GENERAL_COMBO_CLASS: 'GENERAL_COMBO_CLASS', 9987 GENERAL_STOP_ACTION: 'GENERAL_STOP_ACTION', 9988 GENERAL_LOOP: 'GENERAL_LOOP', 9989 STYLE_BOX_SHADOW: 'STYLE_BOX_SHADOW' 9990}; 9991exports.ActionTypeConsts = ActionTypeConsts; 9992var ActionAppliesTo = { 9993 ELEMENT: 'ELEMENT', 9994 ELEMENT_CLASS: 'ELEMENT_CLASS', 9995 TRIGGER_ELEMENT: 'TRIGGER_ELEMENT' 9996}; 9997exports.ActionAppliesTo = ActionAppliesTo; 9998 9999/***/ }), 10000/* 172 */ 10001/***/ (function(module, exports, __webpack_require__) { 10002 10003"use strict"; 10004 10005 10006Object.defineProperty(exports, "__esModule", { 10007 value: true 10008}); 10009exports.InteractionTypeConsts = void 0; 10010var InteractionTypeConsts = { 10011 MOUSE_CLICK_INTERACTION: 'MOUSE_CLICK_INTERACTION', 10012 MOUSE_HOVER_INTERACTION: 'MOUSE_HOVER_INTERACTION', 10013 MOUSE_MOVE_INTERACTION: 'MOUSE_MOVE_INTERACTION', 10014 SCROLL_INTO_VIEW_INTERACTION: 'SCROLL_INTO_VIEW_INTERACTION', 10015 SCROLLING_IN_VIEW_INTERACTION: 'SCROLLING_IN_VIEW_INTERACTION', 10016 MOUSE_MOVE_IN_VIEWPORT_INTERACTION: 'MOUSE_MOVE_IN_VIEWPORT_INTERACTION', 10017 PAGE_IS_SCROLLING_INTERACTION: 'PAGE_IS_SCROLLING_INTERACTION', 10018 PAGE_LOAD_INTERACTION: 'PAGE_LOAD_INTERACTION', 10019 PAGE_SCROLLED_INTERACTION: 'PAGE_SCROLLED_INTERACTION', 10020 NAVBAR_INTERACTION: 'NAVBAR_INTERACTION', 10021 DROPDOWN_INTERACTION: 'DROPDOWN_INTERACTION', 10022 ECOMMERCE_CART_INTERACTION: 'ECOMMERCE_CART_INTERACTION', 10023 TAB_INTERACTION: 'TAB_INTERACTION', 10024 SLIDER_INTERACTION: 'SLIDER_INTERACTION' 10025}; 10026exports.InteractionTypeConsts = InteractionTypeConsts; 10027 10028/***/ }), 10029/* 173 */ 10030/***/ (function(module, exports, __webpack_require__) { 10031 10032"use strict"; 10033 10034 10035Object.defineProperty(exports, "__esModule", { 10036 value: true 10037});
10038exports.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; 10039var IX2_RAW_DATA_IMPORTED = 'IX2_RAW_DATA_IMPORTED'; 10040exports.IX2_RAW_DATA_IMPORTED = IX2_RAW_DATA_IMPORTED; 10041var IX2_SESSION_INITIALIZED = 'IX2_SESSION_INITIALIZED'; 10042exports.IX2_SESSION_INITIALIZED = IX2_SESSION_INITIALIZED; 10043var IX2_SESSION_STARTED = 'IX2_SESSION_STARTED'; 10044exports.IX2_SESSION_STARTED = IX2_SESSION_STARTED; 10045var IX2_SESSION_STOPPED = 'IX2_SESSION_STOPPED'; 10046exports.IX2_SESSION_STOPPED = IX2_SESSION_STOPPED; 10047var IX2_PREVIEW_REQUESTED = 'IX2_PREVIEW_REQUESTED'; 10048exports.IX2_PREVIEW_REQUESTED = IX2_PREVIEW_REQUESTED; 10049var IX2_PLAYBACK_REQUESTED = 'IX2_PLAYBACK_REQUESTED'; 10050exports.IX2_PLAYBACK_REQUESTED = IX2_PLAYBACK_REQUESTED; 10051var IX2_STOP_REQUESTED = 'IX2_STOP_REQUESTED'; 10052exports.IX2_STOP_REQUESTED = IX2_STOP_REQUESTED; 10053var IX2_CLEAR_REQUESTED = 'IX2_CLEAR_REQUESTED'; 10054exports.IX2_CLEAR_REQUESTED = IX2_CLEAR_REQUESTED; 10055var IX2_EVENT_LISTENER_ADDED = 'IX2_EVENT_LISTENER_ADDED'; 10056exports.IX2_EVENT_LISTENER_ADDED = IX2_EVENT_LISTENER_ADDED; 10057var IX2_EVENT_STATE_CHANGED = 'IX2_EVENT_STATE_CHANGED'; 10058exports.IX2_EVENT_STATE_CHANGED = IX2_EVENT_STATE_CHANGED; 10059var IX2_ANIMATION_FRAME_CHANGED = 'IX2_ANIMATION_FRAME_CHANGED'; 10060exports.IX2_ANIMATION_FRAME_CHANGED = IX2_ANIMATION_FRAME_CHANGED; 10061var IX2_PARAMETER_CHANGED = 'IX2_PARAMETER_CHANGED'; 10062exports.IX2_PARAMETER_CHANGED = IX2_PARAMETER_CHANGED; 10063var IX2_INSTANCE_ADDED = 'IX2_INSTANCE_ADDED'; 10064exports.IX2_INSTANCE_ADDED = IX2_INSTANCE_ADDED; 10065var IX2_INSTANCE_STARTED = 'IX2_INSTANCE_STARTED'; 10066exports.IX2_INSTANCE_STARTED = IX2_INSTANCE_STARTED; 10067var IX2_INSTANCE_REMOVED = 'IX2_INSTANCE_REMOVED'; 10068exports.IX2_INSTANCE_REMOVED = IX2_INSTANCE_REMOVED; 10069var IX2_ELEMENT_STATE_CHANGED = 'IX2_ELEMENT_STATE_CHANGED'; 10070exports.IX2_ELEMENT_STATE_CHANGED = IX2_ELEMENT_STATE_CHANGED; 10071var IX2_ACTION_LIST_PLAYBACK_CHANGED = 'IX2_ACTION_LIST_PLAYBACK_CHANGED'; 10072exports.IX2_ACTION_LIST_PLAYBACK_CHANGED = IX2_ACTION_LIST_PLAYBACK_CHANGED; 10073var IX2_VIEWPORT_WIDTH_CHANGED = 'IX2_VIEWPORT_WIDTH_CHANGED'; 10074exports.IX2_VIEWPORT_WIDTH_CHANGED = IX2_VIEWPORT_WIDTH_CHANGED; 10075var IX2_MEDIA_QUERIES_DEFINED = 'IX2_MEDIA_QUERIES_DEFINED'; 10076exports.IX2_MEDIA_QUERIES_DEFINED = IX2_MEDIA_QUERIES_DEFINED; 10077var IX2_TEST_FRAME_RENDERED = 'IX2_TEST_FRAME_RENDERED'; 10078exports.IX2_TEST_FRAME_RENDERED = IX2_TEST_FRAME_RENDERED; 10079 10080/***/ }), 10081/* 174 */ 10082/***/ (function(module, exports, __webpack_require__) { 10083 10084"use strict"; 10085 10086 10087Object.defineProperty(exports, "__esModule", { 10088 value: true 10089}); 10090exports.RENDER_PLUGIN = exports.RENDER_STYLE = exports.RENDER_GENERAL = exports.RENDER_TRANSFORM = exp
10090orts.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; 10091var IX2_ID_DELIMITER = '|'; 10092exports.IX2_ID_DELIMITER = IX2_ID_DELIMITER; 10093var WF_PAGE = 'data-wf-page'; 10094exports.WF_PAGE = WF_PAGE; 10095var W_MOD_JS = 'w-mod-js'; 10096exports.W_MOD_JS = W_MOD_JS; 10097var W_MOD_IX = 'w-mod-ix'; 10098exports.W_MOD_IX = W_MOD_IX; 10099var BOUNDARY_SELECTOR = '.w-dyn-item'; 10100exports.BOUNDARY_SELECTOR = BOUNDARY_SELECTOR; 10101var CONFIG_X_VALUE = 'xValue'; 10102exports.CONFIG_X_VALUE = CONFIG_X_VALUE; 10103var CONFIG_Y_VALUE = 'yValue'; 10104exports.CONFIG_Y_VALUE = CONFIG_Y_VALUE; 10105var CONFIG_Z_VALUE = 'zValue'; 10106exports.CONFIG_Z_VALUE = CONFIG_Z_VALUE; 10107var CONFIG_VALUE = 'value'; 10108exports.CONFIG_VALUE = CONFIG_VALUE; 10109var CONFIG_X_UNIT = 'xUnit'; 10110exports.CONFIG_X_UNIT = CONFIG_X_UNIT; 10111var CONFIG_Y_UNIT = 'yUnit'; 10112exports.CONFIG_Y_UNIT = CONFIG_Y_UNIT; 10113var CONFIG_Z_UNIT = 'zUnit'; 10114exports.CONFIG_Z_UNIT = CONFIG_Z_UNIT; 10115var CONFIG_UNIT = 'unit'; 10116exports.CONFIG_UNIT = CONFIG_UNIT; 10117var TRANSFORM = 'transform'; 10118exports.TRANSFORM = TRANSFORM; 10119var TRANSLATE_X = 'translateX'; 10120exports.TRANSLATE_X = TRANSLATE_X; 10121var TRANSLATE_Y = 'translateY'; 10122exports.TRANSLATE_Y = TRANSLATE_Y; 10123var TRANSLATE_Z = 'translateZ'; 10124exports.TRANSLATE_Z = TRANSLATE_Z; 10125var TRANSLATE_3D = 'translate3d'; 10126exports.TRANSLATE_3D = TRANSLATE_3D; 10127var SCALE_X = 'scaleX'; 10128exports.SCALE_X = SCALE_X; 10129var SCALE_Y = 'scaleY'; 10130exports.SCALE_Y = SCALE_Y; 10131var SCALE_Z = 'scaleZ'; 10132exports.SCALE_Z = SCALE_Z; 10133var SCALE_3D = 'scale3d'; 10134exports.SCALE_3D = SCALE_3D; 10135var ROTATE_X = 'rotateX'; 10136exports.ROTATE_X = ROTATE_X; 10137var ROTATE_Y = 'rotateY'; 10138exports.ROTATE_Y = ROTATE_Y; 10139var ROTATE_Z = 'rotateZ'; 10140exports.ROTATE_Z = ROTATE_Z; 10141var SKEW = 'skew'; 10142exports.SKEW = SKEW; 10143var SKEW_X = 'skewX'; 10144exports.SKEW_X = SKEW_X; 10145var SKEW_Y = 'skewY'; 10146exports.SKEW_Y = SKEW_Y; 10147var OPACITY = 'opacity'; 10148exports.OPACITY = OPACITY; 10149var FILTER = 'filter'; 10150exports.FILTER = FILTER; 10151var WIDTH = 'width'; 10152exports.WIDTH = WIDTH; 10153var HEIGHT = 'height'; 10154exports.HEIGHT = HEIGHT; 10155var BACKGROUND_COLOR = 'backgroundColor'; 10156exports.BACKGROUND_COLOR = BACKGROUND_COLOR; 10157var BACKGROUND = 'background'; 10158exports.BACKGROUND = BACKGROUND; 10159var BORDER_COLOR = 'borderColor'; 10160exports.BORDER_COLOR = BORDER_COLOR; 10161var COLOR = 'color'; 10162exports.COLOR = COLOR; 10163var DISPLAY = 'display'; 10164exports.DISPLAY = DISPLAY; 10165var FLEX = 'flex'; 10166exports.FLEX = FLEX; 10167var WILL_CHANGE = 'willChange'; 10168exports.WILL_CHANGE = WILL_CHANGE; 10169var AUTO = 'AUTO'; 10170exports.AUTO = AUTO; 10171var COMMA_DELIMITER = ','; 10172exports.COMMA_DELIMITER = COMMA_DELIMITER; 10173var COLON_DELIMITER = ':'; 10174exports.COLON_DELIMITER = COLON_DELIMITER; 10175var BAR_DELIMITER = '|'; 10176exports.BAR_DELIMITER = BAR_DELIMITER; 10177var CHILDREN = 'CHILDREN'; 10178exports.CHILDREN = CHILDREN; 10179var IMMEDIATE_CHILDREN = 'IMMEDIATE_CHILDREN'; 10180exports.IMMEDIATE_CHILDREN = IMMEDIATE_CHILDREN; 10181var SIBLINGS = 'SIBLINGS'; 10182exports.SIBLINGS = SIBLINGS; 10183var PARENT = 'PARENT'; 10184exports.PARENT = PARENT; 10185var PRESERVE_3D = 'preserve-3d'; 10186exports.PRESERVE_3D = PRESERVE_3D; 10187var HTML_ELEMENT = 'HTML_ELEMENT'; 10188exports.HTML_ELEMENT = HTML_ELEMENT; 10189var PLAIN_OBJECT = 'PLAIN_OBJECT'; 10190exports.PLAIN_OBJECT = PLAIN_OBJECT; 10191var ABSTRACT_NODE = 'ABSTRACT_NODE'; 10192exports.ABSTRACT_NODE = ABSTRACT_NODE; 10193var RENDER_TRANSFORM = 'RENDER_TRANSFORM'; 10194exports.RENDER_TRANSFORM = RENDER_TRANSFORM; 10195var RENDER_GENERAL = 'RENDER_GENERAL'; 10196exports.RENDER_GENERAL = RENDER_GENERAL; 10197var RENDER_STYLE = 'RENDER_STYLE'; 10198exports.RENDER_STYLE = RENDER_STYLE; 10199var RENDER_PLUGIN = 'RENDER_PLUGIN'; 10200exports.RENDER_PLUGIN = RENDER_PLUGIN; 10201 10202/***/ }), 10203/* 175 */ 10204/***/ (function(module, exports, __webpack_require__) { 10205 10206"use strict"; 10207 10208 10209var _interopRequireDefault2 = __webpack_require__(0); 10210 10211var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 10212
10213var _Object$create; 10214 10215var _interopRequireDefault = __webpack_require__(0); 10216 10217Object.defineProperty(exports, "__esModule", { 10218 value: true 10219}); 10220exports.ixRequest = void 0; 10221 10222var _extends2 = _interopRequireDefault(__webpack_require__(27)); 10223 10224var _constants = __webpack_require__(2); 10225 10226var _timm = __webpack_require__(18); 10227 10228var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 10229 IX2_PREVIEW_REQUESTED = _constants$IX2EngineA.IX2_PREVIEW_REQUESTED, 10230 IX2_PLAYBACK_REQUESTED = _constants$IX2EngineA.IX2_PLAYBACK_REQUESTED, 10231 IX2_STOP_REQUESTED = _constants$IX2EngineA.IX2_STOP_REQUESTED, 10232 IX2_CLEAR_REQUESTED = _constants$IX2EngineA.IX2_CLEAR_REQUESTED; 10233var initialState = { 10234 preview: {}, 10235 playback: {}, 10236 stop: {}, 10237 clear: {} 10238}; 10239var stateKeys = Object.create(null, (_Object$create = {}, (0, _defineProperty2["default"])(_Object$create, IX2_PREVIEW_REQUESTED, { 10240 value: 'preview' 10241}), (0, _defineProperty2["default"])(_Object$create, IX2_PLAYBACK_REQUESTED, { 10242 value: 'playback' 10243}), (0, _defineProperty2["default"])(_Object$create, IX2_STOP_REQUESTED, { 10244 value: 'stop' 10245}), (0, _defineProperty2["default"])(_Object$create, IX2_CLEAR_REQUESTED, { 10246 value: 'clear' 10247}), _Object$create)); 10248 10249var ixRequest = function ixRequest() { 10250 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 10251 var action = arguments.length > 1 ? arguments[1] : undefined; 10252 10253 if (action.type in stateKeys) { 10254 var key = [stateKeys[action.type]]; 10255 return (0, _timm.setIn)(state, [key], (0, _extends2["default"])({}, action.payload)); 10256 } 10257 10258 return state; 10259}; 10260 10261exports.ixRequest = ixRequest; 10262 10263/***/ }), 10264/* 176 */ 10265/***/ (function(module, exports, __webpack_require__) { 10266 10267"use strict"; 10268 10269 10270Object.defineProperty(exports, "__esModule", { 10271 value: true 10272}); 10273exports.ixSession = void 0; 10274 10275var _constants = __webpack_require__(2); 10276 10277var _timm = __webpack_require__(18); 10278 10279var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 10280 IX2_SESSION_INITIALIZED = _constants$IX2EngineA.IX2_SESSION_INITIALIZED, 10281 IX2_SESSION_STARTED = _constants$IX2EngineA.IX2_SESSION_STARTED, 10282 IX2_TEST_FRAME_RENDERED = _constants$IX2EngineA.IX2_TEST_FRAME_RENDERED, 10283 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 10284 IX2_EVENT_LISTENER_ADDED = _constants$IX2EngineA.IX2_EVENT_LISTENER_ADDED, 10285 IX2_EVENT_STATE_CHANGED = _constants$IX2EngineA.IX2_EVENT_STATE_CHANGED, 10286 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED, 10287 IX2_ACTION_LIST_PLAYBACK_CHANGED = _constants$IX2EngineA.IX2_ACTION_LIST_PLAYBACK_CHANGED, 10288 IX2_VIEWPORT_WIDTH_CHANGED = _constants$IX2EngineA.IX2_VIEWPORT_WIDTH_CHANGED, 10289 IX2_MEDIA_QUERIES_DEFINED = _constants$IX2EngineA.IX2_MEDIA_QUERIES_DEFINED; 10290var initialState = { 10291 active: false, 10292 tick: 0, 10293 eventListeners: [], 10294 eventState: {}, 10295 playbackState: {}, 10296 viewportWidth: 0, 10297 mediaQueryKey: null, 10298 hasBoundaryNodes: false, 10299 hasDefinedMediaQueries: false 10300}; 10301var TEST_FRAME_STEPS_SIZE = 20; // $FlowFixMe 10302 10303var ixSession = function ixSession() { 10304 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 10305 var action = arguments.length > 1 ? arguments[1] : undefined; 10306 10307 switch (action.type) { 10308 case IX2_SESSION_INITIALIZED: 10309 { 10310 var hasBoundaryNodes = action.payload.hasBoundaryNodes; 10311 return (0, _timm.set)(state, 'hasBoundaryNodes', hasBoundaryNodes); 10312 } 10313 10314 case IX2_SESSION_STARTED: 10315 { 10316 return (0, _timm.set)(state, 'active', true); 10317 } 10318 10319 case IX2_TEST_FRAME_RENDERED: 10320 { 10321 var _action$payload$step = action.payload.step, 10322 step = _action$payload$step === void 0 ? TEST_FRAME_STEPS_SIZE : _action$payload$step; 10323 return (0, _timm.set)(state, 'tick', state.tick + step); 10324 } 10325 10326 case IX2_SESSION_STOPPED: 10327 { 10328 return initialState; 10329 } 10330 10331 case IX2_ANIMATION_FRAME_CHANGED: 10332 { 10333 var now = action.payload.now; 10334 return (0, _timm.set)(state, 'tick', now); 10335 } 10336 10337 case IX2_EVENT_LISTENER_ADDED: 10338 { 10339 var eventListeners = (0, _timm.addLast)(state.eventListeners, action.payload); 10340 return (0, _timm.set)(state, 'eventListeners', eventListeners); 10341 } 10342 10343 case IX2_EVENT_STATE_CHANGED: 10344 { 10345 var _action$payload = action.payload, 10346 stateKey = _action$payload.stateKey, 10347 newState = _action$payload.newState; 10348 return (0, _timm.setIn)(state, ['eventState', stateKey], newState); 10349 } 10350 10351 case IX2_ACTION_LIST_PLAYBACK_CHANGED: 10352 { 10353 var _action$payload2 = action.payload, 10354 actionListId = _action$payload2.actionListId, 10355 isPlaying = _action$payload2.isPlaying; 10356 return (0, _timm.setIn)(state, ['playbackState', actionListId], isPlaying); 10357 } 10358 10359 case IX2_VIEWPORT_WIDTH_CHANGED: 10360 { 10361 var _action$payload3 = action.payload, 10362 width = _action$payload3.width, 10363 mediaQueries = _action$payload3.mediaQueries; 10364 var mediaQueryCount = mediaQueries.length; 10365 var mediaQueryKey = null; 10366 10367 for (var i = 0; i < mediaQueryCount; i++) { 10368 var _mediaQueries$i = mediaQueries[i], 10369 key = _mediaQueries$i.key, 10370 min = _mediaQueries$i.min, 10371 max = _mediaQueries$i.max; 10372 10373 if (width >= min && width <= max) { 10374 mediaQueryKey = key; 10375 break; 10376 } 10377 } 10378 10379 return (0, _timm.merge)(state, { 10380 viewportWidth: width, 10381 mediaQueryKey: mediaQueryKey 10382 }); 10383 } 10384 10385 case IX2_MEDIA_QUERIES_DEFINED: 10386 { 10387 return (0, _timm.set)(state, 'hasDefinedMediaQueries', true); 10388 } 10389 10390 default: 10391 { 10392 return state; 10393 } 10394 } 10395}; 10396 10397exports.ixSession = ixSession; 10398 10399/***/ }), 10400/* 177 */ 10401/***/ (function(module, exports, __webpack_require__) { 10402 10403var baseIsMatch = __webpack_require__(178), 10404 getMatchData = __webpack_require__(230), 10405 matchesStrictComparable = __webpack_require__(102); 10406 10407/** 10408 * The base implementation of `_.matches` which doesn't clone `source`. 10409 * 10410 * @private 10411 * @param {Object} source The object of property values to match. 10412 * @returns {Function} Returns the new spec function. 10413 */ 10414function baseMatches(source) { 10415 var matchData = getMatchData(source); 10416 if (matchData.length == 1 && matchData[0][2]) { 10417 return matchesStrictComparable(matchData[0][0], matchData[0][1]); 10418 } 10419 return function(object) { 10420 return object === source || baseIsMatch(object, source, matchData); 10421 }; 10422} 10423 10424module.exports = baseMatches; 10425 10426 10427/***/ }), 10428/* 178 */ 10429/***/ (function(module, exports, __webpack_require__) { 10430 10431var Stack = __webpack_require__(88), 10432 baseIsEqual = __webpack_require__(92); 10433 10434/** Used to compose bitmasks for value comparisons. */ 10435var COMPARE_PARTIAL_FLAG = 1, 10436 COMPARE_UNORDERED_FLAG = 2; 10437 10438/** 10439 * The base implementation of `_.isMatch` without support for iteratee shorthands. 10440 * 10441 * @private 10442 * @param {Object} object The object to inspect. 10443 * @param {Object} source The object of property values to match. 10444 * @param {Array} matchData The property names, values, and compare flags to match. 10445 * @param {Function} [customizer] The function to customize comparisons. 10446 * @returns {boolean} Returns `true` if `object` is a match, else `false`. 10447 */ 10448function baseIsMatch(object, source, matchData, customizer) { 10449 var index = matchData.length, 10450 length = index, 10451 noCustomizer = !customizer; 10452 10453 if (object == null) { 10454 return !length; 10455 } 10456 object = Object(object); 10457 while (index--) { 10458 var data = matchData[index]; 10459 if ((noCustomizer && data[2]) 10460 ? data[1] !== object[data[0]] 10461 : !(data[0] in object) 10462 ) { 10463 return false;
vendor: 4,246 bytes, lines 10464-10680
10464 } 10465 } 10466 while (++index < length) { 10467 data = matchData[index]; 10468 var key = data[0], 10469 objValue = object[key], 10470 srcValue = data[1]; 10471 10472 if (noCustomizer && data[2]) { 10473 if (objValue === undefined && !(key in object)) { 10474 return false; 10475 } 10476 } else { 10477 var stack = new Stack; 10478 if (customizer) { 10479 var result = customizer(objValue, srcValue, key, object, source, stack); 10480 } 10481 if (!(result === undefined 10482 ? baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG, customizer, stack) 10483 : result 10484 )) { 10485 return false; 10486 } 10487 } 10488 } 10489 return true; 10490} 10491 10492module.exports = baseIsMatch; 10493 10494 10495/***/ }), 10496/* 179 */ 10497/***/ (function(module, exports) { 10498 10499/** 10500 * Removes all key-value entries from the list cache. 10501 * 10502 * @private 10503 * @name clear 10504 * @memberOf ListCache 10505 */ 10506function listCacheClear() { 10507 this.__data__ = []; 10508 this.size = 0; 10509} 10510 10511module.exports = listCacheClear; 10512 10513 10514/***/ }), 10515/* 180 */ 10516/***/ (function(module, exports, __webpack_require__) { 10517 10518var assocIndexOf = __webpack_require__(29); 10519 10520/** Used for built-in method references. */ 10521var arrayProto = Array.prototype; 10522 10523/** Built-in value references. */ 10524var splice = arrayProto.splice; 10525 10526/** 10527 * Removes `key` and its value from the list cache. 10528 * 10529 * @private 10530 * @name delete 10531 * @memberOf ListCache 10532 * @param {string} key The key of the value to remove. 10533 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10534 */ 10535function listCacheDelete(key) { 10536 var data = this.__data__, 10537 index = assocIndexOf(data, key); 10538 10539 if (index < 0) { 10540 return false; 10541 } 10542 var lastIndex = data.length - 1; 10543 if (index == lastIndex) { 10544 data.pop(); 10545 } else { 10546 splice.call(data, index, 1); 10547 } 10548 --this.size; 10549 return true; 10550} 10551 10552module.exports = listCacheDelete; 10553 10554 10555/***/ }), 10556/* 181 */ 10557/***/ (function(module, exports, __webpack_require__) { 10558 10559var assocIndexOf = __webpack_require__(29); 10560 10561/** 10562 * Gets the list cache value for `key`. 10563 * 10564 * @private 10565 * @name get 10566 * @memberOf ListCache 10567 * @param {string} key The key of the value to get. 10568 * @returns {*} Returns the entry value. 10569 */ 10570function listCacheGet(key) { 10571 var data = this.__data__, 10572 index = assocIndexOf(data, key); 10573 10574 return index < 0 ? undefined : data[index][1]; 10575} 10576 10577module.exports = listCacheGet; 10578 10579 10580/***/ }), 10581/* 182 */ 10582/***/ (function(module, exports, __webpack_require__) { 10583 10584var assocIndexOf = __webpack_require__(29); 10585 10586/** 10587 * Checks if a list cache value for `key` exists. 10588 * 10589 * @private 10590 * @name has 10591 * @memberOf ListCache 10592 * @param {string} key The key of the entry to check. 10593 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10594 */ 10595function listCacheHas(key) { 10596 return assocIndexOf(this.__data__, key) > -1; 10597} 10598 10599module.exports = listCacheHas; 10600 10601 10602/***/ }), 10603/* 183 */ 10604/***/ (function(module, exports, __webpack_require__) { 10605 10606var assocIndexOf = __webpack_require__(29); 10607 10608/** 10609 * Sets the list cache `key` to `value`. 10610 * 10611 * @private 10612 * @name set 10613 * @memberOf ListCache 10614 * @param {string} key The key of the value to set. 10615 * @param {*} value The value to set. 10616 * @returns {Object} Returns the list cache instance. 10617 */ 10618function listCacheSet(key, value) { 10619 var data = this.__data__, 10620 index = assocIndexOf(data, key); 10621 10622 if (index < 0) { 10623 ++this.size; 10624 data.push([key, value]); 10625 } else { 10626 data[index][1] = value; 10627 } 10628 return this; 10629} 10630 10631module.exports = listCacheSet; 10632 10633 10634/***/ }), 10635/* 184 */ 10636/***/ (function(module, exports, __webpack_require__) { 10637 10638var ListCache = __webpack_require__(28); 10639 10640/** 10641 * Removes all key-value entries from the stack. 10642 * 10643 * @private 10644 * @name clear 10645 * @memberOf Stack 10646 */ 10647function stackClear() { 10648 this.__data__ = new ListCache; 10649 this.size = 0; 10650} 10651 10652module.exports = stackClear; 10653 10654 10655/***/ }), 10656/* 185 */ 10657/***/ (function(module, exports) { 10658 10659/** 10660 * Removes `key` and its value from the stack. 10661 * 10662 * @private 10663 * @name delete 10664 * @memberOf Stack 10665 * @param {string} key The key of the value to remove. 10666 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 10667 */ 10668function stackDelete(key) { 10669 var data = this.__data__, 10670 result = data['delete'](key); 10671 10672 this.size = data.size; 10673 return result; 10674} 10675 10676module.exports = stackDelete; 10677 10678 10679/***/ }), 10680/* 186 */
vendor: 11,191 bytes, lines 10681-11177
10681/***/ (function(module, exports) { 10682 10683/** 10684 * Gets the stack value for `key`. 10685 * 10686 * @private 10687 * @name get 10688 * @memberOf Stack 10689 * @param {string} key The key of the value to get. 10690 * @returns {*} Returns the entry value. 10691 */ 10692function stackGet(key) { 10693 return this.__data__.get(key); 10694} 10695 10696module.exports = stackGet; 10697 10698 10699/***/ }), 10700/* 187 */ 10701/***/ (function(module, exports) { 10702 10703/** 10704 * Checks if a stack value for `key` exists. 10705 * 10706 * @private 10707 * @name has 10708 * @memberOf Stack 10709 * @param {string} key The key of the entry to check. 10710 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 10711 */ 10712function stackHas(key) { 10713 return this.__data__.has(key); 10714} 10715 10716module.exports = stackHas; 10717 10718 10719/***/ }), 10720/* 188 */ 10721/***/ (function(module, exports, __webpack_require__) { 10722 10723var ListCache = __webpack_require__(28), 10724 Map = __webpack_require__(48), 10725 MapCache = __webpack_require__(49); 10726 10727/** Used as the size to enable large array optimizations. */ 10728var LARGE_ARRAY_SIZE = 200; 10729 10730/** 10731 * Sets the stack `key` to `value`. 10732 * 10733 * @private 10734 * @name set 10735 * @memberOf Stack 10736 * @param {string} key The key of the value to set. 10737 * @param {*} value The value to set. 10738 * @returns {Object} Returns the stack cache instance. 10739 */ 10740function stackSet(key, value) { 10741 var data = this.__data__; 10742 if (data instanceof ListCache) { 10743 var pairs = data.__data__; 10744 if (!Map || (pairs.length < LARGE_ARRAY_SIZE - 1)) { 10745 pairs.push([key, value]); 10746 this.size = ++data.size; 10747 return this; 10748 } 10749 data = this.__data__ = new MapCache(pairs); 10750 } 10751 data.set(key, value); 10752 this.size = data.size; 10753 return this; 10754} 10755 10756module.exports = stackSet; 10757 10758 10759/***/ }), 10760/* 189 */ 10761/***/ (function(module, exports, __webpack_require__) { 10762 10763var isFunction = __webpack_require__(89), 10764 isMasked = __webpack_require__(192), 10765 isObject = __webpack_require__(6), 10766 toSource = __webpack_require__(91); 10767 10768/** 10769 * Used to match `RegExp` 10770 * [syntax characters](http://ecma-international.org/ecma-262/7.0/#sec-patterns). 10771 */ 10772var reRegExpChar = /[\\^$.*+?()[\]{}|]/g; 10773 10774/** Used to detect host constructors (Safari). */ 10775var reIsHostCtor = /^\[object .+?Constructor\]$/; 10776 10777/** Used for built-in method references. */ 10778var funcProto = Function.prototype, 10779 objectProto = Object.prototype; 10780 10781/** Used to resolve the decompiled source of functions. */ 10782var funcToString = funcProto.toString; 10783 10784/** Used to check objects for own properties. */ 10785var hasOwnProperty = objectProto.hasOwnProperty; 10786 10787/** Used to detect if a method is native. */ 10788var reIsNative = RegExp('^' + 10789 funcToString.call(hasOwnProperty).replace(reRegExpChar, '\\$&') 10790 .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$' 10791); 10792 10793/** 10794 * The base implementation of `_.isNative` without bad shim checks. 10795 * 10796 * @private 10797 * @param {*} value The value to check. 10798 * @returns {boolean} Returns `true` if `value` is a native function, 10799 * else `false`. 10800 */ 10801function baseIsNative(value) { 10802 if (!isObject(value) || isMasked(value)) { 10803 return false; 10804 } 10805 var pattern = isFunction(value) ? reIsNative : reIsHostCtor; 10806 return pattern.test(toSource(value)); 10807} 10808 10809module.exports = baseIsNative; 10810 10811 10812/***/ }), 10813/* 190 */ 10814/***/ (function(module, exports, __webpack_require__) { 10815 10816var Symbol = __webpack_require__(19); 10817 10818/** Used for built-in method references. */ 10819var objectProto = Object.prototype; 10820 10821/** Used to check objects for own properties. */ 10822var hasOwnProperty = objectProto.hasOwnProperty; 10823 10824/** 10825 * Used to resolve the 10826 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10827 * of values. 10828 */ 10829var nativeObjectToString = objectProto.toString; 10830 10831/** Built-in value references. */ 10832var symToStringTag = Symbol ? Symbol.toStringTag : undefined; 10833 10834/** 10835 * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values. 10836 * 10837 * @private 10838 * @param {*} value The value to query. 10839 * @returns {string} Returns the raw `toStringTag`. 10840 */ 10841function getRawTag(value) { 10842 var isOwn = hasOwnProperty.call(value, symToStringTag), 10843 tag = value[symToStringTag]; 10844 10845 try { 10846 value[symToStringTag] = undefined; 10847 var unmasked = true; 10848 } catch (e) {} 10849 10850 var result = nativeObjectToString.call(value); 10851 if (unmasked) { 10852 if (isOwn) { 10853 value[symToStringTag] = tag; 10854 } else { 10855 delete value[symToStringTag]; 10856 } 10857 } 10858 return result; 10859} 10860 10861module.exports = getRawTag; 10862 10863 10864/***/ }), 10865/* 191 */ 10866/***/ (function(module, exports) { 10867 10868/** Used for built-in method references. */ 10869var objectProto = Object.prototype; 10870 10871/** 10872 * Used to resolve the 10873 * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring) 10874 * of values. 10875 */ 10876var nativeObjectToString = objectProto.toString; 10877 10878/** 10879 * Converts `value` to a string using `Object.prototype.toString`. 10880 * 10881 * @private 10882 * @param {*} value The value to convert. 10883 * @returns {string} Returns the converted string. 10884 */ 10885function objectToString(value) { 10886 return nativeObjectToString.call(value); 10887} 10888 10889module.exports = objectToString; 10890 10891 10892/***/ }), 10893/* 192 */ 10894/***/ (function(module, exports, __webpack_require__) { 10895 10896var coreJsData = __webpack_require__(193); 10897 10898/** Used to detect methods masquerading as native. */ 10899var maskSrcKey = (function() { 10900 var uid = /[^.]+$/.exec(coreJsData && coreJsData.keys && coreJsData.keys.IE_PROTO || ''); 10901 return uid ? ('Symbol(src)_1.' + uid) : ''; 10902}()); 10903 10904/** 10905 * Checks if `func` has its source masked. 10906 * 10907 * @private 10908 * @param {Function} func The function to check. 10909 * @returns {boolean} Returns `true` if `func` is masked, else `false`. 10910 */ 10911function isMasked(func) { 10912 return !!maskSrcKey && (maskSrcKey in func); 10913} 10914 10915module.exports = isMasked; 10916 10917 10918/***/ }), 10919/* 193 */ 10920/***/ (function(module, exports, __webpack_require__) { 10921 10922var root = __webpack_require__(4); 10923 10924/** Used to detect overreaching core-js shims. */ 10925var coreJsData = root['__core-js_shared__']; 10926 10927module.exports = coreJsData; 10928 10929 10930/***/ }), 10931/* 194 */ 10932/***/ (function(module, exports) { 10933 10934/** 10935 * Gets the value at `key` of `object`. 10936 * 10937 * @private 10938 * @param {Object} [object] The object to query. 10939 * @param {string} key The key of the property to get. 10940 * @returns {*} Returns the property value. 10941 */ 10942function getValue(object, key) { 10943 return object == null ? undefined : object[key]; 10944} 10945 10946module.exports = getValue; 10947 10948 10949/***/ }), 10950/* 195 */ 10951/***/ (function(module, exports, __webpack_require__) { 10952 10953var Hash = __webpack_require__(196), 10954 ListCache = __webpack_require__(28), 10955 Map = __webpack_require__(48); 10956 10957/** 10958 * Removes all key-value entries from the map. 10959 * 10960 * @private 10961 * @name clear 10962 * @memberOf MapCache 10963 */ 10964function mapCacheClear() { 10965 this.size = 0; 10966 this.__data__ = { 10967 'hash': new Hash, 10968 'map': new (Map || ListCache), 10969 'string': new Hash 10970 }; 10971} 10972 10973module.exports = mapCacheClear; 10974 10975 10976/***/ }), 10977/* 196 */ 10978/***/ (function(module, exports, __webpack_require__) { 10979 10980var hashClear = __webpack_require__(197), 10981 hashDelete = __webpack_require__(198), 10982 hashGet = __webpack_require__(199), 10983 hashHas = __webpack_require__(200), 10984 hashSet = __webpack_require__(201); 10985 10986/** 10987 * Creates a hash object. 10988 * 10989 * @private 10990 * @constructor 10991 * @param {Array} [entries] The key-value pairs to cache. 10992 */ 10993function Hash(entries) { 10994 var index = -1, 10995 length = entries == null ? 0 : entries.length; 10996 10997 this.clear(); 10998 while (++index < length) { 10999 var entry = entries[index]; 11000 this.set(entry[0], entry[1]); 11001 } 11002} 11003 11004// Add methods to `Hash`. 11005Hash.prototype.clear = hashClear; 11006Hash.prototype['delete'] = hashDelete; 11007Hash.prototype.get = hashGet; 11008Hash.prototype.has = hashHas; 11009Hash.prototype.set = hashSet; 11010 11011module.exports = Hash; 11012 11013 11014/***/ }), 11015/* 197 */ 11016/***/ (function(module, exports, __webpack_require__) { 11017 11018var nativeCreate = __webpack_require__(30); 11019 11020/** 11021 * Removes all key-value entries from the hash. 11022 * 11023 * @private 11024 * @name clear 11025 * @memberOf Hash 11026 */ 11027function hashClear() { 11028 this.__data__ = nativeCreate ? nativeCreate(null) : {}; 11029 this.size = 0; 11030} 11031 11032module.exports = hashClear; 11033 11034 11035/***/ }), 11036/* 198 */ 11037/***/ (function(module, exports) { 11038 11039/** 11040 * Removes `key` and its value from the hash. 11041 * 11042 * @private 11043 * @name delete 11044 * @memberOf Hash 11045 * @param {Object} hash The hash to modify. 11046 * @param {string} key The key of the value to remove. 11047 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11048 */ 11049function hashDelete(key) { 11050 var result = this.has(key) && delete this.__data__[key]; 11051 this.size -= result ? 1 : 0; 11052 return result; 11053} 11054 11055module.exports = hashDelete; 11056 11057 11058/***/ }), 11059/* 199 */ 11060/***/ (function(module, exports, __webpack_require__) { 11061 11062var nativeCreate = __webpack_require__(30); 11063 11064/** Used to stand-in for `undefined` hash values. */ 11065var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11066 11067/** Used for built-in method references. */ 11068var objectProto = Object.prototype; 11069 11070/** Used to check objects for own properties. */ 11071var hasOwnProperty = objectProto.hasOwnProperty; 11072 11073/** 11074 * Gets the hash value for `key`. 11075 * 11076 * @private 11077 * @name get 11078 * @memberOf Hash 11079 * @param {string} key The key of the value to get. 11080 * @returns {*} Returns the entry value. 11081 */ 11082function hashGet(key) { 11083 var data = this.__data__; 11084 if (nativeCreate) { 11085 var result = data[key]; 11086 return result === HASH_UNDEFINED ? undefined : result; 11087 } 11088 return hasOwnProperty.call(data, key) ? data[key] : undefined; 11089} 11090 11091module.exports = hashGet; 11092 11093 11094/***/ }), 11095/* 200 */ 11096/***/ (function(module, exports, __webpack_require__) { 11097 11098var nativeCreate = __webpack_require__(30); 11099 11100/** Used for built-in method references. */ 11101var objectProto = Object.prototype; 11102 11103/** Used to check objects for own properties. */ 11104var hasOwnProperty = objectProto.hasOwnProperty; 11105 11106/** 11107 * Checks if a hash value for `key` exists. 11108 * 11109 * @private 11110 * @name has 11111 * @memberOf Hash 11112 * @param {string} key The key of the entry to check. 11113 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11114 */ 11115function hashHas(key) { 11116 var data = this.__data__; 11117 return nativeCreate ? (data[key] !== undefined) : hasOwnProperty.call(data, key); 11118} 11119 11120module.exports = hashHas; 11121 11122 11123/***/ }), 11124/* 201 */ 11125/***/ (function(module, exports, __webpack_require__) { 11126 11127var nativeCreate = __webpack_require__(30); 11128 11129/** Used to stand-in for `undefined` hash values. */ 11130var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11131 11132/** 11133 * Sets the hash `key` to `value`. 11134 * 11135 * @private 11136 * @name set 11137 * @memberOf Hash 11138 * @param {string} key The key of the value to set. 11139 * @param {*} value The value to set. 11140 * @returns {Object} Returns the hash instance. 11141 */ 11142function hashSet(key, value) { 11143 var data = this.__data__; 11144 this.size += this.has(key) ? 0 : 1; 11145 data[key] = (nativeCreate && value === undefined) ? HASH_UNDEFINED : value; 11146 return this; 11147} 11148 11149module.exports = hashSet; 11150 11151 11152/***/ }), 11153/* 202 */ 11154/***/ (function(module, exports, __webpack_require__) { 11155 11156var getMapData = __webpack_require__(31); 11157 11158/** 11159 * Removes `key` and its value from the map. 11160 * 11161 * @private 11162 * @name delete 11163 * @memberOf MapCache 11164 * @param {string} key The key of the value to remove. 11165 * @returns {boolean} Returns `true` if the entry was removed, else `false`. 11166 */ 11167function mapCacheDelete(key) { 11168 var result = getMapData(this, key)['delete'](key); 11169 this.size -= result ? 1 : 0; 11170 return result; 11171} 11172 11173module.exports = mapCacheDelete; 11174 11175 11176/***/ }), 11177/* 203 */
vendor: 13,821 bytes, lines 11178-11698
11178/***/ (function(module, exports) { 11179 11180/** 11181 * Checks if `value` is suitable for use as unique object key. 11182 * 11183 * @private 11184 * @param {*} value The value to check. 11185 * @returns {boolean} Returns `true` if `value` is suitable, else `false`. 11186 */ 11187function isKeyable(value) { 11188 var type = typeof value; 11189 return (type == 'string' || type == 'number' || type == 'symbol' || type == 'boolean') 11190 ? (value !== '__proto__') 11191 : (value === null); 11192} 11193 11194module.exports = isKeyable; 11195 11196 11197/***/ }), 11198/* 204 */ 11199/***/ (function(module, exports, __webpack_require__) { 11200 11201var getMapData = __webpack_require__(31); 11202 11203/** 11204 * Gets the map value for `key`. 11205 * 11206 * @private 11207 * @name get 11208 * @memberOf MapCache 11209 * @param {string} key The key of the value to get. 11210 * @returns {*} Returns the entry value. 11211 */ 11212function mapCacheGet(key) { 11213 return getMapData(this, key).get(key); 11214} 11215 11216module.exports = mapCacheGet; 11217 11218 11219/***/ }), 11220/* 205 */ 11221/***/ (function(module, exports, __webpack_require__) { 11222 11223var getMapData = __webpack_require__(31); 11224 11225/** 11226 * Checks if a map value for `key` exists. 11227 * 11228 * @private 11229 * @name has 11230 * @memberOf MapCache 11231 * @param {string} key The key of the entry to check. 11232 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11233 */ 11234function mapCacheHas(key) { 11235 return getMapData(this, key).has(key); 11236} 11237 11238module.exports = mapCacheHas; 11239 11240 11241/***/ }), 11242/* 206 */ 11243/***/ (function(module, exports, __webpack_require__) { 11244 11245var getMapData = __webpack_require__(31); 11246 11247/** 11248 * Sets the map `key` to `value`. 11249 * 11250 * @private 11251 * @name set 11252 * @memberOf MapCache 11253 * @param {string} key The key of the value to set. 11254 * @param {*} value The value to set. 11255 * @returns {Object} Returns the map cache instance. 11256 */ 11257function mapCacheSet(key, value) { 11258 var data = getMapData(this, key), 11259 size = data.size; 11260 11261 data.set(key, value); 11262 this.size += data.size == size ? 0 : 1; 11263 return this; 11264} 11265 11266module.exports = mapCacheSet; 11267 11268 11269/***/ }), 11270/* 207 */ 11271/***/ (function(module, exports, __webpack_require__) { 11272 11273var Stack = __webpack_require__(88), 11274 equalArrays = __webpack_require__(93), 11275 equalByTag = __webpack_require__(213), 11276 equalObjects = __webpack_require__(217), 11277 getTag = __webpack_require__(57), 11278 isArray = __webpack_require__(1), 11279 isBuffer = __webpack_require__(51), 11280 isTypedArray = __webpack_require__(53); 11281 11282/** Used to compose bitmasks for value comparisons. */ 11283var COMPARE_PARTIAL_FLAG = 1; 11284 11285/** `Object#toString` result references. */ 11286var argsTag = '[object Arguments]', 11287 arrayTag = '[object Array]', 11288 objectTag = '[object Object]'; 11289 11290/** Used for built-in method references. */ 11291var objectProto = Object.prototype; 11292 11293/** Used to check objects for own properties. */ 11294var hasOwnProperty = objectProto.hasOwnProperty; 11295 11296/** 11297 * A specialized version of `baseIsEqual` for arrays and objects which performs 11298 * deep comparisons and tracks traversed objects enabling objects with circular 11299 * references to be compared. 11300 * 11301 * @private 11302 * @param {Object} object The object to compare. 11303 * @param {Object} other The other object to compare. 11304 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11305 * @param {Function} customizer The function to customize comparisons. 11306 * @param {Function} equalFunc The function to determine equivalents of values. 11307 * @param {Object} [stack] Tracks traversed `object` and `other` objects. 11308 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11309 */ 11310function baseIsEqualDeep(object, other, bitmask, customizer, equalFunc, stack) { 11311 var objIsArr = isArray(object), 11312 othIsArr = isArray(other), 11313 objTag = objIsArr ? arrayTag : getTag(object), 11314 othTag = othIsArr ? arrayTag : getTag(other); 11315 11316 objTag = objTag == argsTag ? objectTag : objTag; 11317 othTag = othTag == argsTag ? objectTag : othTag; 11318 11319 var objIsObj = objTag == objectTag, 11320 othIsObj = othTag == objectTag, 11321 isSameTag = objTag == othTag; 11322 11323 if (isSameTag && isBuffer(object)) { 11324 if (!isBuffer(other)) { 11325 return false; 11326 } 11327 objIsArr = true; 11328 objIsObj = false; 11329 } 11330 if (isSameTag && !objIsObj) { 11331 stack || (stack = new Stack); 11332 return (objIsArr || isTypedArray(object)) 11333 ? equalArrays(object, other, bitmask, customizer, equalFunc, stack) 11334 : equalByTag(object, other, objTag, bitmask, customizer, equalFunc, stack); 11335 } 11336 if (!(bitmask & COMPARE_PARTIAL_FLAG)) { 11337 var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'), 11338 othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__'); 11339 11340 if (objIsWrapped || othIsWrapped) { 11341 var objUnwrapped = objIsWrapped ? object.value() : object, 11342 othUnwrapped = othIsWrapped ? other.value() : other; 11343 11344 stack || (stack = new Stack); 11345 return equalFunc(objUnwrapped, othUnwrapped, bitmask, customizer, stack); 11346 } 11347 } 11348 if (!isSameTag) { 11349 return false; 11350 } 11351 stack || (stack = new Stack); 11352 return equalObjects(object, other, bitmask, customizer, equalFunc, stack); 11353} 11354 11355module.exports = baseIsEqualDeep; 11356 11357 11358/***/ }), 11359/* 208 */ 11360/***/ (function(module, exports, __webpack_require__) { 11361 11362var MapCache = __webpack_require__(49), 11363 setCacheAdd = __webpack_require__(209), 11364 setCacheHas = __webpack_require__(210); 11365 11366/** 11367 * 11368 * Creates an array cache object to store unique values. 11369 * 11370 * @private 11371 * @constructor 11372 * @param {Array} [values] The values to cache. 11373 */ 11374function SetCache(values) { 11375 var index = -1, 11376 length = values == null ? 0 : values.length; 11377 11378 this.__data__ = new MapCache; 11379 while (++index < length) { 11380 this.add(values[index]); 11381 } 11382} 11383 11384// Add methods to `SetCache`. 11385SetCache.prototype.add = SetCache.prototype.push = setCacheAdd; 11386SetCache.prototype.has = setCacheHas; 11387 11388module.exports = SetCache; 11389 11390 11391/***/ }), 11392/* 209 */ 11393/***/ (function(module, exports) { 11394 11395/** Used to stand-in for `undefined` hash values. */ 11396var HASH_UNDEFINED = '__lodash_hash_undefined__'; 11397 11398/** 11399 * Adds `value` to the array cache. 11400 * 11401 * @private 11402 * @name add 11403 * @memberOf SetCache 11404 * @alias push 11405 * @param {*} value The value to cache. 11406 * @returns {Object} Returns the cache instance. 11407 */ 11408function setCacheAdd(value) { 11409 this.__data__.set(value, HASH_UNDEFINED); 11410 return this; 11411} 11412 11413module.exports = setCacheAdd; 11414 11415 11416/***/ }), 11417/* 210 */ 11418/***/ (function(module, exports) { 11419 11420/** 11421 * Checks if `value` is in the array cache. 11422 * 11423 * @private 11424 * @name has 11425 * @memberOf SetCache 11426 * @param {*} value The value to search for. 11427 * @returns {number} Returns `true` if `value` is found, else `false`. 11428 */ 11429function setCacheHas(value) { 11430 return this.__data__.has(value); 11431} 11432 11433module.exports = setCacheHas; 11434 11435 11436/***/ }), 11437/* 211 */ 11438/***/ (function(module, exports) { 11439 11440/** 11441 * A specialized version of `_.some` for arrays without support for iteratee 11442 * shorthands. 11443 * 11444 * @private 11445 * @param {Array} [array] The array to iterate over. 11446 * @param {Function} predicate The function invoked per iteration. 11447 * @returns {boolean} Returns `true` if any element passes the predicate check, 11448 * else `false`. 11449 */ 11450function arraySome(array, predicate) { 11451 var index = -1, 11452 length = array == null ? 0 : array.length; 11453 11454 while (++index < length) { 11455 if (predicate(array[index], index, array)) { 11456 return true; 11457 } 11458 } 11459 return false; 11460} 11461 11462module.exports = arraySome; 11463 11464 11465/***/ }), 11466/* 212 */ 11467/***/ (function(module, exports) { 11468 11469/** 11470 * Checks if a `cache` value for `key` exists. 11471 * 11472 * @private 11473 * @param {Object} cache The cache to query. 11474 * @param {string} key The key of the entry to check. 11475 * @returns {boolean} Returns `true` if an entry for `key` exists, else `false`. 11476 */ 11477function cacheHas(cache, key) { 11478 return cache.has(key); 11479} 11480 11481module.exports = cacheHas; 11482 11483 11484/***/ }), 11485/* 213 */ 11486/***/ (function(module, exports, __webpack_require__) { 11487 11488var Symbol = __webpack_require__(19), 11489 Uint8Array = __webpack_require__(214), 11490 eq = __webpack_require__(47), 11491 equalArrays = __webpack_require__(93), 11492 mapToArray = __webpack_require__(215), 11493 setToArray = __webpack_require__(216); 11494 11495/** Used to compose bitmasks for value comparisons. */ 11496var COMPARE_PARTIAL_FLAG = 1, 11497 COMPARE_UNORDERED_FLAG = 2; 11498 11499/** `Object#toString` result references. */ 11500var boolTag = '[object Boolean]', 11501 dateTag = '[object Date]', 11502 errorTag = '[object Error]', 11503 mapTag = '[object Map]', 11504 numberTag = '[object Number]', 11505 regexpTag = '[object RegExp]', 11506 setTag = '[object Set]', 11507 stringTag = '[object String]', 11508 symbolTag = '[object Symbol]'; 11509 11510var arrayBufferTag = '[object ArrayBuffer]', 11511 dataViewTag = '[object DataView]'; 11512 11513/** Used to convert symbols to primitives and strings. */ 11514var symbolProto = Symbol ? Symbol.prototype : undefined, 11515 symbolValueOf = symbolProto ? symbolProto.valueOf : undefined; 11516 11517/** 11518 * A specialized version of `baseIsEqualDeep` for comparing objects of 11519 * the same `toStringTag`. 11520 * 11521 * **Note:** This function only supports comparing values with tags of 11522 * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`. 11523 * 11524 * @private 11525 * @param {Object} object The object to compare. 11526 * @param {Object} other The other object to compare. 11527 * @param {string} tag The `toStringTag` of the objects to compare. 11528 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11529 * @param {Function} customizer The function to customize comparisons. 11530 * @param {Function} equalFunc The function to determine equivalents of values. 11531 * @param {Object} stack Tracks traversed `object` and `other` objects. 11532 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11533 */ 11534function equalByTag(object, other, tag, bitmask, customizer, equalFunc, stack) { 11535 switch (tag) { 11536 case dataViewTag: 11537 if ((object.byteLength != other.byteLength) || 11538 (object.byteOffset != other.byteOffset)) { 11539 return false; 11540 } 11541 object = object.buffer; 11542 other = other.buffer; 11543 11544 case arrayBufferTag: 11545 if ((object.byteLength != other.byteLength) || 11546 !equalFunc(new Uint8Array(object), new Uint8Array(other))) { 11547 return false; 11548 } 11549 return true; 11550 11551 case boolTag: 11552 case dateTag: 11553 case numberTag: 11554 // Coerce booleans to `1` or `0` and dates to milliseconds. 11555 // Invalid dates are coerced to `NaN`. 11556 return eq(+object, +other); 11557 11558 case errorTag: 11559 return object.name == other.name && object.message == other.message; 11560 11561 case regexpTag: 11562 case stringTag: 11563 // Coerce regexes to strings and treat strings, primitives and objects, 11564 // as equal. See http://www.ecma-international.org/ecma-262/7.0/#sec-regexp.prototype.tostring 11565 // for more details. 11566 return object == (other + ''); 11567 11568 case mapTag: 11569 var convert = mapToArray; 11570 11571 case setTag: 11572 var isPartial = bitmask & COMPARE_PARTIAL_FLAG; 11573 convert || (convert = setToArray); 11574 11575 if (object.size != other.size && !isPartial) { 11576 return false; 11577 } 11578 // Assume cyclic values are equal. 11579 var stacked = stack.get(object); 11580 if (stacked) { 11581 return stacked == other; 11582 } 11583 bitmask |= COMPARE_UNORDERED_FLAG; 11584 11585 // Recursively compare objects (susceptible to call stack limits). 11586 stack.set(object, other); 11587 var result = equalArrays(convert(object), convert(other), bitmask, customizer, equalFunc, stack); 11588 stack['delete'](object); 11589 return result; 11590 11591 case symbolTag: 11592 if (symbolValueOf) { 11593 return symbolValueOf.call(object) == symbolValueOf.call(other); 11594 } 11595 } 11596 return false; 11597} 11598 11599module.exports = equalByTag; 11600 11601 11602/***/ }), 11603/* 214 */ 11604/***/ (function(module, exports, __webpack_require__) { 11605 11606var root = __webpack_require__(4); 11607 11608/** Built-in value references. */ 11609var Uint8Array = root.Uint8Array; 11610 11611module.exports = Uint8Array; 11612 11613 11614/***/ }), 11615/* 215 */ 11616/***/ (function(module, exports) { 11617 11618/** 11619 * Converts `map` to its key-value pairs. 11620 * 11621 * @private 11622 * @param {Object} map The map to convert. 11623 * @returns {Array} Returns the key-value pairs. 11624 */ 11625function mapToArray(map) { 11626 var index = -1, 11627 result = Array(map.size); 11628 11629 map.forEach(function(value, key) { 11630 result[++index] = [key, value]; 11631 }); 11632 return result; 11633} 11634 11635module.exports = mapToArray; 11636 11637 11638/***/ }), 11639/* 216 */ 11640/***/ (function(module, exports) { 11641 11642/** 11643 * Converts `set` to an array of its values. 11644 * 11645 * @private 11646 * @param {Object} set The set to convert. 11647 * @returns {Array} Returns the values. 11648 */ 11649function setToArray(set) { 11650 var index = -1, 11651 result = Array(set.size); 11652 11653 set.forEach(function(value) { 11654 result[++index] = value; 11655 }); 11656 return result; 11657} 11658 11659module.exports = setToArray; 11660 11661 11662/***/ }), 11663/* 217 */ 11664/***/ (function(module, exports, __webpack_require__) { 11665 11666var getAllKeys = __webpack_require__(218); 11667 11668/** Used to compose bitmasks for value comparisons. */ 11669var COMPARE_PARTIAL_FLAG = 1; 11670 11671/** Used for built-in method references. */ 11672var objectProto = Object.prototype; 11673 11674/** Used to check objects for own properties. */ 11675var hasOwnProperty = objectProto.hasOwnProperty; 11676 11677/** 11678 * A specialized version of `baseIsEqualDeep` for objects with support for 11679 * partial deep comparisons. 11680 * 11681 * @private 11682 * @param {Object} object The object to compare. 11683 * @param {Object} other The other object to compare. 11684 * @param {number} bitmask The bitmask flags. See `baseIsEqual` for more details. 11685 * @param {Function} customizer The function to customize comparisons. 11686 * @param {Function} equalFunc The function to determine equivalents of values. 11687 * @param {Object} stack Tracks traversed `object` and `other` objects. 11688 * @returns {boolean} Returns `true` if the objects are equivalent, else `false`. 11689 */ 11690function equalObjects(object, other, bitmask, customizer, equalFunc, stack) { 11691 var isPartial = bitmask & COMPARE_PARTIAL_FLAG, 11692 objProps = getAllKeys(object), 11693 objLength = objProps.length, 11694 othProps = getAllKeys(other), 11695 othLength = othProps.length; 11696 11697 if (objLength != othLength && !isPartial) { 11698 return false;
vendor: 1,526 bytes, lines 11699-11746
11699 } 11700 var index = objLength; 11701 while (index--) { 11702 var key = objProps[index]; 11703 if (!(isPartial ? key in other : hasOwnProperty.call(other, key))) { 11704 return false; 11705 } 11706 } 11707 // Assume cyclic values are equal. 11708 var stacked = stack.get(object); 11709 if (stacked && stack.get(other)) { 11710 return stacked == other; 11711 } 11712 var result = true; 11713 stack.set(object, other); 11714 stack.set(other, object); 11715 11716 var skipCtor = isPartial; 11717 while (++index < objLength) { 11718 key = objProps[index]; 11719 var objValue = object[key], 11720 othValue = other[key]; 11721 11722 if (customizer) { 11723 var compared = isPartial 11724 ? customizer(othValue, objValue, key, other, object, stack) 11725 : customizer(objValue, othValue, key, object, other, stack); 11726 } 11727 // Recursively compare objects (susceptible to call stack limits). 11728 if (!(compared === undefined 11729 ? (objValue === othValue || equalFunc(objValue, othValue, bitmask, customizer, stack)) 11730 : compared 11731 )) { 11732 result = false; 11733 break; 11734 } 11735 skipCtor || (skipCtor = key == 'constructor'); 11736 } 11737 if (result && !skipCtor) { 11738 var objCtor = object.constructor, 11739 othCtor = other.constructor; 11740 11741 // Non `Object` object instances with different constructors are not equal. 11742 if (objCtor != othCtor && 11743 ('constructor' in object && 'constructor' in other) && 11744 !(typeof objCtor == 'function' && objCtor instanceof objCtor && 11745 typeof othCtor == 'function' && othCtor instanceof othCtor)) { 11746 result = false;
vendor: 4,399 bytes, lines 11747-11927
11747 } 11748 } 11749 stack['delete'](object); 11750 stack['delete'](other); 11751 return result; 11752} 11753 11754module.exports = equalObjects; 11755 11756 11757/***/ }), 11758/* 218 */ 11759/***/ (function(module, exports, __webpack_require__) { 11760 11761var baseGetAllKeys = __webpack_require__(94), 11762 getSymbols = __webpack_require__(95), 11763 keys = __webpack_require__(32); 11764 11765/** 11766 * Creates an array of own enumerable property names and symbols of `object`. 11767 * 11768 * @private 11769 * @param {Object} object The object to query. 11770 * @returns {Array} Returns the array of property names and symbols. 11771 */ 11772function getAllKeys(object) { 11773 return baseGetAllKeys(object, keys, getSymbols); 11774} 11775 11776module.exports = getAllKeys; 11777 11778 11779/***/ }), 11780/* 219 */ 11781/***/ (function(module, exports) { 11782 11783/** 11784 * A specialized version of `_.filter` for arrays without support for 11785 * iteratee shorthands. 11786 * 11787 * @private 11788 * @param {Array} [array] The array to iterate over. 11789 * @param {Function} predicate The function invoked per iteration. 11790 * @returns {Array} Returns the new filtered array. 11791 */ 11792function arrayFilter(array, predicate) { 11793 var index = -1, 11794 length = array == null ? 0 : array.length, 11795 resIndex = 0, 11796 result = []; 11797 11798 while (++index < length) { 11799 var value = array[index]; 11800 if (predicate(value, index, array)) { 11801 result[resIndex++] = value; 11802 } 11803 } 11804 return result; 11805} 11806 11807module.exports = arrayFilter; 11808 11809 11810/***/ }), 11811/* 220 */ 11812/***/ (function(module, exports) { 11813 11814/** 11815 * The base implementation of `_.times` without support for iteratee shorthands 11816 * or max array length checks. 11817 * 11818 * @private 11819 * @param {number} n The number of times to invoke `iteratee`. 11820 * @param {Function} iteratee The function invoked per iteration. 11821 * @returns {Array} Returns the array of results. 11822 */ 11823function baseTimes(n, iteratee) { 11824 var index = -1, 11825 result = Array(n); 11826 11827 while (++index < n) { 11828 result[index] = iteratee(index); 11829 } 11830 return result; 11831} 11832 11833module.exports = baseTimes; 11834 11835 11836/***/ }), 11837/* 221 */ 11838/***/ (function(module, exports, __webpack_require__) { 11839 11840var baseGetTag = __webpack_require__(11), 11841 isObjectLike = __webpack_require__(9); 11842 11843/** `Object#toString` result references. */ 11844var argsTag = '[object Arguments]'; 11845 11846/** 11847 * The base implementation of `_.isArguments`. 11848 * 11849 * @private 11850 * @param {*} value The value to check. 11851 * @returns {boolean} Returns `true` if `value` is an `arguments` object, 11852 */ 11853function baseIsArguments(value) { 11854 return isObjectLike(value) && baseGetTag(value) == argsTag; 11855} 11856 11857module.exports = baseIsArguments; 11858 11859 11860/***/ }), 11861/* 222 */ 11862/***/ (function(module, exports) { 11863 11864/** 11865 * This method returns `false`. 11866 * 11867 * @static 11868 * @memberOf _ 11869 * @since 4.13.0 11870 * @category Util 11871 * @returns {boolean} Returns `false`. 11872 * @example 11873 * 11874 * _.times(2, _.stubFalse); 11875 * // => [false, false] 11876 */ 11877function stubFalse() { 11878 return false; 11879} 11880 11881module.exports = stubFalse; 11882 11883 11884/***/ }), 11885/* 223 */ 11886/***/ (function(module, exports, __webpack_require__) { 11887 11888var baseGetTag = __webpack_require__(11), 11889 isLength = __webpack_require__(54), 11890 isObjectLike = __webpack_require__(9); 11891 11892/** `Object#toString` result references. */ 11893var argsTag = '[object Arguments]', 11894 arrayTag = '[object Array]', 11895 boolTag = '[object Boolean]', 11896 dateTag = '[object Date]', 11897 errorTag = '[object Error]', 11898 funcTag = '[object Function]', 11899 mapTag = '[object Map]', 11900 numberTag = '[object Number]', 11901 objectTag = '[object Object]', 11902 regexpTag = '[object RegExp]', 11903 setTag = '[object Set]', 11904 stringTag = '[object String]', 11905 weakMapTag = '[object WeakMap]'; 11906 11907var arrayBufferTag = '[object ArrayBuffer]', 11908 dataViewTag = '[object DataView]', 11909 float32Tag = '[object Float32Array]', 11910 float64Tag = '[object Float64Array]', 11911 int8Tag = '[object Int8Array]', 11912 int16Tag = '[object Int16Array]', 11913 int32Tag = '[object Int32Array]', 11914 uint8Tag = '[object Uint8Array]', 11915 uint8ClampedTag = '[object Uint8ClampedArray]', 11916 uint16Tag = '[object Uint16Array]', 11917 uint32Tag = '[object Uint32Array]'; 11918 11919/** Used to identify `toStringTag` values of typed arrays. */ 11920var typedArrayTags = {}; 11921typedArrayTags[float32Tag] = typedArrayTags[float64Tag] = 11922typedArrayTags[int8Tag] = typedArrayTags[int16Tag] = 11923typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] = 11924typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] = 11925typedArrayTags[uint32Tag] = true; 11926typedArrayTags[argsTag] = typedArrayTags[arrayTag] = 11927typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
vendor: 5,700 bytes, lines 11928-12140
11928typedArrayTags[dataViewTag] = typedArrayTags[dateTag] = 11929typedArrayTags[errorTag] = typedArrayTags[funcTag] = 11930typedArrayTags[mapTag] = typedArrayTags[numberTag] = 11931typedArrayTags[objectTag] = typedArrayTags[regexpTag] = 11932typedArrayTags[setTag] = typedArrayTags[stringTag] = 11933typedArrayTags[weakMapTag] = false; 11934 11935/** 11936 * The base implementation of `_.isTypedArray` without Node.js optimizations. 11937 * 11938 * @private 11939 * @param {*} value The value to check. 11940 * @returns {boolean} Returns `true` if `value` is a typed array, else `false`. 11941 */ 11942function baseIsTypedArray(value) { 11943 return isObjectLike(value) && 11944 isLength(value.length) && !!typedArrayTags[baseGetTag(value)]; 11945} 11946 11947module.exports = baseIsTypedArray; 11948 11949 11950/***/ }), 11951/* 224 */ 11952/***/ (function(module, exports) { 11953 11954/** 11955 * The base implementation of `_.unary` without support for storing metadata. 11956 * 11957 * @private 11958 * @param {Function} func The function to cap arguments for. 11959 * @returns {Function} Returns the new capped function. 11960 */ 11961function baseUnary(func) { 11962 return function(value) { 11963 return func(value); 11964 }; 11965} 11966 11967module.exports = baseUnary; 11968 11969 11970/***/ }), 11971/* 225 */ 11972/***/ (function(module, exports, __webpack_require__) { 11973 11974/* WEBPACK VAR INJECTION */(function(module) {var freeGlobal = __webpack_require__(90); 11975 11976/** Detect free variable `exports`. */ 11977var freeExports = true && exports && !exports.nodeType && exports; 11978 11979/** Detect free variable `module`. */ 11980var freeModule = freeExports && typeof module == 'object' && module && !module.nodeType && module; 11981 11982/** Detect the popular CommonJS extension `module.exports`. */ 11983var moduleExports = freeModule && freeModule.exports === freeExports; 11984 11985/** Detect free variable `process` from Node.js. */ 11986var freeProcess = moduleExports && freeGlobal.process; 11987 11988/** Used to access faster Node.js helpers. */ 11989var nodeUtil = (function() { 11990 try { 11991 // Use `util.types` for Node.js 10+. 11992 var types = freeModule && freeModule.require && freeModule.require('util').types; 11993 11994 if (types) { 11995 return types; 11996 } 11997 11998 // Legacy `process.binding('util')` for Node.js < 10. 11999 return freeProcess && freeProcess.binding && freeProcess.binding('util'); 12000 } catch (e) {} 12001}()); 12002 12003module.exports = nodeUtil; 12004 12005/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(98)(module))) 12006 12007/***/ }), 12008/* 226 */ 12009/***/ (function(module, exports, __webpack_require__) { 12010 12011var overArg = __webpack_require__(99); 12012 12013/* Built-in method references for those with the same name as other `lodash` methods. */ 12014var nativeKeys = overArg(Object.keys, Object); 12015 12016module.exports = nativeKeys; 12017 12018 12019/***/ }), 12020/* 227 */ 12021/***/ (function(module, exports, __webpack_require__) { 12022 12023var getNative = __webpack_require__(8), 12024 root = __webpack_require__(4); 12025 12026/* Built-in method references that are verified to be native. */ 12027var DataView = getNative(root, 'DataView'); 12028 12029module.exports = DataView; 12030 12031 12032/***/ }), 12033/* 228 */ 12034/***/ (function(module, exports, __webpack_require__) { 12035 12036var getNative = __webpack_require__(8), 12037 root = __webpack_require__(4); 12038 12039/* Built-in method references that are verified to be native. */ 12040var Promise = getNative(root, 'Promise'); 12041 12042module.exports = Promise; 12043 12044 12045/***/ }), 12046/* 229 */ 12047/***/ (function(module, exports, __webpack_require__) { 12048 12049var getNative = __webpack_require__(8), 12050 root = __webpack_require__(4); 12051 12052/* Built-in method references that are verified to be native. */ 12053var Set = getNative(root, 'Set'); 12054 12055module.exports = Set; 12056 12057 12058/***/ }), 12059/* 230 */ 12060/***/ (function(module, exports, __webpack_require__) { 12061 12062var isStrictComparable = __webpack_require__(101), 12063 keys = __webpack_require__(32); 12064 12065/** 12066 * Gets the property names, values, and compare flags of `object`. 12067 * 12068 * @private 12069 * @param {Object} object The object to query. 12070 * @returns {Array} Returns the match data of `object`. 12071 */ 12072function getMatchData(object) { 12073 var result = keys(object), 12074 length = result.length; 12075 12076 while (length--) { 12077 var key = result[length], 12078 value = object[key]; 12079 12080 result[length] = [key, value, isStrictComparable(value)]; 12081 } 12082 return result; 12083} 12084 12085module.exports = getMatchData; 12086 12087 12088/***/ }), 12089/* 231 */ 12090/***/ (function(module, exports, __webpack_require__) { 12091 12092var baseIsEqual = __webpack_require__(92), 12093 get = __webpack_require__(34), 12094 hasIn = __webpack_require__(237), 12095 isKey = __webpack_require__(59), 12096 isStrictComparable = __webpack_require__(101), 12097 matchesStrictComparable = __webpack_require__(102), 12098 toKey = __webpack_require__(20); 12099 12100/** Used to compose bitmasks for value comparisons. */ 12101var COMPARE_PARTIAL_FLAG = 1, 12102 COMPARE_UNORDERED_FLAG = 2; 12103 12104/** 12105 * The base implementation of `_.matchesProperty` which doesn't clone `srcValue`. 12106 * 12107 * @private 12108 * @param {string} path The path of the property to get. 12109 * @param {*} srcValue The value to match. 12110 * @returns {Function} Returns the new spec function. 12111 */ 12112function baseMatchesProperty(path, srcValue) { 12113 if (isKey(path) && isStrictComparable(srcValue)) { 12114 return matchesStrictComparable(toKey(path), srcValue); 12115 } 12116 return function(object) { 12117 var objValue = get(object, path); 12118 return (objValue === undefined && objValue === srcValue) 12119 ? hasIn(object, path) 12120 : baseIsEqual(srcValue, objValue, COMPARE_PARTIAL_FLAG | COMPARE_UNORDERED_FLAG); 12121 }; 12122} 12123 12124module.exports = baseMatchesProperty; 12125 12126 12127/***/ }), 12128/* 232 */ 12129/***/ (function(module, exports, __webpack_require__) { 12130 12131var memoizeCapped = __webpack_require__(233); 12132 12133/** Used to match property names within property paths. */ 12134var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g; 12135 12136/** Used to match backslashes in property paths. */ 12137var reEscapeChar = /\\(\\)?/g; 12138 12139/** 12140 * Converts `string` to a property path array.
vendor: 5,053 bytes, lines 12141-12334
12141 * 12142 * @private 12143 * @param {string} string The string to convert. 12144 * @returns {Array} Returns the property path array. 12145 */ 12146var stringToPath = memoizeCapped(function(string) { 12147 var result = []; 12148 if (string.charCodeAt(0) === 46 /* . */) { 12149 result.push(''); 12150 } 12151 string.replace(rePropName, function(match, number, quote, subString) { 12152 result.push(quote ? subString.replace(reEscapeChar, '$1') : (number || match)); 12153 }); 12154 return result; 12155}); 12156 12157module.exports = stringToPath; 12158 12159 12160/***/ }), 12161/* 233 */ 12162/***/ (function(module, exports, __webpack_require__) { 12163 12164var memoize = __webpack_require__(234); 12165 12166/** Used as the maximum memoize cache size. */ 12167var MAX_MEMOIZE_SIZE = 500; 12168 12169/** 12170 * A specialized version of `_.memoize` which clears the memoized function's 12171 * cache when it exceeds `MAX_MEMOIZE_SIZE`. 12172 * 12173 * @private 12174 * @param {Function} func The function to have its output memoized. 12175 * @returns {Function} Returns the new memoized function. 12176 */ 12177function memoizeCapped(func) { 12178 var result = memoize(func, function(key) { 12179 if (cache.size === MAX_MEMOIZE_SIZE) { 12180 cache.clear(); 12181 } 12182 return key; 12183 }); 12184 12185 var cache = result.cache; 12186 return result; 12187} 12188 12189module.exports = memoizeCapped; 12190 12191 12192/***/ }), 12193/* 234 */ 12194/***/ (function(module, exports, __webpack_require__) { 12195 12196var MapCache = __webpack_require__(49); 12197 12198/** Error message constants. */ 12199var FUNC_ERROR_TEXT = 'Expected a function'; 12200 12201/** 12202 * Creates a function that memoizes the result of `func`. If `resolver` is 12203 * provided, it determines the cache key for storing the result based on the 12204 * arguments provided to the memoized function. By default, the first argument 12205 * provided to the memoized function is used as the map cache key. The `func` 12206 * is invoked with the `this` binding of the memoized function. 12207 * 12208 * **Note:** The cache is exposed as the `cache` property on the memoized 12209 * function. Its creation may be customized by replacing the `_.memoize.Cache` 12210 * constructor with one whose instances implement the 12211 * [`Map`](http://ecma-international.org/ecma-262/7.0/#sec-properties-of-the-map-prototype-object) 12212 * method interface of `clear`, `delete`, `get`, `has`, and `set`. 12213 * 12214 * @static 12215 * @memberOf _ 12216 * @since 0.1.0 12217 * @category Function 12218 * @param {Function} func The function to have its output memoized. 12219 * @param {Function} [resolver] The function to resolve the cache key. 12220 * @returns {Function} Returns the new memoized function. 12221 * @example 12222 * 12223 * var object = { 'a': 1, 'b': 2 }; 12224 * var other = { 'c': 3, 'd': 4 }; 12225 * 12226 * var values = _.memoize(_.values); 12227 * values(object); 12228 * // => [1, 2] 12229 * 12230 * values(other); 12231 * // => [3, 4] 12232 * 12233 * object.a = 2; 12234 * values(object); 12235 * // => [1, 2] 12236 * 12237 * // Modify the result cache. 12238 * values.cache.set(object, ['a', 'b']); 12239 * values(object); 12240 * // => ['a', 'b'] 12241 * 12242 * // Replace `_.memoize.Cache`. 12243 * _.memoize.Cache = WeakMap; 12244 */ 12245function memoize(func, resolver) { 12246 if (typeof func != 'function' || (resolver != null && typeof resolver != 'function')) { 12247 throw new TypeError(FUNC_ERROR_TEXT); 12248 } 12249 var memoized = function() { 12250 var args = arguments, 12251 key = resolver ? resolver.apply(this, args) : args[0], 12252 cache = memoized.cache; 12253 12254 if (cache.has(key)) { 12255 return cache.get(key); 12256 } 12257 var result = func.apply(this, args); 12258 memoized.cache = cache.set(key, result) || cache; 12259 return result; 12260 }; 12261 memoized.cache = new (memoize.Cache || MapCache); 12262 return memoized; 12263} 12264 12265// Expose `MapCache`. 12266memoize.Cache = MapCache; 12267 12268module.exports = memoize; 12269 12270 12271/***/ }), 12272/* 235 */ 12273/***/ (function(module, exports, __webpack_require__) { 12274 12275var baseToString = __webpack_require__(236); 12276 12277/** 12278 * Converts `value` to a string. An empty string is returned for `null` 12279 * and `undefined` values. The sign of `-0` is preserved. 12280 * 12281 * @static 12282 * @memberOf _ 12283 * @since 4.0.0 12284 * @category Lang 12285 * @param {*} value The value to convert. 12286 * @returns {string} Returns the converted string. 12287 * @example 12288 * 12289 * _.toString(null); 12290 * // => '' 12291 * 12292 * _.toString(-0); 12293 * // => '-0' 12294 * 12295 * _.toString([1, 2, 3]); 12296 * // => '1,2,3' 12297 */ 12298function toString(value) { 12299 return value == null ? '' : baseToString(value); 12300} 12301 12302module.exports = toString; 12303 12304 12305/***/ }), 12306/* 236 */ 12307/***/ (function(module, exports, __webpack_require__) { 12308 12309var Symbol = __webpack_require__(19), 12310 arrayMap = __webpack_require__(103), 12311 isArray = __webpack_require__(1), 12312 isSymbol = __webpack_require__(36); 12313 12314/** Used as references for various `Number` constants. */ 12315var INFINITY = 1 / 0; 12316 12317/** Used to convert symbols to primitives and strings. */ 12318var symbolProto = Symbol ? Symbol.prototype : undefined, 12319 symbolToString = symbolProto ? symbolProto.toString : undefined; 12320 12321/** 12322 * The base implementation of `_.toString` which doesn't convert nullish 12323 * values to empty strings. 12324 * 12325 * @private 12326 * @param {*} value The value to process. 12327 * @returns {string} Returns the string. 12328 */ 12329function baseToString(value) { 12330 // Exit early for strings to avoid a performance hit in some environments. 12331 if (typeof value == 'string') { 12332 return value; 12333 } 12334 if (isArray(value)) {
vendor: 2,364 bytes, lines 12335-12432
12335 // Recursively convert values (susceptible to call stack limits). 12336 return arrayMap(value, baseToString) + ''; 12337 } 12338 if (isSymbol(value)) { 12339 return symbolToString ? symbolToString.call(value) : ''; 12340 } 12341 var result = (value + ''); 12342 return (result == '0' && (1 / value) == -INFINITY) ? '-0' : result; 12343} 12344 12345module.exports = baseToString; 12346 12347 12348/***/ }), 12349/* 237 */ 12350/***/ (function(module, exports, __webpack_require__) { 12351 12352var baseHasIn = __webpack_require__(238), 12353 hasPath = __webpack_require__(239); 12354 12355/** 12356 * Checks if `path` is a direct or inherited property of `object`. 12357 * 12358 * @static 12359 * @memberOf _ 12360 * @since 4.0.0 12361 * @category Object 12362 * @param {Object} object The object to query. 12363 * @param {Array|string} path The path to check. 12364 * @returns {boolean} Returns `true` if `path` exists, else `false`. 12365 * @example 12366 * 12367 * var object = _.create({ 'a': _.create({ 'b': 2 }) }); 12368 * 12369 * _.hasIn(object, 'a'); 12370 * // => true 12371 * 12372 * _.hasIn(object, 'a.b'); 12373 * // => true 12374 * 12375 * _.hasIn(object, ['a', 'b']); 12376 * // => true 12377 * 12378 * _.hasIn(object, 'b'); 12379 * // => false 12380 */ 12381function hasIn(object, path) { 12382 return object != null && hasPath(object, path, baseHasIn); 12383} 12384 12385module.exports = hasIn; 12386 12387 12388/***/ }), 12389/* 238 */ 12390/***/ (function(module, exports) { 12391 12392/** 12393 * The base implementation of `_.hasIn` without support for deep paths. 12394 * 12395 * @private 12396 * @param {Object} [object] The object to query. 12397 * @param {Array|string} key The key to check. 12398 * @returns {boolean} Returns `true` if `key` exists, else `false`. 12399 */ 12400function baseHasIn(object, key) { 12401 return object != null && key in Object(object); 12402} 12403 12404module.exports = baseHasIn; 12405 12406 12407/***/ }), 12408/* 239 */ 12409/***/ (function(module, exports, __webpack_require__) { 12410 12411var castPath = __webpack_require__(35), 12412 isArguments = __webpack_require__(33), 12413 isArray = __webpack_require__(1), 12414 isIndex = __webpack_require__(52), 12415 isLength = __webpack_require__(54), 12416 toKey = __webpack_require__(20); 12417 12418/** 12419 * Checks if `path` exists on `object`. 12420 * 12421 * @private 12422 * @param {Object} object The object to query. 12423 * @param {Array|string} path The path to check. 12424 * @param {Function} hasFunc The function to check properties. 12425 * @returns {boolean} Returns `true` if `path` exists, else `false`. 12426 */ 12427function hasPath(object, path, hasFunc) { 12428 path = castPath(path, object); 12429 12430 var index = -1, 12431 length = path.length, 12432 result = false;
vendor: 4,465 bytes, lines 12433-12622
12433 12434 while (++index < length) { 12435 var key = toKey(path[index]); 12436 if (!(result = object != null && hasFunc(object, key))) { 12437 break; 12438 } 12439 object = object[key]; 12440 } 12441 if (result || ++index != length) { 12442 return result; 12443 } 12444 length = object == null ? 0 : object.length; 12445 return !!length && isLength(length) && isIndex(key, length) && 12446 (isArray(object) || isArguments(object)); 12447} 12448 12449module.exports = hasPath; 12450 12451 12452/***/ }), 12453/* 240 */ 12454/***/ (function(module, exports, __webpack_require__) { 12455 12456var baseProperty = __webpack_require__(104), 12457 basePropertyDeep = __webpack_require__(241), 12458 isKey = __webpack_require__(59), 12459 toKey = __webpack_require__(20); 12460 12461/** 12462 * Creates a function that returns the value at `path` of a given object. 12463 * 12464 * @static 12465 * @memberOf _ 12466 * @since 2.4.0 12467 * @category Util 12468 * @param {Array|string} path The path of the property to get. 12469 * @returns {Function} Returns the new accessor function. 12470 * @example 12471 * 12472 * var objects = [ 12473 * { 'a': { 'b': 2 } }, 12474 * { 'a': { 'b': 1 } } 12475 * ]; 12476 * 12477 * _.map(objects, _.property('a.b')); 12478 * // => [2, 1] 12479 * 12480 * _.map(_.sortBy(objects, _.property(['a', 'b'])), 'a.b'); 12481 * // => [1, 2] 12482 */ 12483function property(path) { 12484 return isKey(path) ? baseProperty(toKey(path)) : basePropertyDeep(path); 12485} 12486 12487module.exports = property; 12488 12489 12490/***/ }), 12491/* 241 */ 12492/***/ (function(module, exports, __webpack_require__) { 12493 12494var baseGet = __webpack_require__(58); 12495 12496/** 12497 * A specialized version of `baseProperty` which supports deep paths. 12498 * 12499 * @private 12500 * @param {Array|string} path The path of the property to get. 12501 * @returns {Function} Returns the new accessor function. 12502 */ 12503function basePropertyDeep(path) { 12504 return function(object) { 12505 return baseGet(object, path); 12506 }; 12507} 12508 12509module.exports = basePropertyDeep; 12510 12511 12512/***/ }), 12513/* 242 */ 12514/***/ (function(module, exports, __webpack_require__) { 12515 12516var baseFindIndex = __webpack_require__(105), 12517 baseIteratee = __webpack_require__(7), 12518 toInteger = __webpack_require__(106); 12519 12520/* Built-in method references for those with the same name as other `lodash` methods. */ 12521var nativeMax = Math.max; 12522 12523/** 12524 * This method is like `_.find` except that it returns the index of the first 12525 * element `predicate` returns truthy for instead of the element itself. 12526 * 12527 * @static 12528 * @memberOf _ 12529 * @since 1.1.0 12530 * @category Array 12531 * @param {Array} array The array to inspect. 12532 * @param {Function} [predicate=_.identity] The function invoked per iteration. 12533 * @param {number} [fromIndex=0] The index to search from. 12534 * @returns {number} Returns the index of the found element, else `-1`. 12535 * @example 12536 * 12537 * var users = [ 12538 * { 'user': 'barney', 'active': false }, 12539 * { 'user': 'fred', 'active': false }, 12540 * { 'user': 'pebbles', 'active': true } 12541 * ]; 12542 * 12543 * _.findIndex(users, function(o) { return o.user == 'barney'; }); 12544 * // => 0 12545 * 12546 * // The `_.matches` iteratee shorthand. 12547 * _.findIndex(users, { 'user': 'fred', 'active': false }); 12548 * // => 1 12549 * 12550 * // The `_.matchesProperty` iteratee shorthand. 12551 * _.findIndex(users, ['active', false]); 12552 * // => 0 12553 * 12554 * // The `_.property` iteratee shorthand. 12555 * _.findIndex(users, 'active'); 12556 * // => 2 12557 */ 12558function findIndex(array, predicate, fromIndex) { 12559 var length = array == null ? 0 : array.length; 12560 if (!length) { 12561 return -1; 12562 } 12563 var index = fromIndex == null ? 0 : toInteger(fromIndex); 12564 if (index < 0) { 12565 index = nativeMax(length + index, 0); 12566 } 12567 return baseFindIndex(array, baseIteratee(predicate, 3), index); 12568} 12569 12570module.exports = findIndex; 12571 12572 12573/***/ }), 12574/* 243 */ 12575/***/ (function(module, exports, __webpack_require__) { 12576 12577var toNumber = __webpack_require__(61); 12578 12579/** Used as references for various `Number` constants. */ 12580var INFINITY = 1 / 0, 12581 MAX_INTEGER = 1.7976931348623157e+308; 12582 12583/** 12584 * Converts `value` to a finite number. 12585 * 12586 * @static 12587 * @memberOf _ 12588 * @since 4.12.0 12589 * @category Lang 12590 * @param {*} value The value to convert. 12591 * @returns {number} Returns the converted number. 12592 * @example 12593 * 12594 * _.toFinite(3.2); 12595 * // => 3.2 12596 * 12597 * _.toFinite(Number.MIN_VALUE); 12598 * // => 5e-324 12599 * 12600 * _.toFinite(Infinity); 12601 * // => 1.7976931348623157e+308 12602 * 12603 * _.toFinite('3.2'); 12604 * // => 3.2 12605 */ 12606function toFinite(value) { 12607 if (!value) { 12608 return value === 0 ? value : 0; 12609 } 12610 value = toNumber(value); 12611 if (value === INFINITY || value === -INFINITY) { 12612 var sign = (value < 0 ? -1 : 1); 12613 return sign * MAX_INTEGER; 12614 } 12615 return value === value ? value : 0; 12616} 12617 12618module.exports = toFinite; 12619 12620 12621/***/ }), 12622/* 244 */
12623/***/ (function(module, exports) { 12624 12625function _arrayWithoutHoles(arr) { 12626 if (Array.isArray(arr)) { 12627 for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) { 12628 arr2[i] = arr[i]; 12629 } 12630 12631 return arr2; 12632 } 12633} 12634 12635module.exports = _arrayWithoutHoles; 12636 12637/***/ }), 12638/* 245 */ 12639/***/ (function(module, exports) { 12640 12641function _iterableToArray(iter) { 12642 if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter); 12643} 12644 12645module.exports = _iterableToArray; 12646 12647/***/ }), 12648/* 246 */ 12649/***/ (function(module, exports) { 12650 12651function _nonIterableSpread() { 12652 throw new TypeError("Invalid attempt to spread non-iterable instance"); 12653} 12654 12655module.exports = _nonIterableSpread; 12656 12657/***/ }), 12658/* 247 */ 12659/***/ (function(module, exports, __webpack_require__) { 12660 12661"use strict"; 12662 12663 12664Object.defineProperty(exports, "__esModule", { 12665 value: true 12666}); 12667exports.createElementState = createElementState; 12668exports.mergeActionState = mergeActionState; 12669exports.ixElements = void 0; 12670 12671var _timm = __webpack_require__(18); 12672 12673var _constants = __webpack_require__(2); 12674 12675var _constants$IX2EngineC = _constants.IX2EngineConstants, 12676 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 12677 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 12678 ABSTRACT_NODE = _constants$IX2EngineC.ABSTRACT_NODE, 12679 CONFIG_X_VALUE = _constants$IX2EngineC.CONFIG_X_VALUE, 12680 CONFIG_Y_VALUE = _constants$IX2EngineC.CONFIG_Y_VALUE, 12681 CONFIG_Z_VALUE = _constants$IX2EngineC.CONFIG_Z_VALUE, 12682 CONFIG_VALUE = _constants$IX2EngineC.CONFIG_VALUE, 12683 CONFIG_X_UNIT = _constants$IX2EngineC.CONFIG_X_UNIT, 12684 CONFIG_Y_UNIT = _constants$IX2EngineC.CONFIG_Y_UNIT, 12685 CONFIG_Z_UNIT = _constants$IX2EngineC.CONFIG_Z_UNIT, 12686 CONFIG_UNIT = _constants$IX2EngineC.CONFIG_UNIT; 12687var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 12688 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 12689 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 12690 IX2_ELEMENT_STATE_CHANGED = _constants$IX2EngineA.IX2_ELEMENT_STATE_CHANGED; 12691var initialState = {}; 12692var refState = 'refState'; 12693 12694var ixElements = function ixElements() { 12695 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState; 12696 var action = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 12697 12698 switch (action.type) { 12699 case IX2_SESSION_STOPPED: 12700 { 12701 return initialState; 12702 } 12703 12704 case IX2_INSTANCE_ADDED: 12705 { 12706 var _action$payload = action.payload, 12707 elementId = _action$payload.elementId, 12708 ref = _action$payload.element, 12709 origin = _action$payload.origin, 12710 actionItem = _action$payload.actionItem, 12711 refType = _action$payload.refType; 12712 var actionTypeId = actionItem.actionTypeId; 12713 var newState = state; // Create new ref entry if it doesn't exist 12714 12715 if ((0, _timm.getIn)(newState, [elementId, ref]) !== ref) { 12716 newState = createElementState(newState, ref, refType, elementId, actionItem); 12717 } // Merge origin values into ref state 12718 12719 12720 return mergeActionState(newState, elementId, actionTypeId, origin, actionItem); 12721 } 12722 12723 case IX2_ELEMENT_STATE_CHANGED: 12724 { 12725 var _action$payload2 = action.payload, 12726 _elementId = _action$payload2.elementId, 12727 _actionTypeId = _action$payload2.actionTypeId, 12728 current = _action$payload2.current, 12729 _actionItem = _action$payload2.actionItem; 12730 return mergeActionState(state, _elementId, _actionTypeId, current, _actionItem); 12731 } 12732 12733 default: 12734 { 12735 return state; 12736 } 12737 } 12738}; 12739 12740exports.ixElements = ixElements; 12741 12742function createElementState(state, ref, refType, elementId, actionItem) { 12743 var refId = refType === PLAIN_OBJECT ? (0, _timm.getIn)(actionItem, ['config', 'target', 'objectId']) : null; 12744 return (0, _timm.mergeIn)(state, [elementId], { 12745 id: elementId, 12746 ref: ref, 12747 refId: refId, 12748 refType: refType 12749 }); 12750} 12751 12752function mergeActionState(state, elementId, actionTypeId, actionState, // FIXME: weak type is used 12753actionItem) { 12754 var units = pickUnits(actionItem); 12755 var mergePath = [elementId, refState, actionTypeId]; 12756 return (0, _timm.mergeIn)(state, mergePath, actionState, units); 12757} 12758 12759var 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 12760// eslint-disable-next-line flowtype/no-weak-types 12761 12762function pickUnits(actionItem) { 12763 var config = actionItem.config; 12764 return valueUnitPairs.reduce(function (result, pair) { 12765 var valueKey = pair[0]; 12766 var unitKey = pair[1]; 12767 var configValue = config[valueKey]; 12768 var configUnit = config[unitKey]; 12769 12770 if (configValue != null && configUnit != null) { 12771 result[unitKey] = configUnit; 12772 } 12773 12774 return result; 12775 }, {}); 12776} 12777 12778/***/ }), 12779/* 248 */ 12780/***/ (function(module, exports, __webpack_require__) { 12781 12782"use strict"; 12783 12784 12785Object.defineProperty(exports, "__esModule", { 12786 value: true 12787}); 12788exports.clearPlugin = exports.renderPlugin = exports.createPluginInstance = exports.getPluginDestination = exports.getPluginOrigin = exports.getPluginDuration = exports.getPluginConfig = void 0; 12789/* eslint-env browser */ 12790// $FlowFixMe 12791 12792var getPluginConfig = function getPluginConfig(actionItemConfig) { 12793 return actionItemConfig.value; 12794}; // $FlowFixMe 12795 12796 12797exports.getPluginConfig = getPluginConfig; 12798 12799var getPluginDuration = function getPluginDuration(element, actionItem) { 12800 if (actionItem.config.duration !== 'auto') { 12801 return null; 12802 } 12803 12804 var duration = parseFloat(element.getAttribute('data-duration')); 12805 12806 if (duration > 0) { 12807 return duration * 1000; 12808 } 12809 12810 return parseFloat(element.getAttribute('data-default-duration')) * 1000; 12811}; // $FlowFixMe 12812 12813 12814exports.getPluginDuration = getPluginDuration; 12815 12816var getPluginOrigin = function getPluginOrigin(refState) { 12817 return refState || { 12818 value: 0 12819 }; 12820}; // $FlowFixMe 12821 12822 12823exports.getPluginOrigin = getPluginOrigin; 12824 12825var getPluginDestination = function getPluginDestination(actionItemConfig) { 12826 return { 12827 value: actionItemConfig.value 12828 }; 12829}; // $FlowFixMe 12830 12831 12832exports.getPluginDestination = getPluginDestination; 12833 12834var createPluginInstance = function createPluginInstance(element) { 12835 var instance = window.Webflow.require('lottie').createInstance(element); 12836 12837 instance.stop(); 12838 instance.setSubframe(true); 12839 return instance; 12840}; // $FlowFixMe 12841 12842 12843exports.createPluginInstance = createPluginInstance; 12844 12845var renderPlugin = function renderPlugin(pluginInstance, refState, actionItem) { 12846 if (!pluginInstance) { 12847 return; 12848 } 12849 12850 var percent = refState[actionItem.actionTypeId].value / 100; 12851 pluginInstance.goToFrame(pluginInstance.frames * percent); 12852}; // $FlowFixMe 12853 12854 12855exports.renderPlugin = renderPlugin; 12856 12857var clearPlugin = function clearPlugin(element) { 12858 var instance = window.Webflow.require('lottie').createInstance(element); 12859 12860 instance.stop(); 12861}; 12862 12863exports.clearPlugin = clearPlugin; 12864 12865/***/ }), 12866/* 249 */ 12867/***/ (function(module, exports, __webpack_require__) { 12868 12869"use strict"; 12870 12871 12872var _interopRequireDefault2 = __webpack_require__(0); 12873 12874var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); 12875 12876var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 12877
12878var _Object$freeze, _Object$freeze2, _transformDefaults; 12879 12880var _interopRequireDefault = __webpack_require__(0); 12881 12882Object.defineProperty(exports, "__esModule", { 12883 value: true 12884}); 12885exports.getInstanceId = getInstanceId; 12886exports.getElementId = getElementId; 12887exports.reifyState = reifyState; 12888exports.observeStore = observeStore; 12889exports.getAffectedElements = getAffectedElements; 12890exports.getComputedStyle = getComputedStyle; 12891exports.getInstanceOrigin = getInstanceOrigin; 12892exports.getDestinationValues = getDestinationValues; 12893exports.getRenderType = getRenderType; 12894exports.getStyleProp = getStyleProp; 12895exports.renderHTMLElement = renderHTMLElement; 12896exports.clearAllStyles = clearAllStyles; 12897exports.cleanupHTMLElement = cleanupHTMLElement; 12898exports.getMaxDurationItemIndex = getMaxDurationItemIndex; 12899exports.getActionListProgress = getActionListProgress; 12900exports.reduceListToGroup = reduceListToGroup; 12901exports.shouldNamespaceEventParameter = shouldNamespaceEventParameter; 12902exports.getNamespacedParameterId = getNamespacedParameterId; 12903exports.shouldAllowMediaQuery = shouldAllowMediaQuery; 12904exports.mediaQueriesEqual = mediaQueriesEqual; 12905exports.stringifyTarget = stringifyTarget; 12906exports.getItemConfigByKey = void 0; 12907 12908var _defaultTo = _interopRequireDefault(__webpack_require__(250)); 12909 12910var _reduce = _interopRequireDefault(__webpack_require__(251)); 12911 12912var _findLast = _interopRequireDefault(__webpack_require__(257)); 12913 12914var _get = _interopRequireDefault(__webpack_require__(34)); 12915 12916var _timm = __webpack_require__(18); 12917 12918var _shallowEqual = _interopRequireDefault(__webpack_require__(114)); 12919 12920var _constants = __webpack_require__(2); 12921 12922var _IX2EasingUtils = __webpack_require__(109); 12923 12924var _IX2VanillaPlugins = __webpack_require__(111); 12925 12926var _IX2BrowserSupport = __webpack_require__(46); 12927/* eslint-env browser */ 12928 12929 12930var _constants$IX2EngineC = _constants.IX2EngineConstants, 12931 BACKGROUND = _constants$IX2EngineC.BACKGROUND, 12932 TRANSFORM = _constants$IX2EngineC.TRANSFORM, 12933 TRANSLATE_3D = _constants$IX2EngineC.TRANSLATE_3D, 12934 SCALE_3D = _constants$IX2EngineC.SCALE_3D, 12935 ROTATE_X = _constants$IX2EngineC.ROTATE_X, 12936 ROTATE_Y = _constants$IX2EngineC.ROTATE_Y, 12937 ROTATE_Z = _constants$IX2EngineC.ROTATE_Z, 12938 SKEW = _constants$IX2EngineC.SKEW, 12939 PRESERVE_3D = _constants$IX2EngineC.PRESERVE_3D, 12940 FLEX = _constants$IX2EngineC.FLEX, 12941 OPACITY = _constants$IX2EngineC.OPACITY, 12942 FILTER = _constants$IX2EngineC.FILTER, 12943 WIDTH = _constants$IX2EngineC.WIDTH, 12944 HEIGHT = _constants$IX2EngineC.HEIGHT, 12945 BACKGROUND_COLOR = _constants$IX2EngineC.BACKGROUND_COLOR, 12946 BORDER_COLOR = _constants$IX2EngineC.BORDER_COLOR, 12947 COLOR = _constants$IX2EngineC.COLOR, 12948 CHILDREN = _constants$IX2EngineC.CHILDREN, 12949 IMMEDIATE_CHILDREN = _constants$IX2EngineC.IMMEDIATE_CHILDREN, 12950 SIBLINGS = _constants$IX2EngineC.SIBLINGS, 12951 PARENT = _constants$IX2EngineC.PARENT, 12952 DISPLAY = _constants$IX2EngineC.DISPLAY, 12953 WILL_CHANGE = _constants$IX2EngineC.WILL_CHANGE, 12954 AUTO = _constants$IX2EngineC.AUTO, 12955 COMMA_DELIMITER = _constants$IX2EngineC.COMMA_DELIMITER, 12956 COLON_DELIMITER = _constants$IX2EngineC.COLON_DELIMITER, 12957 BAR_DELIMITER = _constants$IX2EngineC.BAR_DELIMITER, 12958 RENDER_TRANSFORM = _constants$IX2EngineC.RENDER_TRANSFORM, 12959 RENDER_GENERAL = _constants$IX2EngineC.RENDER_GENERAL, 12960 RENDER_STYLE = _constants$IX2EngineC.RENDER_STYLE, 12961 RENDER_PLUGIN = _constants$IX2EngineC.RENDER_PLUGIN; 12962var _constants$ActionType = _constants.ActionTypeConsts, 12963 TRANSFORM_MOVE = _constants$ActionType.TRANSFORM_MOVE, 12964 TRANSFORM_SCALE = _constants$ActionType.TRANSFORM_SCALE, 12965 TRANSFORM_ROTATE = _constants$ActionType.TRANSFORM_ROTATE, 12966 TRANSFORM_SKEW = _constants$ActionType.TRANSFORM_SKEW, 12967 STYLE_OPACITY = _constants$ActionType.STYLE_OPACITY, 12968 STYLE_FILTER = _constants$ActionType.STYLE_FILTER, 12969 STYLE_SIZE = _constants$ActionType.STYLE_SIZE,
12970 STYLE_BACKGROUND_COLOR = _constants$ActionType.STYLE_BACKGROUND_COLOR, 12971 STYLE_BORDER = _constants$ActionType.STYLE_BORDER, 12972 STYLE_TEXT_COLOR = _constants$ActionType.STYLE_TEXT_COLOR, 12973 GENERAL_DISPLAY = _constants$ActionType.GENERAL_DISPLAY; 12974var OBJECT_VALUE = 'OBJECT_VALUE'; 12975 12976var trim = function trim(v) { 12977 return v.trim(); 12978}; 12979 12980var 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)); 12981var 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)); 12982var objectCache = {}; 12983var instanceCount = 1; 12984 12985function getInstanceId() { 12986 return 'i' + instanceCount++; 12987} 12988 12989var elementCount = 1; // $FlowFixMe 12990 12991function getElementId(ixElements, ref) { 12992 // TODO: optimize element lookup 12993 for (var key in ixElements) { 12994 var ixEl = ixElements[key]; 12995 12996 if (ixEl && ixEl.ref === ref) { 12997 return ixEl.id; 12998 } 12999 } 13000 13001 return 'e' + elementCount++; 13002} // $FlowFixMe 13003 13004 13005function reifyState() { 13006 var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}, 13007 events = _ref.events, 13008 actionLists = _ref.actionLists, 13009 site = _ref.site; 13010 13011 var eventTypeMap = (0, _reduce["default"])(events, function (result, event) { 13012 var eventTypeId = event.eventTypeId; 13013 13014 if (!result[eventTypeId]) { 13015 result[eventTypeId] = {}; 13016 } 13017 13018 result[eventTypeId][event.id] = event; 13019 return result; 13020 }, {}); 13021 var mediaQueries = site && site.mediaQueries; 13022 var mediaQueryKeys = []; 13023 13024 if (mediaQueries) { 13025 mediaQueryKeys = mediaQueries.map(function (mq) { 13026 return mq.key; 13027 }); 13028 } else { 13029 mediaQueries = []; 13030 console.warn("IX2 missing mediaQueries in site data"); 13031 } 13032 13033 return { 13034 ixData: { 13035 events: events, 13036 actionLists: actionLists, 13037 eventTypeMap: eventTypeMap, 13038 mediaQueries: mediaQueries, 13039 mediaQueryKeys: mediaQueryKeys 13040 } 13041 }; 13042} 13043 13044var strictEqual = function strictEqual(a, b) { 13045 return a === b; 13046}; // $FlowFixMe 13047 13048 13049function observeStore(_ref2) { 13050 var store = _ref2.store, 13051 select = _ref2.select, 13052 onChange = _ref2.onChange, 13053 _ref2$comparator = _ref2.comparator, 13054 comparator = _ref2$comparator === void 0 ? strictEqual : _ref2$comparator; 13055 var getState = store.getState, 13056 subscribe = store.subscribe; 13057 var unsubscribe = subscribe(handleChange); 13058 var currentState = select(getState()); 13059 13060 function handleChange() { 13061 var nextState = select(getState()); 13062 13063 if (nextState == null) { 13064 unsubscribe(); 13065 return; 13066 } 13067 13068 if (!comparator(nextState, currentState)) { 13069 currentState = nextState; 13070 onChange(currentState, store); 13071 } 13072 } 13073 13074 return unsubscribe; 13075} 13076 13077function normalizeTarget(target) { 13078 var type = (0, _typeof2["default"])(target); 13079 13080 if (type === 'string') { 13081 return { 13082 id: target 13083 }; 13084 } else if (target != null && type === 'object') { 13085 var id = target.id, 13086 objectId = target.objectId, 13087 selector = target.selector, 13088 selectorGuids = target.selectorGuids, 13089 appliesTo = target.appliesTo, 13090 useEventTarget = target.useEventTarget; 13091 return { 13092 id: id, 13093 objectId: objectId, 13094 selector: selector, 13095 selectorGuids: selectorGuids, 13096 appliesTo: appliesTo, 13097 useEventTarget: useEventTarget 13098 }; 13099 } 13100 13101 return {}; 13102} // $FlowFixMe 13103 13104 13105function getAffectedElements(_ref3) { 13106 var config = _ref3.config, 13107 event = _ref3.event, 13108 eventTarget = _ref3.eventTarget, 13109 elementRoot = _ref3.elementRoot, 13110 elementApi = _ref3.elementApi; 13111 13112 if (!elementApi) { 13113 throw new Error('IX2 missing elementApi'); 13114 } 13115 13116 var getValidDocument = elementApi.getValidDocument, 13117 getQuerySelector = elementApi.getQuerySelector, 13118 queryDocument = elementApi.queryDocument, 13119 getChildElements = elementApi.getChildElements,
13120 getSiblingElements = elementApi.getSiblingElements, 13121 matchSelector = elementApi.matchSelector, 13122 elementContains = elementApi.elementContains, 13123 isSiblingNode = elementApi.isSiblingNode; 13124 var target = config.target; 13125 13126 if (!target) { 13127 return []; 13128 } 13129 13130 var _normalizeTarget = normalizeTarget(target), 13131 id = _normalizeTarget.id, 13132 objectId = _normalizeTarget.objectId, 13133 selector = _normalizeTarget.selector, 13134 selectorGuids = _normalizeTarget.selectorGuids, 13135 appliesTo = _normalizeTarget.appliesTo, 13136 useEventTarget = _normalizeTarget.useEventTarget; 13137 13138 if (objectId) { 13139 var ref = objectCache[objectId] || (objectCache[objectId] = {}); 13140 return [ref]; 13141 } 13142 13143 if (appliesTo === _constants.EventAppliesTo.PAGE) { 13144 var doc = getValidDocument(id); 13145 return doc ? [doc] : []; 13146 } 13147 13148 var overrides = (0, _get["default"])(event, 'action.config.affectedElements', {}); 13149 var override = overrides[id || selector] || {}; 13150 var validOverride = Boolean(override.id || override.selector); 13151 var limitAffectedElements; 13152 var baseSelector; 13153 var finalSelector; 13154 var eventTargetSelector = event && getQuerySelector(normalizeTarget(event.target)); 13155 13156 if (validOverride) { 13157 limitAffectedElements = override.limitAffectedElements; 13158 baseSelector = eventTargetSelector; 13159 finalSelector = getQuerySelector(override); 13160 } else { 13161 // pass in selectorGuids as well for server-side rendering. 13162 baseSelector = finalSelector = getQuerySelector({ 13163 id: id, 13164 selector: selector, 13165 selectorGuids: selectorGuids 13166 }); 13167 } 13168 13169 if (event && useEventTarget) { 13170 // eventTarget is not defined when this function is called in a clear request, so find 13171 // all target elements associated with the event data, and return affected elements. 13172 var eventTargets = eventTarget && (finalSelector || useEventTarget === true) ? [eventTarget] : queryDocument(eventTargetSelector); 13173 13174 if (finalSelector) { 13175 if (useEventTarget === PARENT) { 13176 return queryDocument(finalSelector).filter(function (parentElement) { 13177 return eventTargets.some(function (targetElement) { 13178 return elementContains(parentElement, targetElement); 13179 }); 13180 }); 13181 } 13182 13183 if (useEventTarget === CHILDREN) { 13184 return queryDocument(finalSelector).filter(function (childElement) { 13185 return eventTargets.some(function (targetElement) { 13186 return elementContains(targetElement, childElement); 13187 }); 13188 }); 13189 } 13190 13191 if (useEventTarget === SIBLINGS) { 13192 return queryDocument(finalSelector).filter(function (siblingElement) { 13193 return eventTargets.some(function (targetElement) { 13194 return isSiblingNode(targetElement, siblingElement); 13195 }); 13196 }); 13197 } 13198 } 13199 13200 return eventTargets; 13201 } 13202 13203 if (baseSelector == null || finalSelector == null) { 13204 return []; 13205 } 13206 13207 if (_IX2BrowserSupport.IS_BROWSER_ENV && elementRoot) { 13208 return queryDocument(finalSelector).filter(function (element) { 13209 return elementRoot.contains(element); 13210 }); 13211 } 13212 13213 if (limitAffectedElements === CHILDREN) { 13214 return queryDocument(baseSelector, finalSelector); 13215 } else if (limitAffectedElements === IMMEDIATE_CHILDREN) { 13216 return getChildElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 13217 } else if (limitAffectedElements === SIBLINGS) { 13218 return getSiblingElements(queryDocument(baseSelector)).filter(matchSelector(finalSelector)); 13219 } else { 13220 return queryDocument(finalSelector); 13221 } 13222} // $FlowFixMe 13223 13224 13225function getComputedStyle(_ref4) { 13226 var element = _ref4.element, 13227 actionItem = _ref4.actionItem; 13228 13229 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13230 return {}; 13231 } 13232 13233 var actionTypeId = actionItem.actionTypeId; 13234 13235 switch (actionTypeId) { 13236 case STYLE_SIZE: 13237 case STYLE_BACKGROUND_COLOR: 13238 case STYLE_BORDER: 13239 case STYLE_TEXT_COLOR: 13240 case GENERAL_DISPLAY: 13241 return window.getComputedStyle(element); 13242 13243 default: 13244 return {}; 13245 } 13246} 13247 13248var pxValueRegex = /px/; 13249 13250var getFilterDefaults = function getFilterDefaults(actionState, filters) { 13251 return filters.reduce(function (result, filter) { 13252 if (result[filter.type] == null) { 13253 result[filter.type] = filterDefaults[filter.type]; 13254 } 13255 13256 return result; 13257 }, actionState || {}); 13258}; 13259 13260function getInstanceOrigin( // $FlowFixMe 13261element) { 13262 var refState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 13263 var computedStyle = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; 13264 var // $FlowFixMe 13265 actionItem = arguments.length > 3 ? arguments[3] : undefined; 13266 var // $FlowFixMe 13267 elementApi = arguments.length > 4 ? arguments[4] : undefined;
13268 var getStyle = elementApi.getStyle; 13269 var actionTypeId = actionItem.actionTypeId, 13270 config = actionItem.config; 13271 13272 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13273 // $FlowFixMe 13274 return (0, _IX2VanillaPlugins.getPluginOrigin)(actionTypeId)(refState[actionTypeId]); 13275 } 13276 13277 switch (actionTypeId) { 13278 case TRANSFORM_MOVE: 13279 case TRANSFORM_SCALE: 13280 case TRANSFORM_ROTATE: 13281 case TRANSFORM_SKEW: 13282 return refState[actionTypeId] || transformDefaults[actionTypeId]; 13283 13284 case STYLE_FILTER: 13285 return getFilterDefaults(refState[actionTypeId], actionItem.config.filters); 13286 13287 case STYLE_OPACITY: 13288 return { 13289 value: (0, _defaultTo["default"])(parseFloat(getStyle(element, OPACITY)), 1.0) 13290 }; 13291 13292 case STYLE_SIZE: 13293 { 13294 var inlineWidth = getStyle(element, WIDTH); 13295 var inlineHeight = getStyle(element, HEIGHT); 13296 var widthValue; 13297 var heightValue; // When destination unit is 'AUTO', ensure origin values are in px 13298 13299 if (config.widthUnit === AUTO) { 13300 widthValue = pxValueRegex.test(inlineWidth) ? parseFloat(inlineWidth) : parseFloat(computedStyle.width); 13301 } else { 13302 widthValue = (0, _defaultTo["default"])(parseFloat(inlineWidth), parseFloat(computedStyle.width)); 13303 } 13304 13305 if (config.heightUnit === AUTO) { 13306 heightValue = pxValueRegex.test(inlineHeight) ? parseFloat(inlineHeight) : parseFloat(computedStyle.height); 13307 } else { 13308 heightValue = (0, _defaultTo["default"])(parseFloat(inlineHeight), parseFloat(computedStyle.height)); 13309 } 13310 13311 return { 13312 widthValue: widthValue, 13313 heightValue: heightValue 13314 }; 13315 } 13316 13317 case STYLE_BACKGROUND_COLOR: 13318 case STYLE_BORDER: 13319 case STYLE_TEXT_COLOR: 13320 return parseColor({ 13321 element: element, 13322 actionTypeId: actionTypeId, 13323 computedStyle: computedStyle, 13324 getStyle: getStyle 13325 }); 13326 13327 case GENERAL_DISPLAY: 13328 return { 13329 value: (0, _defaultTo["default"])(getStyle(element, DISPLAY), computedStyle.display) 13330 }; 13331 13332 case OBJECT_VALUE: 13333 return refState[actionTypeId] || { 13334 value: 0 13335 }; 13336 13337 default: 13338 return; 13339 } 13340} 13341 13342var reduceFilters = function reduceFilters(result, filter) { 13343 if (filter) { 13344 result[filter.type] = filter.value || 0; 13345 } 13346 13347 return result; 13348}; // $FlowFixMe 13349 13350 13351var getItemConfigByKey = function getItemConfigByKey(actionTypeId, key, config) { 13352 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13353 // $FlowFixMe 13354 return (0, _IX2VanillaPlugins.getPluginConfig)(actionTypeId)(config, key); 13355 } 13356 13357 switch (actionTypeId) { 13358 case STYLE_FILTER: 13359 { 13360 var filter = (0, _findLast["default"])(config.filters, function (_ref5) { 13361 var type = _ref5.type; 13362 return type === key; 13363 }); 13364 return filter ? filter.value : 0; 13365 } 13366 13367 default: 13368 return config[key]; 13369 } 13370}; // $FlowFixMe 13371 13372 13373exports.getItemConfigByKey = getItemConfigByKey; 13374 13375function getDestinationValues(_ref6) { 13376 var element = _ref6.element, 13377 actionItem = _ref6.actionItem, 13378 elementApi = _ref6.elementApi; 13379 var actionTypeId = actionItem.actionTypeId; 13380 13381 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13382 // $FlowFixMe 13383 return (0, _IX2VanillaPlugins.getPluginDestination)(actionTypeId)(actionItem.config); 13384 } 13385 13386 switch (actionTypeId) { 13387 case TRANSFORM_MOVE: 13388 case TRANSFORM_SCALE: 13389 case TRANSFORM_ROTATE: 13390 case TRANSFORM_SKEW: 13391 { 13392 var _actionItem$config = actionItem.config, 13393 xValue = _actionItem$config.xValue, 13394 yValue = _actionItem$config.yValue, 13395 zValue = _actionItem$config.zValue; 13396 return { 13397 xValue: xValue, 13398 yValue: yValue, 13399 zValue: zValue 13400 }; 13401 } 13402 13403 case STYLE_SIZE: 13404 {
13405 var getStyle = elementApi.getStyle, 13406 setStyle = elementApi.setStyle, 13407 getProperty = elementApi.getProperty; 13408 var _actionItem$config2 = actionItem.config, 13409 widthUnit = _actionItem$config2.widthUnit, 13410 heightUnit = _actionItem$config2.heightUnit; 13411 var _actionItem$config3 = actionItem.config, 13412 widthValue = _actionItem$config3.widthValue, 13413 heightValue = _actionItem$config3.heightValue; 13414 13415 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13416 return { 13417 widthValue: widthValue, 13418 heightValue: heightValue 13419 }; 13420 } 13421 13422 if (widthUnit === AUTO) { 13423 var temp = getStyle(element, WIDTH); 13424 setStyle(element, WIDTH, ''); 13425 widthValue = getProperty(element, 'offsetWidth'); 13426 setStyle(element, WIDTH, temp); 13427 } 13428 13429 if (heightUnit === AUTO) { 13430 var _temp = getStyle(element, HEIGHT); 13431 13432 setStyle(element, HEIGHT, ''); 13433 heightValue = getProperty(element, 'offsetHeight'); 13434 setStyle(element, HEIGHT, _temp); 13435 } 13436 13437 return { 13438 widthValue: widthValue, 13439 heightValue: heightValue 13440 }; 13441 } 13442 13443 case STYLE_BACKGROUND_COLOR: 13444 case STYLE_BORDER: 13445 case STYLE_TEXT_COLOR: 13446 { 13447 var _actionItem$config4 = actionItem.config, 13448 rValue = _actionItem$config4.rValue, 13449 gValue = _actionItem$config4.gValue, 13450 bValue = _actionItem$config4.bValue, 13451 aValue = _actionItem$config4.aValue; 13452 return { 13453 rValue: rValue, 13454 gValue: gValue, 13455 bValue: bValue, 13456 aValue: aValue 13457 }; 13458 } 13459 13460 case STYLE_FILTER: 13461 { 13462 return actionItem.config.filters.reduce(reduceFilters, {}); 13463 } 13464 13465 default: 13466 { 13467 var value = actionItem.config.value; 13468 return { 13469 value: value 13470 }; 13471 } 13472 } 13473} // $FlowFixMe 13474 13475 13476function getRenderType(actionTypeId) { 13477 if (/^TRANSFORM_/.test(actionTypeId)) { 13478 return RENDER_TRANSFORM; 13479 } 13480 13481 if (/^STYLE_/.test(actionTypeId)) { 13482 return RENDER_STYLE; 13483 } 13484 13485 if (/^GENERAL_/.test(actionTypeId)) { 13486 return RENDER_GENERAL; 13487 } 13488 13489 if (/^PLUGIN_/.test(actionTypeId)) { 13490 return RENDER_PLUGIN; 13491 } 13492} // $FlowFixMe 13493 13494 13495function getStyleProp(renderType, actionTypeId) { 13496 return renderType === RENDER_STYLE ? actionTypeId.replace('STYLE_', '').toLowerCase() : null; 13497} 13498 13499function renderHTMLElement( // $FlowFixMe 13500element, // $FlowFixMe 13501refState, // $FlowFixMe 13502actionState, // $FlowFixMe 13503eventId, // $FlowFixMe 13504actionItem, // $FlowFixMe 13505styleProp, // $FlowFixMe 13506elementApi, // $FlowFixMe 13507renderType, // $FlowFixMe 13508pluginInstance) { 13509 switch (renderType) { 13510 case RENDER_TRANSFORM: 13511 { 13512 return renderTransform(element, refState, actionState, actionItem, elementApi); 13513 } 13514 13515 case RENDER_STYLE: 13516 { 13517 return renderStyle(element, refState, actionState, actionItem, styleProp, elementApi); 13518 } 13519 13520 case RENDER_GENERAL: 13521 { 13522 return renderGeneral(element, actionItem, elementApi); 13523 } 13524 13525 case RENDER_PLUGIN: 13526 { 13527 var actionTypeId = actionItem.actionTypeId; 13528 13529 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13530 // $FlowFixMe 13531 return (0, _IX2VanillaPlugins.renderPlugin)(actionTypeId)(pluginInstance, refState, actionItem); 13532 } 13533 } 13534 } 13535} 13536 13537var transformDefaults = (_transformDefaults = {}, (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_MOVE, Object.freeze({ 13538 xValue: 0, 13539 yValue: 0, 13540 zValue: 0 13541})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SCALE, Object.freeze({ 13542 xValue: 1, 13543 yValue: 1, 13544 zValue: 1 13545})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_ROTATE, Object.freeze({ 13546 xValue: 0, 13547 yValue: 0, 13548 zValue: 0 13549})), (0, _defineProperty2["default"])(_transformDefaults, TRANSFORM_SKEW, Object.freeze({ 13550 xValue: 0, 13551 yValue: 0 13552})), _transformDefaults); 13553var filterDefaults = Object.freeze({ 13554 blur: 0, 13555 'hue-rotate': 0, 13556 invert: 0, 13557 grayscale: 0, 13558 saturate: 100, 13559 sepia: 0, 13560 contrast: 100, 13561 brightness: 100 13562}); 13563 13564var getFilterUnit = function getFilterUnit(filterType, actionItemConfig) { 13565 var filter = (0, _findLast["default"])(actionItemConfig.filters, function (_ref7) { 13566 var type = _ref7.type; 13567 return type === filterType; 13568 }); 13569 13570 if (filter && filter.unit) { 13571 return filter.unit; 13572 } 13573 13574 switch (filterType) { 13575 case 'blur': 13576 return 'px'; 13577 13578 case 'hue-rotate': 13579 return 'deg'; 13580 13581 default: 13582 return '%'; 13583 } 13584}; 13585 13586var transformKeys = Object.keys(transformDefaults); 13587 13588function renderTransform(element, refState, actionState, actionItem, elementApi) { 13589 var newTransform = transformKeys.map(function (actionTypeId) { 13590 var defaults = transformDefaults[actionTypeId]; 13591 13592 var _ref8 = refState[actionTypeId] || {}, 13593 _ref8$xValue = _ref8.xValue, 13594 xValue = _ref8$xValue === void 0 ? defaults.xValue : _ref8$xValue, 13595 _ref8$yValue = _ref8.yValue, 13596 yValue = _ref8$yValue === void 0 ? defaults.yValue : _ref8$yValue, 13597 _ref8$zValue = _ref8.zValue, 13598 zValue = _ref8$zValue === void 0 ? defaults.zValue : _ref8$zValue, 13599 _ref8$xUnit = _ref8.xUnit, 13600 xUnit = _ref8$xUnit === void 0 ? '' : _ref8$xUnit, 13601 _ref8$yUnit = _ref8.yUnit, 13602 yUnit = _ref8$yUnit === void 0 ? '' : _ref8$yUnit, 13603 _ref8$zUnit = _ref8.zUnit, 13604 zUnit = _ref8$zUnit === void 0 ? '' : _ref8$zUnit; 13605 13606 switch (actionTypeId) { 13607 case TRANSFORM_MOVE: 13608 return "".concat(TRANSLATE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13609 13610 case TRANSFORM_SCALE:
13611 return "".concat(SCALE_3D, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ", ").concat(zValue).concat(zUnit, ")"); 13612 13613 case TRANSFORM_ROTATE: 13614 return "".concat(ROTATE_X, "(").concat(xValue).concat(xUnit, ") ").concat(ROTATE_Y, "(").concat(yValue).concat(yUnit, ") ").concat(ROTATE_Z, "(").concat(zValue).concat(zUnit, ")"); 13615 13616 case TRANSFORM_SKEW: 13617 return "".concat(SKEW, "(").concat(xValue).concat(xUnit, ", ").concat(yValue).concat(yUnit, ")"); 13618 13619 default: 13620 return ''; 13621 } 13622 }).join(' '); 13623 var setStyle = elementApi.setStyle; 13624 addWillChange(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13625 setStyle(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, newTransform); // Set transform-style: preserve-3d 13626 13627 if (hasDefined3dTransform(actionItem, actionState)) { 13628 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, PRESERVE_3D); 13629 } 13630} 13631 13632function renderFilter(element, actionState, actionItemConfig, elementApi) { 13633 var filterValue = (0, _reduce["default"])(actionState, function (result, value, type) { 13634 return "".concat(result, " ").concat(type, "(").concat(value).concat(getFilterUnit(type, actionItemConfig), ")"); 13635 }, ''); 13636 var setStyle = elementApi.setStyle; 13637 addWillChange(element, FILTER, elementApi); 13638 setStyle(element, FILTER, filterValue); 13639} 13640 13641function hasDefined3dTransform(_ref9, _ref10) { 13642 var actionTypeId = _ref9.actionTypeId; 13643 var xValue = _ref10.xValue, 13644 yValue = _ref10.yValue, 13645 zValue = _ref10.zValue; 13646 // TRANSLATE_Z 13647 return actionTypeId === TRANSFORM_MOVE && zValue !== undefined || // SCALE_Z 13648 actionTypeId === TRANSFORM_SCALE && zValue !== undefined || // ROTATE_X or ROTATE_Y 13649 actionTypeId === TRANSFORM_ROTATE && (xValue !== undefined || yValue !== undefined); 13650} 13651 13652var paramCapture = '\\(([^)]+)\\)'; 13653var rgbValidRegex = /^rgb/; 13654var rgbMatchRegex = RegExp("rgba?".concat(paramCapture)); 13655 13656function getFirstMatch(regex, value) { 13657 var match = regex.exec(value); 13658 return match ? match[1] : ''; 13659} 13660 13661function parseColor(_ref11) { 13662 var element = _ref11.element, 13663 actionTypeId = _ref11.actionTypeId, 13664 computedStyle = _ref11.computedStyle, 13665 getStyle = _ref11.getStyle; 13666 var prop = colorStyleProps[actionTypeId]; 13667 var inlineValue = getStyle(element, prop); 13668 var value = rgbValidRegex.test(inlineValue) ? inlineValue : computedStyle[prop]; 13669 var matches = getFirstMatch(rgbMatchRegex, value).split(COMMA_DELIMITER); 13670 return { 13671 rValue: (0, _defaultTo["default"])(parseInt(matches[0], 10), 255), 13672 gValue: (0, _defaultTo["default"])(parseInt(matches[1], 10), 255), 13673 bValue: (0, _defaultTo["default"])(parseInt(matches[2], 10), 255), 13674 aValue: (0, _defaultTo["default"])(parseFloat(matches[3]), 1) 13675 }; 13676} 13677
13678function renderStyle(element, refState, actionState, actionItem, styleProp, elementApi) { 13679 var setStyle = elementApi.setStyle; 13680 var actionTypeId = actionItem.actionTypeId, 13681 config = actionItem.config; 13682 13683 switch (actionTypeId) { 13684 case STYLE_SIZE: 13685 { 13686 var _actionItem$config5 = actionItem.config, 13687 _actionItem$config5$w = _actionItem$config5.widthUnit, 13688 widthUnit = _actionItem$config5$w === void 0 ? '' : _actionItem$config5$w, 13689 _actionItem$config5$h = _actionItem$config5.heightUnit, 13690 heightUnit = _actionItem$config5$h === void 0 ? '' : _actionItem$config5$h; 13691 var widthValue = actionState.widthValue, 13692 heightValue = actionState.heightValue; 13693 13694 if (widthValue !== undefined) { 13695 if (widthUnit === AUTO) { 13696 widthUnit = 'px'; 13697 } 13698 13699 addWillChange(element, WIDTH, elementApi); 13700 setStyle(element, WIDTH, widthValue + widthUnit); 13701 } 13702 13703 if (heightValue !== undefined) { 13704 if (heightUnit === AUTO) { 13705 heightUnit = 'px'; 13706 } 13707 13708 addWillChange(element, HEIGHT, elementApi); 13709 setStyle(element, HEIGHT, heightValue + heightUnit); 13710 } 13711 13712 break; 13713 } 13714 13715 case STYLE_FILTER: 13716 { 13717 renderFilter(element, actionState, config, elementApi); 13718 break; 13719 } 13720 13721 case STYLE_BACKGROUND_COLOR: 13722 case STYLE_BORDER: 13723 case STYLE_TEXT_COLOR: 13724 { 13725 var prop = colorStyleProps[actionTypeId]; 13726 var rValue = Math.round(actionState.rValue); 13727 var gValue = Math.round(actionState.gValue); 13728 var bValue = Math.round(actionState.bValue); 13729 var aValue = actionState.aValue; 13730 addWillChange(element, prop, elementApi); 13731 setStyle(element, prop, aValue >= 1 ? "rgb(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ")") : "rgba(".concat(rValue, ",").concat(gValue, ",").concat(bValue, ",").concat(aValue, ")")); 13732 break; 13733 } 13734 13735 default: 13736 { 13737 var _config$unit = config.unit, 13738 unit = _config$unit === void 0 ? '' : _config$unit; 13739 addWillChange(element, styleProp, elementApi); 13740 setStyle(element, styleProp, actionState.value + unit); 13741 break; 13742 } 13743 } 13744} 13745 13746function renderGeneral(element, actionItem, elementApi) { 13747 var setStyle = elementApi.setStyle; 13748 13749 switch (actionItem.actionTypeId) { 13750 case GENERAL_DISPLAY: 13751 { 13752 var value = actionItem.config.value; 13753 13754 if (value === FLEX && _IX2BrowserSupport.IS_BROWSER_ENV) { 13755 setStyle(element, DISPLAY, _IX2BrowserSupport.FLEX_PREFIXED); 13756 } else { 13757 setStyle(element, DISPLAY, value); 13758 } 13759 13760 return; 13761 } 13762 } 13763} 13764 13765function addWillChange(element, prop, elementApi) { 13766 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13767 return; 13768 } // $FlowFixMe 13769 13770
13771 var validProp = willChangeProps[prop]; 13772 13773 if (!validProp) { 13774 return; 13775 } 13776 13777 var getStyle = elementApi.getStyle, 13778 setStyle = elementApi.setStyle; 13779 var value = getStyle(element, WILL_CHANGE); 13780 13781 if (!value) { 13782 setStyle(element, WILL_CHANGE, validProp); 13783 return; 13784 } 13785 13786 var values = value.split(COMMA_DELIMITER).map(trim); 13787 13788 if (values.indexOf(validProp) === -1) { 13789 setStyle(element, WILL_CHANGE, values.concat(validProp).join(COMMA_DELIMITER)); 13790 } 13791} 13792 13793function removeWillChange(element, prop, elementApi) { 13794 if (!_IX2BrowserSupport.IS_BROWSER_ENV) { 13795 return; 13796 } // $FlowFixMe 13797 13798 13799 var validProp = willChangeProps[prop]; 13800 13801 if (!validProp) { 13802 return; 13803 } 13804 13805 var getStyle = elementApi.getStyle, 13806 setStyle = elementApi.setStyle; 13807 var value = getStyle(element, WILL_CHANGE); 13808 13809 if (!value || value.indexOf(validProp) === -1) { 13810 return; 13811 } 13812 13813 setStyle(element, WILL_CHANGE, value.split(COMMA_DELIMITER).map(trim).filter(function (v) { 13814 return v !== validProp; 13815 }).join(COMMA_DELIMITER)); 13816} // $FlowFixMe 13817 13818 13819function clearAllStyles(_ref12) { 13820 var store = _ref12.store, 13821 elementApi = _ref12.elementApi; 13822 13823 var _store$getState = store.getState(), 13824 ixData = _store$getState.ixData; 13825 13826 var _ixData$events = ixData.events, 13827 events = _ixData$events === void 0 ? {} : _ixData$events, 13828 _ixData$actionLists = ixData.actionLists, 13829 actionLists = _ixData$actionLists === void 0 ? {} : _ixData$actionLists; 13830 Object.keys(events).forEach(function (eventId) { 13831 var event = events[eventId]; 13832 var config = event.action.config; 13833 var actionListId = config.actionListId; 13834 var actionList = actionLists[actionListId]; 13835 13836 if (actionList) { 13837 clearActionListStyles({ 13838 actionList: actionList, 13839 event: event, 13840 elementApi: elementApi 13841 }); 13842 } 13843 }); 13844 Object.keys(actionLists).forEach(function (actionListId) { 13845 clearActionListStyles({ 13846 actionList: actionLists[actionListId], 13847 elementApi: elementApi 13848 }); 13849 }); 13850} // $FlowFixMe 13851 13852 13853function clearActionListStyles(_ref13) { 13854 var _ref13$actionList = _ref13.actionList, 13855 actionList = _ref13$actionList === void 0 ? {} : _ref13$actionList, 13856 event = _ref13.event, 13857 elementApi = _ref13.elementApi; 13858 var actionItemGroups = actionList.actionItemGroups, 13859 continuousParameterGroups = actionList.continuousParameterGroups; 13860 actionItemGroups && actionItemGroups.forEach(function (actionGroup) { 13861 clearActionGroupStyles({ 13862 actionGroup: actionGroup, 13863 event: event, 13864 elementApi: elementApi 13865 }); 13866 }); 13867 continuousParameterGroups && continuousParameterGroups.forEach(function (paramGroup) { 13868 var continuousActionGroups = paramGroup.continuousActionGroups; 13869 continuousActionGroups.forEach(function (actionGroup) { 13870 clearActionGroupStyles({ 13871 actionGroup: actionGroup, 13872 event: event, 13873 elementApi: elementApi 13874 }); 13875 }); 13876 }); 13877} 13878 13879function clearActionGroupStyles(_ref14) { 13880 var actionGroup = _ref14.actionGroup, 13881 event = _ref14.event, 13882 elementApi = _ref14.elementApi; 13883 var actionItems = actionGroup.actionItems; 13884 actionItems.forEach(function (_ref15) { 13885 var actionTypeId = _ref15.actionTypeId, 13886 config = _ref15.config; 13887 var clearElement; 13888 13889 if ((0, _IX2VanillaPlugins.isPluginType)(actionTypeId)) { 13890 clearElement = (0, _IX2VanillaPlugins.clearPlugin)(actionTypeId); 13891 } else { 13892 clearElement = processElementByType({ 13893 effect: clearStyleProp, 13894 actionTypeId: actionTypeId, 13895 elementApi: elementApi 13896 }); 13897 } 13898 13899 getAffectedElements({ 13900 config: config, 13901 event: event, 13902 elementApi: elementApi 13903 }
13903).forEach(clearElement); 13904 }); 13905} // $FlowFixMe 13906 13907 13908function cleanupHTMLElement(element, actionItem, elementApi) { 13909 var setStyle = elementApi.setStyle, 13910 getStyle = elementApi.getStyle; 13911 var actionTypeId = actionItem.actionTypeId; 13912 13913 if (actionTypeId === STYLE_SIZE) { 13914 var config = actionItem.config; 13915 13916 if (config.widthUnit === AUTO) { 13917 setStyle(element, WIDTH, ''); 13918 } 13919 13920 if (config.heightUnit === AUTO) { 13921 setStyle(element, HEIGHT, ''); 13922 } 13923 } 13924 13925 if (getStyle(element, WILL_CHANGE)) { 13926 processElementByType({ 13927 effect: removeWillChange, 13928 actionTypeId: actionTypeId, 13929 elementApi: elementApi 13930 })(element); 13931 } 13932} 13933 13934var processElementByType = function processElementByType(_ref16) { 13935 var effect = _ref16.effect, 13936 actionTypeId = _ref16.actionTypeId, 13937 elementApi = _ref16.elementApi; 13938 return function (element) { 13939 switch (actionTypeId) { 13940 case TRANSFORM_MOVE: 13941 case TRANSFORM_SCALE: 13942 case TRANSFORM_ROTATE: 13943 case TRANSFORM_SKEW: 13944 effect(element, _IX2BrowserSupport.TRANSFORM_PREFIXED, elementApi); 13945 break; 13946 13947 case STYLE_FILTER: 13948 effect(element, FILTER, elementApi); 13949 break; 13950 13951 case STYLE_OPACITY: 13952 effect(element, OPACITY, elementApi); 13953 break; 13954 13955 case STYLE_SIZE: 13956 effect(element, WIDTH, elementApi); 13957 effect(element, HEIGHT, elementApi); 13958 break; 13959 13960 case STYLE_BACKGROUND_COLOR: 13961 case STYLE_BORDER: 13962 case STYLE_TEXT_COLOR: 13963 effect(element, colorStyleProps[actionTypeId], elementApi); 13964 break; 13965 13966 case GENERAL_DISPLAY: 13967 effect(element, DISPLAY, elementApi); 13968 break; 13969 } 13970 }; 13971}; 13972 13973function clearStyleProp(element, prop, elementApi) { 13974 var setStyle = elementApi.setStyle; 13975 removeWillChange(element, prop, elementApi); 13976 setStyle(element, prop, ''); // Clear transform-style: preserve-3d 13977 13978 if (prop === _IX2BrowserSupport.TRANSFORM_PREFIXED) { 13979 setStyle(element, _IX2BrowserSupport.TRANSFORM_STYLE_PREFIXED, ''); 13980 } 13981} // $FlowFixMe 13982 13983 13984function getMaxDurationItemIndex(actionItems) { 13985 var maxDuration = 0; 13986 var resultIndex = 0; 13987 actionItems.forEach(function (actionItem, index) { 13988 var config = actionItem.config; 13989 var total = config.delay + config.duration; 13990 13991 if (total >= maxDuration) { 13992 maxDuration = total; 13993 resultIndex = index; 13994 } 13995 }); 13996 return resultIndex; 13997} // $FlowFixMe 13998 13999 14000function getActionListProgress(actionList, instance) { 14001 var actionItemGroups = actionList.actionItemGroups, 14002 useFirstGroupAsInitialState = actionList.useFirstGroupAsInitialState; 14003 var instanceItem = instance.actionItem, 14004 _instance$verboseTime = instance.verboseTimeElapsed, 14005 verboseTimeElapsed = _instance$verboseTime === void 0 ? 0 : _instance$verboseTime; 14006 var totalDuration = 0; 14007 var elapsedDuration = 0; 14008 actionItemGroups.forEach(function (group, index) { 14009 if (useFirstGroupAsInitialState && index === 0) { 14010 return; 14011 } 14012 14013 var actionItems = group.actionItems; 14014 var carrierItem = actionItems[getMaxDurationItemIndex(actionItems)]; 14015 var config = carrierItem.config, 14016 actionTypeId = carrierItem.actionTypeId; 14017 14018 if (instanceItem.id === carrierItem.id) { 14019 elapsedDuration = totalDuration + verboseTimeElapsed; 14020 } 14021 14022 var duration = getRenderType(actionTypeId) === RENDER_GENERAL ? 0 : config.duration; 14023 totalDuration += config.delay + duration; 14024 }); 14025 return totalDuration > 0 ? (0, _IX2EasingUtils.optimizeFloat)(elapsedDuration / totalDuration) : 0; 14026} // $FlowFixMe 14027 14028 14029function reduceListToGroup(_ref17) { 14030 var actionList = _ref17.actionList, 14031 actionItemId = _ref17.actionItemId, 14032 rawData = _ref17.rawData; 14033 var actionItemGroups = actionList.actionItemGroups, 14034 continuousParameterGroups = actionList.continuousParameterGroups; 14035 var newActionItems = []; 14036 14037 var takeItemUntilMatch = function takeItemUntilMatch(actionItem) { 14038 newActionItems.push((0, _timm.mergeIn)(actionItem, ['config'], { 14039 delay: 0, 14040 duration: 0 14041 })); 14042 return actionItem.id === actionItemId; 14043 }; 14044 14045 actionItemGroups && actionItemGroups.some(function (_ref18) { 14046 var actionItems = _ref18.actionItems; 14047 return actionItems.some(takeItemUntilMatch); 14048 }); 14049 continuousParameterGroups && continuousParameterGroups.some(function (paramGroup) { 14050 var continuousActionGroups = paramGroup.continuousActionGroups; 14051 return continuousActionGroups.some(function (_ref19) { 14052 var actionItems = _ref19.actionItems; 14053 return actionItems.some(takeItemUntilMatch); 14054 }); 14055 }); 14056 return (0, _timm.setIn)(rawData, ['actionLists'], (0, _defineProperty2["default"])({}, actionList.id, { 14057 id: actionList.id, 14058 actionItemGroups: [{ 14059 actionItems: newActionItems 14060 }] 14061 })); 14062} // $FlowFixMe 14063 14064 14065function shouldNamespaceEventParameter(eventTypeId, _ref21) { 14066 var basedOn = _ref21.basedOn; 14067 return eventTypeId === _constants.EventTypeConsts.SCROLLING_IN_VIEW && (basedOn === _constants.EventBasedOn.ELEMENT || basedOn == null) || eventTypeId === _constants.EventTypeConsts.MOUSE_MOVE && basedOn === _constants.EventBasedOn.ELEMENT; 14068} 14069 14070function getNamespacedParameterId(eventStateKey, continuousParameterGroupId) { 14071 var namespacedParameterId = eventStateKey + COLON_DELIMITER + continuousParameterGroupId; 14072 return namespacedParameterId; 14073} // $FlowFixMe 14074 14075 14076function shouldAllowMediaQuery(mediaQueries, mediaQueryKey) { 14077 // During design mode, current media query key does not exist 14078 if (mediaQueryKey == null) { 14079 return true; 14080 } 14081 14082 return mediaQueries.indexOf(mediaQueryKey) !== -1; 14083} // $FlowFixMe 14084 14085 14086function mediaQueriesEqual(listA, listB) { 14087 return (0, _shallowEqual["default"])(listA && listA.sort(), listB && listB.sort()); 14088} // $FlowFixMe 14089 14090 14091function stringifyTarget(target) { 14092 if (typeof target === 'string') { 14093 return target; 14094 } 14095 14096 var _target$id = target.id, 14097 id = _target$id === void 0 ? '' : _target$id, 14098 _target$selector = target.selector, 14099 selector = _target$selector === void 0 ? '' : _target$selector, 14100 _target$useEventTarge = target.useEventTarget, 14101 useEventTarget = _target$useEventTarge === void 0 ? '' : _target$useEventTarge; 14102 return id + BAR_DELIMITER + selector + BAR_DELIMITER + useEventTarget; 14103} 14104 14105/***/ }), 14106/* 250 */
vendor: 5,734 bytes, lines 14107-14317
14107/***/ (function(module, exports) { 14108 14109/** 14110 * Checks `value` to determine whether a default value should be returned in 14111 * its place. The `defaultValue` is returned if `value` is `NaN`, `null`, 14112 * or `undefined`. 14113 * 14114 * @static 14115 * @memberOf _ 14116 * @since 4.14.0 14117 * @category Util 14118 * @param {*} value The value to check. 14119 * @param {*} defaultValue The default value. 14120 * @returns {*} Returns the resolved value. 14121 * @example 14122 * 14123 * _.defaultTo(1, 10); 14124 * // => 1 14125 * 14126 * _.defaultTo(undefined, 10); 14127 * // => 10 14128 */ 14129function defaultTo(value, defaultValue) { 14130 return (value == null || value !== value) ? defaultValue : value; 14131} 14132 14133module.exports = defaultTo; 14134 14135 14136/***/ }), 14137/* 251 */ 14138/***/ (function(module, exports, __webpack_require__) { 14139 14140var arrayReduce = __webpack_require__(252), 14141 baseEach = __webpack_require__(112), 14142 baseIteratee = __webpack_require__(7), 14143 baseReduce = __webpack_require__(256), 14144 isArray = __webpack_require__(1); 14145 14146/** 14147 * Reduces `collection` to a value which is the accumulated result of running 14148 * each element in `collection` thru `iteratee`, where each successive 14149 * invocation is supplied the return value of the previous. If `accumulator` 14150 * is not given, the first element of `collection` is used as the initial 14151 * value. The iteratee is invoked with four arguments: 14152 * (accumulator, value, index|key, collection). 14153 * 14154 * Many lodash methods are guarded to work as iteratees for methods like 14155 * `_.reduce`, `_.reduceRight`, and `_.transform`. 14156 * 14157 * The guarded methods are: 14158 * `assign`, `defaults`, `defaultsDeep`, `includes`, `merge`, `orderBy`, 14159 * and `sortBy` 14160 * 14161 * @static 14162 * @memberOf _ 14163 * @since 0.1.0 14164 * @category Collection 14165 * @param {Array|Object} collection The collection to iterate over. 14166 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 14167 * @param {*} [accumulator] The initial value. 14168 * @returns {*} Returns the accumulated value. 14169 * @see _.reduceRight 14170 * @example 14171 * 14172 * _.reduce([1, 2], function(sum, n) { 14173 * return sum + n; 14174 * }, 0); 14175 * // => 3 14176 * 14177 * _.reduce({ 'a': 1, 'b': 2, 'c': 1 }, function(result, value, key) { 14178 * (result[value] || (result[value] = [])).push(key); 14179 * return result; 14180 * }, {}); 14181 * // => { '1': ['a', 'c'], '2': ['b'] } (iteration order is not guaranteed) 14182 */ 14183function reduce(collection, iteratee, accumulator) { 14184 var func = isArray(collection) ? arrayReduce : baseReduce, 14185 initAccum = arguments.length < 3; 14186 14187 return func(collection, baseIteratee(iteratee, 4), accumulator, initAccum, baseEach); 14188} 14189 14190module.exports = reduce; 14191 14192 14193/***/ }), 14194/* 252 */ 14195/***/ (function(module, exports) { 14196 14197/** 14198 * A specialized version of `_.reduce` for arrays without support for 14199 * iteratee shorthands. 14200 * 14201 * @private 14202 * @param {Array} [array] The array to iterate over. 14203 * @param {Function} iteratee The function invoked per iteration. 14204 * @param {*} [accumulator] The initial value. 14205 * @param {boolean} [initAccum] Specify using the first element of `array` as 14206 * the initial value. 14207 * @returns {*} Returns the accumulated value. 14208 */ 14209function arrayReduce(array, iteratee, accumulator, initAccum) { 14210 var index = -1, 14211 length = array == null ? 0 : array.length; 14212 14213 if (initAccum && length) { 14214 accumulator = array[++index]; 14215 } 14216 while (++index < length) { 14217 accumulator = iteratee(accumulator, array[index], index, array); 14218 } 14219 return accumulator; 14220} 14221 14222module.exports = arrayReduce; 14223 14224 14225/***/ }), 14226/* 253 */ 14227/***/ (function(module, exports, __webpack_require__) { 14228 14229var createBaseFor = __webpack_require__(254); 14230 14231/** 14232 * The base implementation of `baseForOwn` which iterates over `object` 14233 * properties returned by `keysFunc` and invokes `iteratee` for each property. 14234 * Iteratee functions may exit iteration early by explicitly returning `false`. 14235 * 14236 * @private 14237 * @param {Object} object The object to iterate over. 14238 * @param {Function} iteratee The function invoked per iteration. 14239 * @param {Function} keysFunc The function to get the keys of `object`. 14240 * @returns {Object} Returns `object`. 14241 */ 14242var baseFor = createBaseFor(); 14243 14244module.exports = baseFor; 14245 14246 14247/***/ }), 14248/* 254 */ 14249/***/ (function(module, exports) { 14250 14251/** 14252 * Creates a base function for methods like `_.forIn` and `_.forOwn`. 14253 * 14254 * @private 14255 * @param {boolean} [fromRight] Specify iterating from right to left. 14256 * @returns {Function} Returns the new base function. 14257 */ 14258function createBaseFor(fromRight) { 14259 return function(object, iteratee, keysFunc) { 14260 var index = -1, 14261 iterable = Object(object), 14262 props = keysFunc(object), 14263 length = props.length; 14264 14265 while (length--) { 14266 var key = props[fromRight ? length : ++index]; 14267 if (iteratee(iterable[key], key, iterable) === false) { 14268 break; 14269 } 14270 } 14271 return object; 14272 }; 14273} 14274 14275module.exports = createBaseFor; 14276 14277 14278/***/ }), 14279/* 255 */ 14280/***/ (function(module, exports, __webpack_require__) { 14281 14282var isArrayLike = __webpack_require__(12); 14283 14284/** 14285 * Creates a `baseEach` or `baseEachRight` function. 14286 * 14287 * @private 14288 * @param {Function} eachFunc The function to iterate over a collection. 14289 * @param {boolean} [fromRight] Specify iterating from right to left. 14290 * @returns {Function} Returns the new base function. 14291 */ 14292function createBaseEach(eachFunc, fromRight) { 14293 return function(collection, iteratee) { 14294 if (collection == null) { 14295 return collection; 14296 } 14297 if (!isArrayLike(collection)) { 14298 return eachFunc(collection, iteratee); 14299 } 14300 var length = collection.length, 14301 index = fromRight ? length : -1, 14302 iterable = Object(collection); 14303 14304 while ((fromRight ? index-- : ++index < length)) { 14305 if (iteratee(iterable[index], index, iterable) === false) { 14306 break; 14307 } 14308 } 14309 return collection; 14310 }; 14311} 14312 14313module.exports = createBaseEach; 14314 14315 14316/***/ }), 14317/* 256 */
14318/***/ (function(module, exports) { 14319 14320/** 14321 * The base implementation of `_.reduce` and `_.reduceRight`, without support 14322 * for iteratee shorthands, which iterates over `collection` using `eachFunc`. 14323 * 14324 * @private 14325 * @param {Array|Object} collection The collection to iterate over. 14326 * @param {Function} iteratee The function invoked per iteration. 14327 * @param {*} accumulator The initial value. 14328 * @param {boolean} initAccum Specify using the first or last element of 14329 * `collection` as the initial value. 14330 * @param {Function} eachFunc The function to iterate over `collection`. 14331 * @returns {*} Returns the accumulated value. 14332 */ 14333function baseReduce(collection, iteratee, accumulator, initAccum, eachFunc) { 14334 eachFunc(collection, function(value, index, collection) { 14335 accumulator = initAccum 14336 ? (initAccum = false, value) 14337 : iteratee(accumulator, value, index, collection); 14338 }); 14339 return accumulator; 14340} 14341 14342module.exports = baseReduce; 14343 14344 14345/***/ }), 14346/* 257 */ 14347/***/ (function(module, exports, __webpack_require__) { 14348 14349var createFind = __webpack_require__(87), 14350 findLastIndex = __webpack_require__(258); 14351 14352/** 14353 * This method is like `_.find` except that it iterates over elements of 14354 * `collection` from right to left. 14355 * 14356 * @static 14357 * @memberOf _ 14358 * @since 2.0.0 14359 * @category Collection 14360 * @param {Array|Object} collection The collection to inspect. 14361 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14362 * @param {number} [fromIndex=collection.length-1] The index to search from. 14363 * @returns {*} Returns the matched element, else `undefined`. 14364 * @example 14365 * 14366 * _.findLast([1, 2, 3, 4], function(n) { 14367 * return n % 2 == 1; 14368 * }); 14369 * // => 3 14370 */ 14371var findLast = createFind(findLastIndex); 14372 14373module.exports = findLast; 14374 14375 14376/***/ }), 14377/* 258 */ 14378/***/ (function(module, exports, __webpack_require__) { 14379 14380var baseFindIndex = __webpack_require__(105), 14381 baseIteratee = __webpack_require__(7), 14382 toInteger = __webpack_require__(106); 14383 14384/* Built-in method references for those with the same name as other `lodash` methods. */ 14385var nativeMax = Math.max, 14386 nativeMin = Math.min; 14387 14388/** 14389 * This method is like `_.findIndex` except that it iterates over elements 14390 * of `collection` from right to left. 14391 * 14392 * @static 14393 * @memberOf _ 14394 * @since 2.0.0 14395 * @category Array 14396 * @param {Array} array The array to inspect. 14397 * @param {Function} [predicate=_.identity] The function invoked per iteration. 14398 * @param {number} [fromIndex=array.length-1] The index to search from. 14399 * @returns {number} Returns the index of the found element, else `-1`. 14400 * @example 14401 * 14402 * var users = [ 14403 * { 'user': 'barney', 'active': true }, 14404 * { 'user': 'fred', 'active': false }, 14405 * { 'user': 'pebbles', 'active': false } 14406 * ]; 14407 * 14408 * _.findLastIndex(users, function(o) { return o.user == 'pebbles'; }); 14409 * // => 2 14410 * 14411 * // The `_.matches` iteratee shorthand. 14412 * _.findLastIndex(users, { 'user': 'barney', 'active': true }); 14413 * // => 0 14414 * 14415 * // The `_.matchesProperty` iteratee shorthand. 14416 * _.findLastIndex(users, ['active', false]); 14417 * // => 2 14418 * 14419 * // The `_.property` iteratee shorthand. 14420 * _.findLastIndex(users, 'active'); 14421 * // => 0 14422 */ 14423function findLastIndex(array, predicate, fromIndex) { 14424 var length = array == null ? 0 : array.length; 14425 if (!length) { 14426 return -1; 14427 } 14428 var index = length - 1; 14429 if (fromIndex !== undefined) { 14430 index = toInteger(fromIndex); 14431 index = fromIndex < 0 14432 ? nativeMax(length + index, 0) 14433 : nativeMin(index, length - 1); 14434 } 14435 return baseFindIndex(array, baseIteratee(predicate, 3), index, true); 14436} 14437 14438module.exports = findLastIndex; 14439 14440 14441/***/ }), 14442/* 259 */ 14443/***/ (function(module, exports) { 14444 14445function _interopRequireDefault(obj) { 14446 return obj && obj.__esModule ? obj : { 14447 default: obj 14448 }; 14449} 14450 14451module.exports = _interopRequireDefault; 14452 14453/***/ }), 14454/* 260 */ 14455/***/ (function(module, exports, __webpack_require__) { 14456 14457"use strict"; 14458/** 14459 * Copyright (c) 2013-present, Facebook, Inc. 14460 * 14461 * This source code is licensed under the MIT license found in the 14462 * LICENSE file in the root directory of this source tree. 14463 * 14464 * @typechecks 14465 * 14466 */ 14467 14468/*eslint-disable no-self-compare */ 14469 14470 14471 14472var hasOwnProperty = Object.prototype.hasOwnProperty; 14473 14474/** 14475 * inlined Object.is polyfill to avoid requiring consumers ship their own 14476 * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is 14477 */ 14478function is(x, y) { 14479 // SameValue algorithm 14480 if (x === y) { 14481 // Steps 1-5, 7-10 14482 // Steps 6.b-6.e: +0 != -0 14483 // Added the nonzero y check to make Flow happy, but it is redundant 14484 return x !== 0 || y !== 0 || 1 / x === 1 / y; 14485 } else { 14486 // Step 6.a: NaN == NaN 14487 return x !== x && y !== y; 14488 } 14489} 14490 14491/**
14492 * Performs equality by iterating through keys on an object and returning false 14493 * when any key has values which are not strictly equal between the arguments. 14494 * Returns true when the values of all keys are strictly equal. 14495 */ 14496function shallowEqual(objA, objB) { 14497 if (is(objA, objB)) { 14498 return true; 14499 } 14500 14501 if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) { 14502 return false; 14503 } 14504 14505 var keysA = Object.keys(objA); 14506 var keysB = Object.keys(objB); 14507 14508 if (keysA.length !== keysB.length) { 14509 return false; 14510 } 14511 14512 // Test for A's keys different from B. 14513 for (var i = 0; i < keysA.length; i++) { 14514 if (!hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) { 14515 return false; 14516 } 14517 } 14518 14519 return true; 14520} 14521 14522module.exports = shallowEqual; 14523 14524/***/ }), 14525/* 261 */ 14526/***/ (function(module, exports, __webpack_require__) { 14527 14528"use strict"; 14529 14530 14531Object.defineProperty(exports, "__esModule", { 14532 value: true 14533}); 14534exports.ixInstances = void 0; 14535 14536var _constants = __webpack_require__(2); 14537 14538var _shared = __webpack_require__(10); 14539 14540var _timm = __webpack_require__(18); 14541/* eslint-env browser */ 14542 14543 14544var _constants$IX2EngineA = _constants.IX2EngineActionTypes, 14545 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 14546 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 14547 IX2_INSTANCE_ADDED = _constants$IX2EngineA.IX2_INSTANCE_ADDED, 14548 IX2_INSTANCE_STARTED = _constants$IX2EngineA.IX2_INSTANCE_STARTED, 14549 IX2_INSTANCE_REMOVED = _constants$IX2EngineA.IX2_INSTANCE_REMOVED, 14550 IX2_ANIMATION_FRAME_CHANGED = _constants$IX2EngineA.IX2_ANIMATION_FRAME_CHANGED; 14551var _shared$IX2EasingUtil = _shared.IX2EasingUtils, 14552 optimizeFloat = _shared$IX2EasingUtil.optimizeFloat, 14553 applyEasing = _shared$IX2EasingUtil.applyEasing, 14554 createBezierEasing = _shared$IX2EasingUtil.createBezierEasing; 14555var RENDER_GENERAL = _constants.IX2EngineConstants.RENDER_GENERAL; 14556var _shared$IX2VanillaUti = _shared.IX2VanillaUtils, 14557 getItemConfigByKey = _shared$IX2VanillaUti.getItemConfigByKey, 14558 getRenderType = _shared$IX2VanillaUti.getRenderType, 14559 getStyleProp = _shared$IX2VanillaUti.getStyleProp; 14560
14561var continuousInstance = function continuousInstance(state, action) { 14562 var lastPosition = state.position, 14563 parameterId = state.parameterId, 14564 actionGroups = state.actionGroups, 14565 destinationKeys = state.destinationKeys, 14566 smoothing = state.smoothing, 14567 restingValue = state.restingValue, 14568 actionTypeId = state.actionTypeId, 14569 customEasingFn = state.customEasingFn; 14570 var parameters = action.payload.parameters; 14571 var velocity = Math.max(1 - smoothing, 0.01); 14572 var paramValue = parameters[parameterId]; 14573 14574 if (paramValue == null) { 14575 velocity = 1; 14576 paramValue = restingValue; 14577 } 14578 14579 var nextPosition = Math.max(paramValue, 0) || 0; 14580 var positionDiff = optimizeFloat(nextPosition - lastPosition); 14581 var position = optimizeFloat(lastPosition + positionDiff * velocity); 14582 var keyframePosition = position * 100; 14583 14584 if (position === lastPosition && state.current) { 14585 return state; 14586 } 14587 14588 var fromActionItem; 14589 var toActionItem; 14590 var positionOffset; 14591 var positionRange; 14592 14593 for (var i = 0, length = actionGroups.length; i < length; i++) { 14594 var _actionGroups$i = actionGroups[i], 14595 keyframe = _actionGroups$i.keyframe, 14596 actionItems = _actionGroups$i.actionItems; 14597 14598 if (i === 0) { 14599 fromActionItem = actionItems[0]; 14600 } 14601 14602 if (keyframePosition >= keyframe) { 14603 fromActionItem = actionItems[0]; 14604 var nextGroup = actionGroups[i + 1]; 14605 var hasNextItem = nextGroup && keyframePosition !== keyframe; 14606 toActionItem = hasNextItem ? nextGroup.actionItems[0] : null; 14607 14608 if (hasNextItem) { 14609 positionOffset = keyframe / 100; 14610 positionRange = (nextGroup.keyframe - keyframe) / 100; 14611 } 14612 } 14613 } 14614 14615 var current = {}; 14616 14617 if (fromActionItem && !toActionItem) { 14618 for (var _i = 0, _length = destinationKeys.length; _i < _length; _i++) { 14619 var key = destinationKeys[_i]; 14620 current[key] = getItemConfigByKey(actionTypeId, key, fromActionItem.config); 14621 } 14622 } else if (fromActionItem && toActionItem && positionOffset !== undefined && positionRange !== undefined) { 14623 var localPosition = (position - positionOffset) / positionRange; 14624 var easing = fromActionItem.config.easing; 14625 var eased = applyEasing(easing, localPosition, customEasingFn); 14626 14627 for (var _i2 = 0, _length2 = destinationKeys.length; _i2 < _length2; _i2++) { 14628 var _key = destinationKeys[_i2]; 14629 var fromVal = getItemConfigByKey(actionTypeId, _key, fromActionItem.config); 14630 var toVal = getItemConfigByKey(actionTypeId, _key, toActionItem.config); // $FlowFixMe â toVal and fromVal could potentially be null, need to update type higher to determine number 14631 14632 var diff = toVal - fromVal; // $FlowFixMe 14633 14634 var value = diff * eased + fromVal; 14635 current[_key] = value; 14636 } 14637 } 14638 14639 return (0, _timm.merge)(state, { 14640 position: position, 14641 current: current 14642 }); 14643}; 14644 14645var timedInstance = function timedInstance(state, action) { 14646 var _state = state, 14647 active = _state.active, 14648 origin = _state.origin, 14649 start = _state.start, 14650 immediate = _state.immediate, 14651 renderType = _state.renderType, 14652 verbose = _state.verbose, 14653 actionItem = _state.actionItem, 14654 destination = _state.destination, 14655 destinationKeys = _state.destinationKeys, 14656 pluginDuration = _state.pluginDuration, 14657 instanceDelay = _state.instanceDelay, 14658 customEasingFn = _state.customEasingFn; 14659 var easing = actionItem.config.easing; 14660 var _actionItem$config = actionItem.config, 14661 duration = _actionItem$config.duration, 14662 delay = _actionItem$config.delay; 14663 14664 if (pluginDuration != null) { 14665 duration = pluginDuration; 14666 } 14667 14668 delay = instanceDelay != null ? instanceDelay : delay; 14669 14670 if (renderType === RENDER_GENERAL) { 14671 duration = 0; 14672 } else if (immediate) { 14673 duration = delay = 0; 14674 } 14675 14676 var now = action.payload.now; 14677 14678 if (active && origin) { 14679 var delta = now - (start + delay); 14680 14681 if (verbose) { 14682 var verboseDelta = now - start; 14683 var verboseDuration = duration + delay; 14684 var verbosePosition = optimizeFloat(Math.min(Math.max(0, verboseDelta / verboseDuration), 1)); 14685 state = (0, _timm.set)(state, 'verboseTimeElapsed', verboseDuration * verbosePosition); 14686 } 14687 14688 if (delta < 0) { 14689 return state; 14690 } 14691 14692 var position = optimizeFloat(Math.min(Math.max(0, delta / duration), 1)); 14693 var eased = applyEasing(easing, position, customEasingFn); 14694 var newProps = {}; 14695 var current = null; 14696 14697 if (destinationKeys.length) { 14698 current = destinationKeys.reduce(function (result, key) { 14699 var destValue = destination[key]; 14700 var originVal = parseFloat(origin[key]) || 0; 14701 var diff = parseFloat(destValue) - originVal; 14702 var value = diff * eased + originVal; 14703 result[key] = value; 14704 return result; 14705 }, {}); 14706 } 14707 14708 newProps.current = current; 14709 newProps.position = position; 14710 14711 if (position === 1) { 14712 newProps.active = false;
14713 newProps.complete = true; 14714 } 14715 14716 return (0, _timm.merge)(state, newProps); 14717 } 14718 14719 return state; 14720}; 14721 14722var ixInstances = function ixInstances() { 14723 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : Object.freeze({}); 14724 var action = arguments.length > 1 ? arguments[1] : undefined; 14725 14726 switch (action.type) { 14727 case IX2_RAW_DATA_IMPORTED: 14728 { 14729 return action.payload.ixInstances || Object.freeze({}); 14730 } 14731 14732 case IX2_SESSION_STOPPED: 14733 { 14734 return Object.freeze({}); 14735 } 14736 14737 case IX2_INSTANCE_ADDED: 14738 { 14739 var _action$payload = action.payload, 14740 instanceId = _action$payload.instanceId, 14741 elementId = _action$payload.elementId, 14742 actionItem = _action$payload.actionItem, 14743 eventId = _action$payload.eventId, 14744 eventTarget = _action$payload.eventTarget, 14745 eventStateKey = _action$payload.eventStateKey, 14746 actionListId = _action$payload.actionListId, 14747 groupIndex = _action$payload.groupIndex, 14748 isCarrier = _action$payload.isCarrier, 14749 origin = _action$payload.origin, 14750 destination = _action$payload.destination, 14751 immediate = _action$payload.immediate, 14752 verbose = _action$payload.verbose, 14753 continuous = _action$payload.continuous, 14754 parameterId = _action$payload.parameterId, 14755 actionGroups = _action$payload.actionGroups, 14756 smoothing = _action$payload.smoothing, 14757 restingValue = _action$payload.restingValue, 14758 pluginInstance = _action$payload.pluginInstance, 14759 pluginDuration = _action$payload.pluginDuration, 14760 instanceDelay = _action$payload.instanceDelay; 14761 var actionTypeId = actionItem.actionTypeId; 14762 var renderType = getRenderType(actionTypeId); 14763 var styleProp = getStyleProp(renderType, actionTypeId); 14764 var destinationKeys = Object.keys(destination).filter(function (key) { 14765 return destination[key] != null; 14766 }); 14767 var easing = actionItem.config.easing; 14768 return (0, _timm.set)(state, instanceId, { 14769 id: instanceId, 14770 elementId: elementId, 14771 active: false, 14772 position: 0, 14773 start: 0, 14774 origin: origin, 14775 destination: destination, 14776 destinationKeys: destinationKeys, 14777 immediate: immediate, 14778 verbose: verbose, 14779 current: null, 14780 actionItem: actionItem, 14781 actionTypeId: actionTypeId, 14782 eventId: eventId, 14783 eventTarget: eventTarget, 14784 eventStateKey: eventStateKey, 14785 actionListId: actionListId, 14786 groupIndex: groupIndex, 14787 renderType: renderType, 14788 isCarrier: isCarrier, 14789 styleProp: styleProp, 14790 continuous: continuous, 14791 parameterId: parameterId, 14792 actionGroups: actionGroups, 14793 smoothing: smoothing, 14794 restingValue: restingValue, 14795 pluginInstance: pluginInstance, 14796 pluginDuration: pluginDuration, 14797 instanceDelay: instanceDelay, 14798 customEasingFn: Array.isArray(easing) && easing.length === 4 ? createBezierEasing(easing) : undefined 14799 }); 14800 } 14801 14802 case IX2_INSTANCE_STARTED: 14803 { 14804 var _action$payload2 = action.payload, 14805 _instanceId = _action$payload2.instanceId, 14806 time = _action$payload2.time; 14807 return (0, _timm.mergeIn)(state, [_instanceId], { 14808 active: true, 14809 complete: false, 14810 start: time 14811 }); 14812 } 14813 14814 case IX2_INSTANCE_REMOVED: 14815 { 14816 var _instanceId2 = action.payload.instanceId; 14817 14818 if (!state[_instanceId2]) { 14819 return state; 14820 } 14821 14822 var newState = {}; 14823 var keys = Object.keys(state); 14824 var length = keys.length; 14825 14826 for (var i = 0; i < length; i++) { 14827 var key = keys[i]; 14828 14829 if (key !== _instanceId2) { 14830 newState[key] = state[key]; 14831 } 14832 } 14833 14834 return newState; 14835 } 14836 14837 case IX2_ANIMATION_FRAME_CHANGED: 14838 { 14839 var _newState = state; 14840 14841 var _keys = Object.keys(state); 14842 14843 var _length3 = _keys.length; 14844 14845 for (var _i3 = 0; _i3 < _length3; _i3++) { 14846 var _key2 = _keys[_i3]; 14847 var instance = state[_key2]; 14848 var reducer = instance.continuous ? continuousInstance : timedInstance; 14849 _newState = (0, _timm.set)(_newState, _key2, reducer(instance, action)); 14850 } 14851 14852 return _newState; 14853 } 14854 14855 default: 14856 { 14857 return state; 14858 } 14859 } 14860}; 14861 14862exports.ixInstances = ixInstances; 14863 14864/***/ }), 14865/* 262 */ 14866/***/ (function(module, exports, __webpack_require__) { 14867 14868"use strict"; 14869 14870 14871Object.defineProperty(exports, "__esModule", { 14872 value: true 14873}); 14874exports.ixParameters = void 0; 14875 14876var _constants = __webpack_require__(2); 14877 14878var _constants$IX2EngineA = _constants.IX2EngineActionTypes,
14879 IX2_RAW_DATA_IMPORTED = _constants$IX2EngineA.IX2_RAW_DATA_IMPORTED, 14880 IX2_SESSION_STOPPED = _constants$IX2EngineA.IX2_SESSION_STOPPED, 14881 IX2_PARAMETER_CHANGED = _constants$IX2EngineA.IX2_PARAMETER_CHANGED; // prettier-ignore 14882 14883var ixParameters = function ixParameters() { 14884 var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : { 14885 /*mutable flat state*/ 14886 }; 14887 var action = arguments.length > 1 ? arguments[1] : undefined; 14888 14889 switch (action.type) { 14890 case IX2_RAW_DATA_IMPORTED: 14891 { 14892 return action.payload.ixParameters || { 14893 /*mutable flat state*/ 14894 }; 14895 } 14896 14897 case IX2_SESSION_STOPPED: 14898 { 14899 return { 14900 /*mutable flat state*/ 14901 }; 14902 } 14903 14904 case IX2_PARAMETER_CHANGED: 14905 { 14906 var _action$payload = action.payload, 14907 key = _action$payload.key, 14908 value = _action$payload.value; 14909 state[key] = value; 14910 return state; 14911 } 14912 14913 default: 14914 { 14915 return state; 14916 } 14917 } 14918}; 14919 14920exports.ixParameters = ixParameters; 14921 14922/***/ }), 14923/* 263 */ 14924/***/ (function(module, exports) { 14925 14926function _objectWithoutPropertiesLoose(source, excluded) { 14927 if (source == null) return {}; 14928 var target = {}; 14929 var sourceKeys = Object.keys(source); 14930 var key, i; 14931 14932 for (i = 0; i < sourceKeys.length; i++) { 14933 key = sourceKeys[i]; 14934 if (excluded.indexOf(key) >= 0) continue; 14935 target[key] = source[key]; 14936 } 14937 14938 return target; 14939} 14940 14941module.exports = _objectWithoutPropertiesLoose; 14942 14943/***/ }), 14944/* 264 */ 14945/***/ (function(module, exports, __webpack_require__) { 14946 14947var baseKeys = __webpack_require__(55), 14948 getTag = __webpack_require__(57), 14949 isArrayLike = __webpack_require__(12), 14950 isString = __webpack_require__(265), 14951 stringSize = __webpack_require__(266); 14952 14953/** `Object#toString` result references. */ 14954var mapTag = '[object Map]', 14955 setTag = '[object Set]'; 14956 14957/** 14958 * Gets the size of `collection` by returning its length for array-like 14959 * values or the number of own enumerable string keyed properties for objects. 14960 * 14961 * @static 14962 * @memberOf _ 14963 * @since 0.1.0 14964 * @category Collection 14965 * @param {Array|Object|string} collection The collection to inspect. 14966 * @returns {number} Returns the collection size. 14967 * @example 14968 * 14969 * _.size([1, 2, 3]); 14970 * // => 3 14971 * 14972 * _.size({ 'a': 1, 'b': 2 }); 14973 * // => 2 14974 * 14975 * _.size('pebbles'); 14976 * // => 7 14977 */ 14978function size(collection) { 14979 if (collection == null) { 14980 return 0; 14981 } 14982 if (isArrayLike(collection)) { 14983 return isString(collection) ? stringSize(collection) : collection.length; 14984 } 14985 var tag = getTag(collection); 14986 if (tag == mapTag || tag == setTag) { 14987 return collection.size; 14988 } 14989 return baseKeys(collection).length; 14990} 14991 14992module.exports = size; 14993 14994 14995/***/ }), 14996/* 265 */ 14997/***/ (function(module, exports, __webpack_require__) { 14998 14999var baseGetTag = __webpack_require__(11), 15000 isArray = __webpack_require__(1), 15001 isObjectLike = __webpack_require__(9); 15002 15003/** `Object#toString` result references. */ 15004var stringTag = '[object String]'; 15005 15006/** 15007 * Checks if `value` is classified as a `String` primitive or object. 15008 * 15009 * @static 15010 * @since 0.1.0 15011 * @memberOf _ 15012 * @category Lang 15013 * @param {*} value The value to check. 15014 * @returns {boolean} Returns `true` if `value` is a string, else `false`. 15015 * @example 15016 * 15017 * _.isString('abc'); 15018 * // => true 15019 * 15020 * _.isString(1); 15021 * // => false 15022 */ 15023function isString(value) { 15024 return typeof value == 'string' || 15025 (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag); 15026} 15027 15028module.exports = isString; 15029 15030 15031/***/ }), 15032/* 266 */ 15033/***/ (function(module, exports, __webpack_require__) { 15034 15035var asciiSize = __webpack_require__(267), 15036 hasUnicode = __webpack_require__(268), 15037 unicodeSize = __webpack_require__(269); 15038 15039/** 15040 * Gets the number of symbols in `string`. 15041 * 15042 * @private 15043 * @param {string} string The string to inspect. 15044 * @returns {number} Returns the string size. 15045 */ 15046function stringSize(string) { 15047 return hasUnicode(string) 15048 ? unicodeSize(string) 15049 : asciiSize(string); 15050} 15051 15052module.exports = stringSize; 15053 15054 15055/***/ }), 15056/* 267 */ 15057/***/ (function(module, exports, __webpack_require__) { 15058 15059var baseProperty = __webpack_require__(104); 15060 15061/** 15062 * Gets the size of an ASCII `string`. 15063 * 15064 * @private 15065 * @param {string} string The string inspect. 15066 * @returns {number} Returns the string size. 15067 */ 15068var asciiSize = baseProperty('length'); 15069 15070module.exports = asciiSize; 15071 15072 15073/***/ }), 15074/* 268 */
vendor: 2,920 bytes, lines 15075-15164
15075/***/ (function(module, exports) { 15076 15077/** Used to compose unicode character classes. */ 15078var rsAstralRange = '\\ud800-\\udfff', 15079 rsComboMarksRange = '\\u0300-\\u036f', 15080 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 15081 rsComboSymbolsRange = '\\u20d0-\\u20ff', 15082 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 15083 rsVarRange = '\\ufe0e\\ufe0f'; 15084 15085/** Used to compose unicode capture groups. */ 15086var rsZWJ = '\\u200d'; 15087 15088/** 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/). */ 15089var reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']'); 15090 15091/** 15092 * Checks if `string` contains Unicode symbols. 15093 * 15094 * @private 15095 * @param {string} string The string to inspect. 15096 * @returns {boolean} Returns `true` if a symbol is found, else `false`. 15097 */ 15098function hasUnicode(string) { 15099 return reHasUnicode.test(string); 15100} 15101 15102module.exports = hasUnicode; 15103 15104 15105/***/ }), 15106/* 269 */ 15107/***/ (function(module, exports) { 15108 15109/** Used to compose unicode character classes. */ 15110var rsAstralRange = '\\ud800-\\udfff', 15111 rsComboMarksRange = '\\u0300-\\u036f', 15112 reComboHalfMarksRange = '\\ufe20-\\ufe2f', 15113 rsComboSymbolsRange = '\\u20d0-\\u20ff', 15114 rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, 15115 rsVarRange = '\\ufe0e\\ufe0f'; 15116 15117/** Used to compose unicode capture groups. */ 15118var rsAstral = '[' + rsAstralRange + ']', 15119 rsCombo = '[' + rsComboRange + ']', 15120 rsFitz = '\\ud83c[\\udffb-\\udfff]', 15121 rsModifier = '(?:' + rsCombo + '|' + rsFitz + ')', 15122 rsNonAstral = '[^' + rsAstralRange + ']', 15123 rsRegional = '(?:\\ud83c[\\udde6-\\uddff]){2}', 15124 rsSurrPair = '[\\ud800-\\udbff][\\udc00-\\udfff]', 15125 rsZWJ = '\\u200d'; 15126 15127/** Used to compose unicode regexes. */ 15128var reOptMod = rsModifier + '?', 15129 rsOptVar = '[' + rsVarRange + ']?', 15130 rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*', 15131 rsSeq = rsOptVar + reOptMod + rsOptJoin, 15132 rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')'; 15133 15134/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */ 15135var reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g'); 15136 15137/** 15138 * Gets the size of a Unicode `string`. 15139 * 15140 * @private 15141 * @param {string} string The string inspect. 15142 * @returns {number} Returns the string size. 15143 */ 15144function unicodeSize(string) { 15145 var result = reUnicode.lastIndex = 0; 15146 while (reUnicode.test(string)) { 15147 ++result; 15148 } 15149 return result; 15150} 15151 15152module.exports = unicodeSize; 15153 15154 15155/***/ }), 15156/* 270 */ 15157/***/ (function(module, exports, __webpack_require__) { 15158 15159var baseIteratee = __webpack_require__(7), 15160 negate = __webpack_require__(271), 15161 pickBy = __webpack_require__(272); 15162 15163/** 15164 * The opposite of `_.pickBy`;
15164 this method creates an object composed of 15165 * the own and inherited enumerable string keyed properties of `object` that 15166 * `predicate` doesn't return truthy for. The predicate is invoked with two 15167 * arguments: (value, key). 15168 * 15169 * @static 15170 * @memberOf _ 15171 * @since 4.0.0 15172 * @category Object 15173 * @param {Object} object The source object. 15174 * @param {Function} [predicate=_.identity] The function invoked per property. 15175 * @returns {Object} Returns the new object. 15176 * @example 15177 * 15178 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 15179 * 15180 * _.omitBy(object, _.isNumber); 15181 * // => { 'b': '2' } 15182 */ 15183function omitBy(object, predicate) { 15184 return pickBy(object, negate(baseIteratee(predicate))); 15185} 15186 15187module.exports = omitBy; 15188 15189 15190/***/ }), 15191/* 271 */ 15192/***/ (function(module, exports) { 15193 15194/** Error message constants. */ 15195var FUNC_ERROR_TEXT = 'Expected a function'; 15196 15197/** 15198 * Creates a function that negates the result of the predicate `func`. The 15199 * `func` predicate is invoked with the `this` binding and arguments of the 15200 * created function. 15201 * 15202 * @static 15203 * @memberOf _ 15204 * @since 3.0.0 15205 * @category Function 15206 * @param {Function} predicate The predicate to negate. 15207 * @returns {Function} Returns the new negated function. 15208 * @example 15209 * 15210 * function isEven(n) { 15211 * return n % 2 == 0; 15212 * } 15213 * 15214 * _.filter([1, 2, 3, 4, 5, 6], _.negate(isEven)); 15215 * // => [1, 3, 5] 15216 */ 15217function negate(predicate) { 15218 if (typeof predicate != 'function') { 15219 throw new TypeError(FUNC_ERROR_TEXT); 15220 } 15221 return function() { 15222 var args = arguments; 15223 switch (args.length) { 15224 case 0: return !predicate.call(this); 15225 case 1: return !predicate.call(this, args[0]); 15226 case 2: return !predicate.call(this, args[0], args[1]); 15227 case 3: return !predicate.call(this, args[0], args[1], args[2]); 15228 } 15229 return !predicate.apply(this, args); 15230 }; 15231} 15232 15233module.exports = negate; 15234 15235 15236/***/ }), 15237/* 272 */ 15238/***/ (function(module, exports, __webpack_require__) { 15239 15240var arrayMap = __webpack_require__(103), 15241 baseIteratee = __webpack_require__(7), 15242 basePickBy = __webpack_require__(273), 15243 getAllKeysIn = __webpack_require__(276); 15244 15245/**
15246 * Creates an object composed of the `object` properties `predicate` returns 15247 * truthy for. The predicate is invoked with two arguments: (value, key). 15248 * 15249 * @static 15250 * @memberOf _ 15251 * @since 4.0.0 15252 * @category Object 15253 * @param {Object} object The source object. 15254 * @param {Function} [predicate=_.identity] The function invoked per property. 15255 * @returns {Object} Returns the new object. 15256 * @example 15257 * 15258 * var object = { 'a': 1, 'b': '2', 'c': 3 }; 15259 * 15260 * _.pickBy(object, _.isNumber); 15261 * // => { 'a': 1, 'c': 3 } 15262 */ 15263function pickBy(object, predicate) { 15264 if (object == null) { 15265 return {}; 15266 } 15267 var props = arrayMap(getAllKeysIn(object), function(prop) { 15268 return [prop]; 15269 }); 15270 predicate = baseIteratee(predicate); 15271 return basePickBy(object, props, function(value, path) { 15272 return predicate(value, path[0]); 15273 }); 15274} 15275 15276module.exports = pickBy; 15277 15278 15279/***/ }), 15280/* 273 */ 15281/***/ (function(module, exports, __webpack_require__) { 15282 15283var baseGet = __webpack_require__(58), 15284 baseSet = __webpack_require__(274), 15285 castPath = __webpack_require__(35); 15286 15287/** 15288 * The base implementation of `_.pickBy` without support for iteratee shorthands. 15289 * 15290 * @private 15291 * @param {Object} object The source object. 15292 * @param {string[]} paths The property paths to pick. 15293 * @param {Function} predicate The function invoked per property. 15294 * @returns {Object} Returns the new object. 15295 */ 15296function basePickBy(object, paths, predicate) { 15297 var index = -1, 15298 length = paths.length, 15299 result = {}; 15300 15301 while (++index < length) { 15302 var path = paths[index], 15303 value = baseGet(object, path); 15304 15305 if (predicate(value, path)) { 15306 baseSet(result, castPath(path, object), value); 15307 } 15308 } 15309 return result; 15310} 15311 15312module.exports = basePickBy; 15313 15314 15315/***/ }), 15316/* 274 */ 15317/***/ (function(module, exports, __webpack_require__) { 15318 15319var assignValue = __webpack_require__(275), 15320 castPath = __webpack_require__(35), 15321 isIndex = __webpack_require__(52), 15322 isObject = __webpack_require__(6), 15323 toKey = __webpack_require__(20); 15324 15325/** 15326 * The base implementation of `_.set`. 15327 * 15328 * @private 15329 * @param {Object} object The object to modify. 15330 * @param {Array|string} path The path of the property to set. 15331 * @param {*} value The value to set. 15332 * @param {Function} [customizer] The function to customize path creation. 15333 * @returns {Object} Returns `object`. 15334 */ 15335function baseSet(object, path, value, customizer) { 15336 if (!isObject(object)) { 15337 return object; 15338 } 15339 path = castPath(path, object); 15340 15341 var index = -1, 15342 length = path.length, 15343 lastIndex = length - 1, 15344 nested = object; 15345 15346 while (nested != null && ++index < length) { 15347 var key = toKey(path[index]), 15348 newValue = value; 15349 15350 if (index != lastIndex) { 15351 var objValue = nested[key]; 15352 newValue = customizer ? customizer(objValue, key, nested) : undefined; 15353 if (newValue === undefined) { 15354 newValue = isObject(objValue) 15355 ? objValue 15356 : (isIndex(path[index + 1]) ? [] : {}); 15357 } 15358 } 15359 assignValue(nested, key, newValue); 15360 nested = nested[key]; 15361 } 15362 return object; 15363} 15364 15365module.exports = baseSet; 15366 15367 15368/***/ }), 15369/* 275 */ 15370/***/ (function(module, exports, __webpack_require__) { 15371 15372var baseAssignValue = __webpack_require__(116), 15373 eq = __webpack_require__(47); 15374 15375/** Used for built-in method references. */ 15376var objectProto = Object.prototype; 15377 15378/** Used to check objects for own properties. */ 15379var hasOwnProperty = objectProto.hasOwnProperty; 15380 15381/** 15382 * Assigns `value` to `key` of `object` if the existing value is not equivalent 15383 * using [`SameValueZero`](http://ecma-international.org/ecma-262/7.0/#sec-samevaluezero) 15384 * for equality comparisons. 15385 * 15386 * @private 15387 * @param {Object} object The object to modify. 15388 * @param {string} key The key of the property to assign. 15389 * @param {*} value The value to assign. 15390 */ 15391function assignValue(object, key, value) { 15392 var objValue = object[key]; 15393 if (!(hasOwnProperty.call(object, key) && eq(objValue, value)) || 15394 (value === undefined && !(key in object))) { 15395 baseAssignValue(object, key, value); 15396 } 15397} 15398 15399module.exports = assignValue; 15400 15401 15402/***/ }), 15403/* 276 */ 15404/***/ (function(module, exports, __webpack_require__) { 15405 15406var baseGetAllKeys = __webpack_require__(94), 15407 getSymbolsIn = __webpack_require__(277), 15408 keysIn = __webpack_require__(279); 15409 15410/** 15411 * Creates an array of own and inherited enumerable property names and 15412 * symbols of `object`. 15413 * 15414 * @private 15415 * @param {Object} object The object to query. 15416 * @returns {Array} Returns the array of property names and symbols. 15417 */ 15418function getAllKeysIn(object) { 15419 return baseGetAllKeys(object, keysIn, getSymbolsIn); 15420} 15421 15422module.exports = getAllKeysIn; 15423 15424 15425/***/ }), 15426/* 277 */ 15427/***/ (function(module, exports, __webpack_require__) { 15428 15429var arrayPush = __webpack_require__(50), 15430 getPrototype = __webpack_require__(278), 15431 getSymbols = __webpack_require__(95), 15432 stubArray = __webpack_require__(96); 15433 15434/* Built-in method references for those with the same name as other `lodash` methods. */ 15435var nativeGetSymbols = Object.getOwnPropertySymbols; 15436 15437/** 15438 * Creates an array of the own and inherited enumerable symbols of `object`. 15439 * 15440 * @private 15441 * @param {Object} object The object to query. 15442 * @returns {Array} Returns the array of symbols. 15443 */ 15444var getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) { 15445 var result = []; 15446 while (object) {
vendor: 8,844 bytes, lines 15447-15805
15447 arrayPush(result, getSymbols(object)); 15448 object = getPrototype(object); 15449 } 15450 return result; 15451}; 15452 15453module.exports = getSymbolsIn; 15454 15455 15456/***/ }), 15457/* 278 */ 15458/***/ (function(module, exports, __webpack_require__) { 15459 15460var overArg = __webpack_require__(99); 15461 15462/** Built-in value references. */ 15463var getPrototype = overArg(Object.getPrototypeOf, Object); 15464 15465module.exports = getPrototype; 15466 15467 15468/***/ }), 15469/* 279 */ 15470/***/ (function(module, exports, __webpack_require__) { 15471 15472var arrayLikeKeys = __webpack_require__(97), 15473 baseKeysIn = __webpack_require__(280), 15474 isArrayLike = __webpack_require__(12); 15475 15476/** 15477 * Creates an array of the own and inherited enumerable property names of `object`. 15478 * 15479 * **Note:** Non-object values are coerced to objects. 15480 * 15481 * @static 15482 * @memberOf _ 15483 * @since 3.0.0 15484 * @category Object 15485 * @param {Object} object The object to query. 15486 * @returns {Array} Returns the array of property names. 15487 * @example 15488 * 15489 * function Foo() { 15490 * this.a = 1; 15491 * this.b = 2; 15492 * } 15493 * 15494 * Foo.prototype.c = 3; 15495 * 15496 * _.keysIn(new Foo); 15497 * // => ['a', 'b', 'c'] (iteration order is not guaranteed) 15498 */ 15499function keysIn(object) { 15500 return isArrayLike(object) ? arrayLikeKeys(object, true) : baseKeysIn(object); 15501} 15502 15503module.exports = keysIn; 15504 15505 15506/***/ }), 15507/* 280 */ 15508/***/ (function(module, exports, __webpack_require__) { 15509 15510var isObject = __webpack_require__(6), 15511 isPrototype = __webpack_require__(56), 15512 nativeKeysIn = __webpack_require__(281); 15513 15514/** Used for built-in method references. */ 15515var objectProto = Object.prototype; 15516 15517/** Used to check objects for own properties. */ 15518var hasOwnProperty = objectProto.hasOwnProperty; 15519 15520/** 15521 * The base implementation of `_.keysIn` which doesn't treat sparse arrays as dense. 15522 * 15523 * @private 15524 * @param {Object} object The object to query. 15525 * @returns {Array} Returns the array of property names. 15526 */ 15527function baseKeysIn(object) { 15528 if (!isObject(object)) { 15529 return nativeKeysIn(object); 15530 } 15531 var isProto = isPrototype(object), 15532 result = []; 15533 15534 for (var key in object) { 15535 if (!(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) { 15536 result.push(key); 15537 } 15538 } 15539 return result; 15540} 15541 15542module.exports = baseKeysIn; 15543 15544 15545/***/ }), 15546/* 281 */ 15547/***/ (function(module, exports) { 15548 15549/** 15550 * This function is like 15551 * [`Object.keys`](http://ecma-international.org/ecma-262/7.0/#sec-object.keys) 15552 * except that it includes inherited enumerable properties. 15553 * 15554 * @private 15555 * @param {Object} object The object to query. 15556 * @returns {Array} Returns the array of property names. 15557 */ 15558function nativeKeysIn(object) { 15559 var result = []; 15560 if (object != null) { 15561 for (var key in Object(object)) { 15562 result.push(key); 15563 } 15564 } 15565 return result; 15566} 15567 15568module.exports = nativeKeysIn; 15569 15570 15571/***/ }), 15572/* 282 */ 15573/***/ (function(module, exports, __webpack_require__) { 15574 15575var baseKeys = __webpack_require__(55), 15576 getTag = __webpack_require__(57), 15577 isArguments = __webpack_require__(33), 15578 isArray = __webpack_require__(1), 15579 isArrayLike = __webpack_require__(12), 15580 isBuffer = __webpack_require__(51), 15581 isPrototype = __webpack_require__(56), 15582 isTypedArray = __webpack_require__(53); 15583 15584/** `Object#toString` result references. */ 15585var mapTag = '[object Map]', 15586 setTag = '[object Set]'; 15587 15588/** Used for built-in method references. */ 15589var objectProto = Object.prototype; 15590 15591/** Used to check objects for own properties. */ 15592var hasOwnProperty = objectProto.hasOwnProperty; 15593 15594/** 15595 * Checks if `value` is an empty object, collection, map, or set. 15596 * 15597 * Objects are considered empty if they have no own enumerable string keyed 15598 * properties. 15599 * 15600 * Array-like values such as `arguments` objects, arrays, buffers, strings, or 15601 * jQuery-like collections are considered empty if they have a `length` of `0`. 15602 * Similarly, maps and sets are considered empty if they have a `size` of `0`. 15603 * 15604 * @static 15605 * @memberOf _ 15606 * @since 0.1.0 15607 * @category Lang 15608 * @param {*} value The value to check. 15609 * @returns {boolean} Returns `true` if `value` is empty, else `false`. 15610 * @example 15611 * 15612 * _.isEmpty(null); 15613 * // => true 15614 * 15615 * _.isEmpty(true); 15616 * // => true 15617 * 15618 * _.isEmpty(1); 15619 * // => true 15620 * 15621 * _.isEmpty([1, 2, 3]); 15622 * // => false 15623 * 15624 * _.isEmpty({ 'a': 1 }); 15625 * // => false 15626 */ 15627function isEmpty(value) { 15628 if (value == null) { 15629 return true; 15630 } 15631 if (isArrayLike(value) && 15632 (isArray(value) || typeof value == 'string' || typeof value.splice == 'function' || 15633 isBuffer(value) || isTypedArray(value) || isArguments(value))) { 15634 return !value.length; 15635 } 15636 var tag = getTag(value); 15637 if (tag == mapTag || tag == setTag) { 15638 return !value.size; 15639 } 15640 if (isPrototype(value)) { 15641 return !baseKeys(value).length; 15642 } 15643 for (var key in value) { 15644 if (hasOwnProperty.call(value, key)) { 15645 return false; 15646 } 15647 } 15648 return true; 15649} 15650 15651module.exports = isEmpty; 15652 15653 15654/***/ }), 15655/* 283 */ 15656/***/ (function(module, exports, __webpack_require__) { 15657 15658var baseAssignValue = __webpack_require__(116), 15659 baseForOwn = __webpack_require__(113), 15660 baseIteratee = __webpack_require__(7); 15661 15662/** 15663 * Creates an object with the same keys as `object` and values generated 15664 * by running each own enumerable string keyed property of `object` thru 15665 * `iteratee`. The iteratee is invoked with three arguments: 15666 * (value, key, object). 15667 * 15668 * @static 15669 * @memberOf _ 15670 * @since 2.4.0 15671 * @category Object 15672 * @param {Object} object The object to iterate over. 15673 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15674 * @returns {Object} Returns the new mapped object. 15675 * @see _.mapKeys 15676 * @example 15677 * 15678 * var users = { 15679 * 'fred': { 'user': 'fred', 'age': 40 }, 15680 * 'pebbles': { 'user': 'pebbles', 'age': 1 } 15681 * }; 15682 * 15683 * _.mapValues(users, function(o) { return o.age; }); 15684 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15685 * 15686 * // The `_.property` iteratee shorthand. 15687 * _.mapValues(users, 'age'); 15688 * // => { 'fred': 40, 'pebbles': 1 } (iteration order is not guaranteed) 15689 */ 15690function mapValues(object, iteratee) { 15691 var result = {}; 15692 iteratee = baseIteratee(iteratee, 3); 15693 15694 baseForOwn(object, function(value, key, object) { 15695 baseAssignValue(result, key, iteratee(value, key, object)); 15696 }); 15697 return result; 15698} 15699 15700module.exports = mapValues; 15701 15702 15703/***/ }), 15704/* 284 */ 15705/***/ (function(module, exports, __webpack_require__) { 15706 15707var arrayEach = __webpack_require__(285), 15708 baseEach = __webpack_require__(112), 15709 castFunction = __webpack_require__(286), 15710 isArray = __webpack_require__(1); 15711 15712/** 15713 * Iterates over elements of `collection` and invokes `iteratee` for each element. 15714 * The iteratee is invoked with three arguments: (value, index|key, collection). 15715 * Iteratee functions may exit iteration early by explicitly returning `false`. 15716 * 15717 * **Note:** As with other "Collections" methods, objects with a "length" 15718 * property are iterated like arrays. To avoid this behavior use `_.forIn` 15719 * or `_.forOwn` for object iteration. 15720 * 15721 * @static 15722 * @memberOf _ 15723 * @since 0.1.0 15724 * @alias each 15725 * @category Collection 15726 * @param {Array|Object} collection The collection to iterate over. 15727 * @param {Function} [iteratee=_.identity] The function invoked per iteration. 15728 * @returns {Array|Object} Returns `collection`. 15729 * @see _.forEachRight 15730 * @example 15731 * 15732 * _.forEach([1, 2], function(value) { 15733 * console.log(value); 15734 * }); 15735 * // => Logs `1` then `2`. 15736 * 15737 * _.forEach({ 'a': 1, 'b': 2 }, function(value, key) { 15738 * console.log(key); 15739 * }); 15740 * // => Logs 'a' then 'b' (iteration order is not guaranteed). 15741 */ 15742function forEach(collection, iteratee) { 15743 var func = isArray(collection) ? arrayEach : baseEach; 15744 return func(collection, castFunction(iteratee)); 15745} 15746 15747module.exports = forEach; 15748 15749 15750/***/ }), 15751/* 285 */ 15752/***/ (function(module, exports) { 15753 15754/** 15755 * A specialized version of `_.forEach` for arrays without support for 15756 * iteratee shorthands. 15757 * 15758 * @private 15759 * @param {Array} [array] The array to iterate over. 15760 * @param {Function} iteratee The function invoked per iteration. 15761 * @returns {Array} Returns `array`. 15762 */ 15763function arrayEach(array, iteratee) { 15764 var index = -1, 15765 length = array == null ? 0 : array.length; 15766 15767 while (++index < length) { 15768 if (iteratee(array[index], index, array) === false) { 15769 break; 15770 } 15771 } 15772 return array; 15773} 15774 15775module.exports = arrayEach; 15776 15777 15778/***/ }), 15779/* 286 */ 15780/***/ (function(module, exports, __webpack_require__) { 15781 15782var identity = __webpack_require__(60); 15783 15784/** 15785 * Casts `value` to `identity` if it's not a function. 15786 * 15787 * @private 15788 * @param {*} value The value to inspect. 15789 * @returns {Function} Returns cast function. 15790 */ 15791function castFunction(value) { 15792 return typeof value == 'function' ? value : identity; 15793} 15794 15795module.exports = castFunction; 15796 15797 15798/***/ }), 15799/* 287 */ 15800/***/ (function(module, exports, __webpack_require__) { 15801 15802var debounce = __webpack_require__(288), 15803 isObject = __webpack_require__(6); 15804 15805/** Error message constants. */
vendor: 4,867 bytes, lines 15806-15925
15806var FUNC_ERROR_TEXT = 'Expected a function'; 15807 15808/** 15809 * Creates a throttled function that only invokes `func` at most once per 15810 * every `wait` milliseconds. The throttled function comes with a `cancel` 15811 * method to cancel delayed `func` invocations and a `flush` method to 15812 * immediately invoke them. Provide `options` to indicate whether `func` 15813 * should be invoked on the leading and/or trailing edge of the `wait` 15814 * timeout. The `func` is invoked with the last arguments provided to the 15815 * throttled function. Subsequent calls to the throttled function return the 15816 * result of the last `func` invocation. 15817 * 15818 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15819 * invoked on the trailing edge of the timeout only if the throttled function 15820 * is invoked more than once during the `wait` timeout. 15821 * 15822 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15823 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15824 * 15825 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15826 * for details over the differences between `_.throttle` and `_.debounce`. 15827 * 15828 * @static 15829 * @memberOf _ 15830 * @since 0.1.0 15831 * @category Function 15832 * @param {Function} func The function to throttle. 15833 * @param {number} [wait=0] The number of milliseconds to throttle invocations to. 15834 * @param {Object} [options={}] The options object. 15835 * @param {boolean} [options.leading=true] 15836 * Specify invoking on the leading edge of the timeout. 15837 * @param {boolean} [options.trailing=true] 15838 * Specify invoking on the trailing edge of the timeout. 15839 * @returns {Function} Returns the new throttled function. 15840 * @example 15841 * 15842 * // Avoid excessively updating the position while scrolling. 15843 * jQuery(window).on('scroll', _.throttle(updatePosition, 100)); 15844 * 15845 * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes. 15846 * var throttled = _.throttle(renewToken, 300000, { 'trailing': false }); 15847 * jQuery(element).on('click', throttled); 15848 * 15849 * // Cancel the trailing throttled invocation. 15850 * jQuery(window).on('popstate', throttled.cancel); 15851 */ 15852function throttle(func, wait, options) { 15853 var leading = true, 15854 trailing = true; 15855 15856 if (typeof func != 'function') { 15857 throw new TypeError(FUNC_ERROR_TEXT); 15858 } 15859 if (isObject(options)) { 15860 leading = 'leading' in options ? !!options.leading : leading; 15861 trailing = 'trailing' in options ? !!options.trailing : trailing; 15862 } 15863 return debounce(func, wait, { 15864 'leading': leading, 15865 'maxWait': wait, 15866 'trailing': trailing 15867 }); 15868} 15869 15870module.exports = throttle; 15871 15872 15873/***/ }), 15874/* 288 */ 15875/***/ (function(module, exports, __webpack_require__) { 15876 15877var isObject = __webpack_require__(6), 15878 now = __webpack_require__(289), 15879 toNumber = __webpack_require__(61); 15880 15881/** Error message constants. */ 15882var FUNC_ERROR_TEXT = 'Expected a function'; 15883 15884/* Built-in method references for those with the same name as other `lodash` methods. */ 15885var nativeMax = Math.max, 15886 nativeMin = Math.min; 15887 15888/** 15889 * Creates a debounced function that delays invoking `func` until after `wait` 15890 * milliseconds have elapsed since the last time the debounced function was 15891 * invoked. The debounced function comes with a `cancel` method to cancel 15892 * delayed `func` invocations and a `flush` method to immediately invoke them. 15893 * Provide `options` to indicate whether `func` should be invoked on the 15894 * leading and/or trailing edge of the `wait` timeout. The `func` is invoked 15895 * with the last arguments provided to the debounced function. Subsequent 15896 * calls to the debounced function return the result of the last `func` 15897 * invocation. 15898 * 15899 * **Note:** If `leading` and `trailing` options are `true`, `func` is 15900 * invoked on the trailing edge of the timeout only if the debounced function 15901 * is invoked more than once during the `wait` timeout. 15902 * 15903 * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred 15904 * until to the next tick, similar to `setTimeout` with a timeout of `0`. 15905 * 15906 * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/) 15907 * for details over the differences between `_.debounce` and `_.throttle`. 15908 * 15909 * @static 15910 * @memberOf _ 15911 * @since 0.1.0 15912 * @category Function 15913 * @param {Function} func The function to debounce. 15914 * @param {number} [wait=0] The number of milliseconds to delay. 15915 * @param {Object} [options={}] The options object. 15916 * @param {boolean} [options.leading=false] 15917 * Specify invoking on the leading edge of the timeout. 15918 * @param {number} [options.maxWait] 15919 * The maximum time `func` is allowed to be delayed before it's invoked. 15920 * @param {boolean} [options.trailing=true] 15921 * Specify invoking on the trailing edge of the timeout. 15922 * @returns {Function} Returns the new debounced function. 15923 * @example 15924 * 15925 * // Avoid costly calculations while the window size is in flux.
vendor: 4,734 bytes, lines 15926-16111
15926 * jQuery(window).on('resize', _.debounce(calculateLayout, 150)); 15927 * 15928 * // Invoke `sendMail` when clicked, debouncing subsequent calls. 15929 * jQuery(element).on('click', _.debounce(sendMail, 300, { 15930 * 'leading': true, 15931 * 'trailing': false 15932 * })); 15933 * 15934 * // Ensure `batchLog` is invoked once after 1 second of debounced calls. 15935 * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 }); 15936 * var source = new EventSource('/stream'); 15937 * jQuery(source).on('message', debounced); 15938 * 15939 * // Cancel the trailing debounced invocation. 15940 * jQuery(window).on('popstate', debounced.cancel); 15941 */ 15942function debounce(func, wait, options) { 15943 var lastArgs, 15944 lastThis, 15945 maxWait, 15946 result, 15947 timerId, 15948 lastCallTime, 15949 lastInvokeTime = 0, 15950 leading = false, 15951 maxing = false, 15952 trailing = true; 15953 15954 if (typeof func != 'function') { 15955 throw new TypeError(FUNC_ERROR_TEXT); 15956 } 15957 wait = toNumber(wait) || 0; 15958 if (isObject(options)) { 15959 leading = !!options.leading; 15960 maxing = 'maxWait' in options; 15961 maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait; 15962 trailing = 'trailing' in options ? !!options.trailing : trailing; 15963 } 15964 15965 function invokeFunc(time) { 15966 var args = lastArgs, 15967 thisArg = lastThis; 15968 15969 lastArgs = lastThis = undefined; 15970 lastInvokeTime = time; 15971 result = func.apply(thisArg, args); 15972 return result; 15973 } 15974 15975 function leadingEdge(time) { 15976 // Reset any `maxWait` timer. 15977 lastInvokeTime = time; 15978 // Start the timer for the trailing edge. 15979 timerId = setTimeout(timerExpired, wait); 15980 // Invoke the leading edge. 15981 return leading ? invokeFunc(time) : result; 15982 } 15983 15984 function remainingWait(time) { 15985 var timeSinceLastCall = time - lastCallTime, 15986 timeSinceLastInvoke = time - lastInvokeTime, 15987 timeWaiting = wait - timeSinceLastCall; 15988 15989 return maxing 15990 ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) 15991 : timeWaiting; 15992 } 15993 15994 function shouldInvoke(time) { 15995 var timeSinceLastCall = time - lastCallTime, 15996 timeSinceLastInvoke = time - lastInvokeTime; 15997 15998 // Either this is the first call, activity has stopped and we're at the 15999 // trailing edge, the system time has gone backwards and we're treating 16000 // it as the trailing edge, or we've hit the `maxWait` limit. 16001 return (lastCallTime === undefined || (timeSinceLastCall >= wait) || 16002 (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait)); 16003 } 16004 16005 function timerExpired() { 16006 var time = now(); 16007 if (shouldInvoke(time)) { 16008 return trailingEdge(time); 16009 } 16010 // Restart the timer. 16011 timerId = setTimeout(timerExpired, remainingWait(time)); 16012 } 16013 16014 function trailingEdge(time) { 16015 timerId = undefined; 16016 16017 // Only invoke if we have `lastArgs` which means `func` has been 16018 // debounced at least once. 16019 if (trailing && lastArgs) { 16020 return invokeFunc(time); 16021 } 16022 lastArgs = lastThis = undefined; 16023 return result; 16024 } 16025 16026 function cancel() { 16027 if (timerId !== undefined) { 16028 clearTimeout(timerId); 16029 } 16030 lastInvokeTime = 0; 16031 lastArgs = lastCallTime = lastThis = timerId = undefined; 16032 } 16033 16034 function flush() { 16035 return timerId === undefined ? result : trailingEdge(now()); 16036 } 16037 16038 function debounced() { 16039 var time = now(), 16040 isInvoking = shouldInvoke(time); 16041 16042 lastArgs = arguments; 16043 lastThis = this; 16044 lastCallTime = time; 16045 16046 if (isInvoking) { 16047 if (timerId === undefined) { 16048 return leadingEdge(lastCallTime); 16049 } 16050 if (maxing) { 16051 // Handle invocations in a tight loop. 16052 clearTimeout(timerId); 16053 timerId = setTimeout(timerExpired, wait); 16054 return invokeFunc(lastCallTime); 16055 } 16056 } 16057 if (timerId === undefined) { 16058 timerId = setTimeout(timerExpired, wait); 16059 } 16060 return result; 16061 } 16062 debounced.cancel = cancel; 16063 debounced.flush = flush; 16064 return debounced; 16065} 16066 16067module.exports = debounce; 16068 16069 16070/***/ }), 16071/* 289 */ 16072/***/ (function(module, exports, __webpack_require__) { 16073 16074var root = __webpack_require__(4); 16075 16076/** 16077 * Gets the timestamp of the number of milliseconds that have elapsed since 16078 * the Unix epoch (1 January 1970 00:00:00 UTC). 16079 * 16080 * @static 16081 * @memberOf _ 16082 * @since 2.4.0 16083 * @category Date 16084 * @returns {number} Returns the timestamp. 16085 * @example 16086 * 16087 * _.defer(function(stamp) { 16088 * console.log(_.now() - stamp); 16089 * }, _.now()); 16090 * // => Logs the number of milliseconds it took for the deferred invocation. 16091 */ 16092var now = function() { 16093 return root.Date.now(); 16094}; 16095 16096module.exports = now; 16097 16098 16099/***/ }), 16100/* 290 */ 16101/***/ (function(module, exports, __webpack_require__) { 16102 16103"use strict"; 16104 16105 16106Object.defineProperty(exports, "__esModule", { 16107 value: true 16108}); 16109 16110var _quickEffects = __webpack_require__(291); 16111
16112Object.keys(_quickEffects).forEach(function (key) { 16113 if (key === "default" || key === "__esModule") return; 16114 Object.defineProperty(exports, key, { 16115 enumerable: true, 16116 get: function get() { 16117 return _quickEffects[key]; 16118 } 16119 }); 16120}); 16121 16122/***/ }), 16123/* 291 */ 16124/***/ (function(module, exports, __webpack_require__) { 16125 16126"use strict"; 16127 16128 16129Object.defineProperty(exports, "__esModule", { 16130 value: true 16131}); 16132exports.isQuickEffect = void 0; 16133 16134var _constants = __webpack_require__(2); 16135 16136var QuickEffectsIdList = Object.keys(_constants.QuickEffectIds); 16137 16138var isQuickEffect = function isQuickEffect(actionTypeId) { 16139 return QuickEffectsIdList.includes(actionTypeId); 16140}; 16141 16142exports.isQuickEffect = isQuickEffect; 16143 16144/***/ }), 16145/* 292 */ 16146/***/ (function(module, exports, __webpack_require__) { 16147 16148"use strict"; 16149 16150 16151var _interopRequireDefault = __webpack_require__(0); 16152 16153var _typeof2 = _interopRequireDefault(__webpack_require__(21)); 16154 16155Object.defineProperty(exports, "__esModule", { 16156 value: true 16157}); 16158exports.setStyle = setStyle; 16159exports.getStyle = getStyle; 16160exports.getProperty = getProperty; 16161exports.matchSelector = matchSelector; 16162exports.getQuerySelector = getQuerySelector; 16163exports.getValidDocument = getValidDocument; 16164exports.queryDocument = queryDocument; 16165exports.elementContains = elementContains; 16166exports.isSiblingNode = isSiblingNode; 16167exports.getChildElements = getChildElements; 16168exports.getSiblingElements = getSiblingElements; 16169exports.getRefType = getRefType; 16170exports.getClosestElement = void 0; 16171 16172var _shared = __webpack_require__(10); 16173 16174var _constants = __webpack_require__(2); 16175/* eslint-env browser */ 16176 16177 16178var ELEMENT_MATCHES = _shared.IX2BrowserSupport.ELEMENT_MATCHES; 16179var _constants$IX2EngineC = _constants.IX2EngineConstants, 16180 IX2_ID_DELIMITER = _constants$IX2EngineC.IX2_ID_DELIMITER, 16181 HTML_ELEMENT = _constants$IX2EngineC.HTML_ELEMENT, 16182 PLAIN_OBJECT = _constants$IX2EngineC.PLAIN_OBJECT, 16183 WF_PAGE = _constants$IX2EngineC.WF_PAGE; 16184 16185function setStyle(element, prop, value) { 16186 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 16187 element.style[prop] = value; 16188} 16189 16190function getStyle(element, prop) { 16191 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 16192 return element.style[prop]; 16193} 16194 16195function getProperty(element, prop) { 16196 // $FlowIgnore â flow complains that prop should be a number. Will need to update upstream 16197 return element[prop]; 16198} 16199 16200function matchSelector(selector) { 16201 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 16202 return function (element) { 16203 return element[ELEMENT_MATCHES](selector); 16204 }; 16205} 16206 16207function getQuerySelector(_ref) { 16208 var id = _ref.id, 16209 selector = _ref.selector; 16210 16211 if (id) { 16212 var nodeId = id; 16213 16214 if (id.indexOf(IX2_ID_DELIMITER) !== -1) { 16215 var pair = id.split(IX2_ID_DELIMITER); 16216 var pageId = pair[0]; 16217 nodeId = pair[1]; // Short circuit query if we're on the wrong page 16218 // $FlowIgnore â if documentElement is null crash 16219 16220 if (pageId !== document.documentElement.getAttribute(WF_PAGE)) { 16221 return null; 16222 } 16223 } 16224 16225 return "[data-w-id^=\"".concat(nodeId, "\"]"); 16226 } 16227 16228 return selector; 16229} 16230 16231function getValidDocument(pageId) { 16232 if (pageId == null || // $FlowIgnore â if documentElement is null crash 16233 pageId === document.documentElement.getAttribute(WF_PAGE)) { 16234 return document; 16235 } 16236 16237 return null; 16238} 16239 16240function queryDocument(baseSelector, descendantSelector) { 16241 return Array.prototype.slice.call(document.querySelectorAll(descendantSelector ? baseSelector + ' ' + descendantSelector : baseSelector)); 16242} 16243 16244function elementContains(parent, child) { 16245 return parent.contains(child); 16246} 16247 16248function isSiblingNode(a, b) { 16249 return a !== b && a.parentNode === b.parentNode; 16250} 16251 16252function getChildElements(sourceElements) { 16253 var childElements = []; 16254 16255 for (var i = 0, _ref2 = sourceElements || [], length = _ref2.length; i < length; i++) { 16256 var children = sourceElements[i].children; 16257 var childCount = children.length; 16258 16259 if (!childCount) { 16260 continue; 16261 } 16262 16263 for (var j = 0; j < childCount; j++) { 16264 childElements.push(children[j]); 16265 } 16266 } 16267 16268 return childElements; 16269} // $FlowFixMe 16270 16271 16272function getSiblingElements() { 16273 var sourceElements = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; 16274 var elements = []; 16275 var parentCache = []; 16276 16277 for (var i = 0, length = sourceElements.length; i < length; i++) { 16278 var parentNode = sourceElements[i].parentNode; 16279 16280 if (!parentNode || !parentNode.children || !parentNode.children.length) { 16281 continue; 16282 } 16283 16284 if (parentCache.indexOf(parentNode) !== -1) { 16285 continue; 16286 } 16287 16288 parentCache.push(parentNode); 16289 var el = parentNode.firstElementChild; 16290 16291 while (el != null) { 16292 if (sourceElements.indexOf(el) === -1) { 16293 elements.push(el); 16294 } 16295 16296 el = el.nextElementSibling; 16297 } 16298 } 16299 16300 return elements; 16301} 16302 16303var getClosestElement = Element.prototype.closest ? function (element, selector) { 16304 // $FlowIgnore â ELEMENT_MATCHES is the name of the method on the element's prototype depending on browser 16305 if (!document.documentElement.contains(element)) { 16306 return null; 16307 } 16308 16309 return element.closest(selector); 16310} : function (element, selector) { 16311 // $FlowIgnore â if documentElement is null crash 16312 if (!document.documentElement.contains(element)) { 16313 return null; 16314 } 16315 16316 var el = element; 16317 16318 do { 16319 // $FlowIgnore â if documentElement is null crash 16320 if (el[ELEMENT_MATCHES] && el[ELEMENT_MATCHES](selector)) { 16321 return el; 16322 } 16323 16324 el = el.parentNode; 16325 } while (el != null); 16326 16327 return null; 16328}; 16329exports.getClosestElement = getClosestElement; 16330 16331function getRefType(ref) { 16332 if (ref != null && (0, _typeof2["default"])(ref) == 'object') { 16333 return ref instanceof Element ? HTML_ELEMENT : PLAIN_OBJECT; 16334 } 16335 16336 return null; 16337} 16338 16339/***/ }), 16340/* 293 */ 16341/***/ (function(module, exports, __webpack_require__) { 16342 16343"use strict"; 16344 16345 16346var _interopRequireDefault2 = __webpack_require__(0); 16347 16348var _defineProperty2 = _interopRequireDefault2(__webpack_require__(26)); 16349 16350var _typeof2 = _interopRequireDefault2(__webpack_require__(21)); 16351 16352var _default2; 16353 16354var _interopRequireDefault = __webpack_require__(0); 16355 16356Object.defineProperty(exports, "__esModule", { 16357 value: true 16358}); 16359exports["default"] = void 0; 16360 16361var _extends2 = _interopRequireDefault(__webpack_require__(27)); 16362 16363var _flow = _interopRequireDefault(__webpack_require__(294)); 16364 16365var _get = _interopRequireDefault(__webpack_require__(34)); 16366 16367var _clamp = _interopRequireDefault(__webpack_require__(313)); 16368 16369var _constants = __webpack_require__(2); 16370 16371var _IX2VanillaEngine = __webpack_require__(115); 16372 16373var _IX2EngineActions = __webpack_require__(62); 16374 16375var _shared = __webpack_require__(10); 16376/* eslint-env browser */ 16377 16378 16379var _constants$EventTypeC = _constants.EventTypeConsts, 16380 MOUSE_CLICK = _constants$EventTypeC.MOUSE_CLICK, 16381 MOUSE_SECOND_CLICK = _constants$EventTypeC.MOUSE_SECOND_CLICK, 16382 MOUSE_DOWN = _constants$EventTypeC.MOUSE_DOWN, 16383 MOUSE_UP = _constants$EventTypeC.MOUSE_UP, 16384 MOUSE_OVER = _constants$EventTypeC.MOUSE_OVER, 16385 MOUSE_OUT = _constants$EventTypeC.MOUSE_OUT, 16386 DROPDOWN_CLOSE = _constants$EventTypeC.DROPDOWN_CLOSE, 16387 DROPDOWN_OPEN = _constants$EventTypeC.DROPDOWN_OPEN, 16388 SLIDER_ACTIVE = _constants$EventTypeC.SLIDER_ACTIVE, 16389 SLIDER_INACTIVE = _constants$EventTypeC.SLIDER_INACTIVE, 16390 TAB_ACTIVE = _constants$EventTypeC.TAB_ACTIVE, 16391 TAB_INACTIVE = _constants$EventTypeC.TAB_INACTIVE, 16392 NAVBAR_CLOSE = _constants$EventTypeC.NAVBAR_CLOSE, 16393 NAVBAR_OPEN = _constants$EventTypeC.NAVBAR_OPEN, 16394 MOUSE_MOVE = _constants$EventTypeC.MOUSE_MOVE, 16395 PAGE_SCROLL_DOWN = _constants$EventTypeC.PAGE_SCROLL_DOWN, 16396 SCROLL_INTO_VIEW = _constants$EventTypeC.SCROLL_INTO_VIEW,
16397 SCROLL_OUT_OF_VIEW = _constants$EventTypeC.SCROLL_OUT_OF_VIEW, 16398 PAGE_SCROLL_UP = _constants$EventTypeC.PAGE_SCROLL_UP, 16399 SCROLLING_IN_VIEW = _constants$EventTypeC.SCROLLING_IN_VIEW, 16400 PAGE_FINISH = _constants$EventTypeC.PAGE_FINISH, 16401 ECOMMERCE_CART_CLOSE = _constants$EventTypeC.ECOMMERCE_CART_CLOSE, 16402 ECOMMERCE_CART_OPEN = _constants$EventTypeC.ECOMMERCE_CART_OPEN, 16403 PAGE_START = _constants$EventTypeC.PAGE_START, 16404 PAGE_SCROLL = _constants$EventTypeC.PAGE_SCROLL; 16405var COMPONENT_ACTIVE = 'COMPONENT_ACTIVE'; 16406var COMPONENT_INACTIVE = 'COMPONENT_INACTIVE'; 16407var COLON_DELIMITER = _constants.IX2EngineConstants.COLON_DELIMITER; 16408var getNamespacedParameterId = _shared.IX2VanillaUtils.getNamespacedParameterId; 16409 16410var composableFilter = function composableFilter(predicate) { 16411 return function (options) { 16412 if ((0, _typeof2["default"])(options) === 'object' && predicate(options)) { 16413 return true; 16414 } 16415 16416 return options; 16417 }; 16418}; 16419 16420var isElement = composableFilter(function (_ref) { 16421 var element = _ref.element, 16422 nativeEvent = _ref.nativeEvent; 16423 return element === nativeEvent.target; 16424}); 16425var containsElement = composableFilter(function (_ref2) { 16426 var element = _ref2.element, 16427 nativeEvent = _ref2.nativeEvent; 16428 return element.contains(nativeEvent.target); 16429}); 16430var isOrContainsElement = (0, _flow["default"])([isElement, containsElement]); 16431 16432var getAutoStopEvent = function getAutoStopEvent(store, autoStopEventId) { 16433 if (autoStopEventId) { 16434 var _store$getState = store.getState(), 16435 ixData = _store$getState.ixData; 16436 16437 var events = ixData.events; 16438 var eventToStop = events[autoStopEventId]; 16439 16440 if (eventToStop && !AUTO_STOP_DISABLED_EVENTS[eventToStop.eventTypeId]) { 16441 return eventToStop; 16442 } 16443 } 16444 16445 return null; 16446}; 16447 16448var hasAutoStopEvent = function hasAutoStopEvent(_ref3) { 16449 var store = _ref3.store, 16450 event = _ref3.event; 16451 var eventAction = event.action; 16452 var autoStopEventId = eventAction.config.autoStopEventId; 16453 return Boolean(getAutoStopEvent(store, autoStopEventId)); 16454}; 16455 16456var actionGroupCreator = function actionGroupCreator(_ref4, state) { 16457 var store = _ref4.store, 16458 event = _ref4.event, 16459 element = _ref4.element, 16460 eventStateKey = _ref4.eventStateKey; 16461 var eventAction = event.action, 16462 eventId = event.id; 16463 var _eventAction$config = eventAction.config, 16464 actionListId = _eventAction$config.actionListId, 16465 autoStopEventId = _eventAction$config.autoStopEventId; 16466 var eventToStop = getAutoStopEvent(store, autoStopEventId); 16467 16468 if (eventToStop) { 16469 (0, _IX2VanillaEngine.stopActionGroup)({ 16470 store: store, 16471 eventId: autoStopEventId, 16472 eventTarget: element, 16473 eventStateKey: autoStopEventId + COLON_DELIMITER + eventStateKey.split(COLON_DELIMITER)[1], 16474 actionListId: (0, _get["default"])(eventToStop, 'action.config.actionListId') 16475 }); 16476 } 16477 16478 (0, _IX2VanillaEngine.stopActionGroup)({ 16479 store: store, 16480 eventId: eventId, 16481 eventTarget: element, 16482 eventStateKey: eventStateKey, 16483 actionListId: actionListId 16484 }); 16485 (0, _IX2VanillaEngine.startActionGroup)({ 16486 store: store, 16487 eventId: eventId, 16488 eventTarget: element, 16489 eventStateKey: eventStateKey, 16490 actionListId: actionListId 16491 }); 16492 return state; 16493}; // $FlowFixMe 16494 16495 16496var withFilter = function withFilter(filter, handler) { 16497 return function (options, state) { 16498 return (// $FlowFixMe 16499 filter(options, state) === true ? handler(options, state) : state 16500 ); 16501 }; 16502}; 16503 16504var baseActionGroupOptions = { 16505 handler: withFilter(isOrContainsElement, actionGroupCreator) 16506}; 16507var baseActivityActionGroupOptions = (0, _extends2["default"])({}, baseActionGroupOptions, { 16508 types: [COMPONENT_ACTIVE, COMPONENT_INACTIVE].join(' ') 16509}); 16510var SCROLL_EVENT_TYPES = [{ 16511 target: window, 16512 types: 'resize orientationchange', 16513 throttle: true 16514}, { 16515 target: document, 16516 types: 'scroll wheel readystatechange IX2_PAGE_UPDATE', 16517 throttle: true 16518}]; 16519var MOUSE_OVER_OUT_TYPES = 'mouseover mouseout'; 16520var baseScrollActionGroupOptions = { 16521 types: SCROLL_EVENT_TYPES 16522}; 16523var AUTO_STOP_DISABLED_EVENTS = { 16524 PAGE_START: PAGE_START, 16525 PAGE_FINISH: PAGE_FINISH 16526}; 16527 16528var getDocumentState = function () { 16529 var supportOffset = window.pageXOffset !== undefined; 16530 var isCSS1Compat = document.compatMode === 'CSS1Compat'; 16531 var rootElement = isCSS1Compat ? document.documentElement : document.body; 16532 return function () { 16533 return { 16534 // $FlowFixMe 16535 scrollLeft: supportOffset ? window.pageXOffset : rootElement.scrollLeft, 16536 // $FlowFixMe 16537 scrollTop: supportOffset ? window.pageYOffset : rootElement.scrollTop, 16538 // required to remove elasticity in Safari scrolling. 16539 stiffScrollTop: (0, _clamp["default"])( // $FlowFixMe 16540 supportOffset ? window.pageYOffset : rootElement.scrollTop, 0, // $FlowFixMe 16541 rootElement.scrollHeight - window.innerHeight), 16542 // $FlowFixMe 16543 scrollWidth: rootElement.scrollWidth, 16544 // $FlowFixMe 16545 scrollHeight: rootElement.scrollHeight, 16546 // $FlowFixMe 16547 clientWidth: rootElement.clientWidth, 16548 // $FlowFixMe 16549 clientHeight: rootElement.clientHeight, 16550 innerWidth: window.innerWidth, 16551 innerHeight: window.innerHeight 16552 }; 16553 }; 16554}(); 16555 16556var areBoxesIntersecting = function areBoxesIntersecting(a, b) { 16557 return !(a.left > b.right || a.right < b.left || a.top > b.bottom || a.bottom < b.top); 16558}; 16559 16560var isElementHovered = function isElementHovered(_ref5) { 16561 var element = _ref5.element, 16562 nativeEvent = _ref5.nativeEvent; 16563 var type = nativeEvent.type, 16564 target = nativeEvent.target, 16565 relatedTarget = nativeEvent.relatedTarget; 16566 var containsTarget = element.contains(target); 16567 16568 if (type === 'mouseover' && containsTarget) { 16569 return true; 16570 } 16571 16572 var containsRelated = element.contains(relatedTarget); 16573 16574 if (type === 'mouseout' && containsTarget && containsRelated) { 16575 return true; 16576 } 16577 16578 return false;
16579}; 16580 16581var isElementVisible = function isElementVisible(options) { 16582 var element = options.element, 16583 config = options.event.config; 16584 16585 var _getDocumentState = getDocumentState(), 16586 clientWidth = _getDocumentState.clientWidth, 16587 clientHeight = _getDocumentState.clientHeight; 16588 16589 var scrollOffsetValue = config.scrollOffsetValue; 16590 var scrollOffsetUnit = config.scrollOffsetUnit; 16591 var isPX = scrollOffsetUnit === 'PX'; 16592 var offsetPadding = isPX ? scrollOffsetValue : clientHeight * (scrollOffsetValue || 0) / 100; 16593 return areBoxesIntersecting(element.getBoundingClientRect(), { 16594 left: 0, 16595 top: offsetPadding, 16596 right: clientWidth, 16597 bottom: clientHeight - offsetPadding 16598 }); 16599}; 16600 16601var whenComponentActiveChange = function whenComponentActiveChange(handler) { 16602 return function (options, oldState) { 16603 var type = options.nativeEvent.type; // prettier-ignore 16604 16605 var isActive = [COMPONENT_ACTIVE, COMPONENT_INACTIVE].indexOf(type) !== -1 ? type === COMPONENT_ACTIVE : oldState.isActive; 16606 var newState = (0, _extends2["default"])({}, oldState, { 16607 isActive: isActive 16608 }); 16609 16610 if (!oldState || newState.isActive !== oldState.isActive) { 16611 return handler(options, newState) || newState; 16612 } 16613 16614 return newState; 16615 }; 16616}; 16617 16618var whenElementHoverChange = function whenElementHoverChange(handler) { 16619 return function (options, oldState) { 16620 var newState = { 16621 elementHovered: isElementHovered(options) 16622 }; 16623 16624 if (oldState ? newState.elementHovered !== oldState.elementHovered : newState.elementHovered) { 16625 return handler(options, newState) || newState; 16626 } 16627 16628 return newState; 16629 }; 16630}; // $FlowFixMe 16631 16632 16633var whenElementVisibiltyChange = function whenElementVisibiltyChange(handler) { 16634 return function (options, oldState) { 16635 var newState = (0, _extends2["default"])({}, oldState, { 16636 elementVisible: isElementVisible(options) 16637 }); 16638 16639 if (oldState ? newState.elementVisible !== oldState.elementVisible : newState.elementVisible) { 16640 return handler(options, newState) || newState; 16641 } 16642 16643 return newState; 16644 }; 16645}; // $FlowFixMe 16646 16647 16648var whenScrollDirectionChange = function whenScrollDirectionChange(handler) { 16649 return function (options) { 16650 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; 16651 16652 var _getDocumentState2 = getDocumentState(), 16653 scrollTop = _getDocumentState2.stiffScrollTop, 16654 scrollHeight = _getDocumentState2.scrollHeight, 16655 innerHeight = _getDocumentState2.innerHeight; 16656 16657 var _options$event = options.event, 16658 config = _options$event.config, 16659 eventTypeId = _options$event.eventTypeId; 16660 var scrollOffsetValue = config.scrollOffsetValue, 16661 scrollOffsetUnit = config.scrollOffsetUnit; 16662 var isPX = scrollOffsetUnit === 'PX'; 16663 var scrollHeightBounds = scrollHeight - innerHeight; // percent top since innerHeight may change for mobile devices which also changes the scrollTop value. 16664 16665 var percentTop = Number((scrollTop / scrollHeightBounds).toFixed(2)); // no state change 16666 16667 if (oldState && oldState.percentTop === percentTop) { 16668 return oldState; 16669 } 16670 16671 var scrollTopPadding = (isPX ? scrollOffsetValue : innerHeight * (scrollOffsetValue || 0) / 100) / scrollHeightBounds; 16672 var scrollingDown; 16673 var scrollDirectionChanged; 16674 var anchorTop = 0; 16675 16676 if (oldState) { 16677 scrollingDown = percentTop > oldState.percentTop; 16678 scrollDirectionChanged = oldState.scrollingDown !== scrollingDown; 16679 anchorTop = scrollDirectionChanged ? percentTop : oldState.anchorTop; 16680 } 16681 16682 var inBounds = eventTypeId === PAGE_SCROLL_DOWN ? percentTop >= anchorTop + scrollTopPadding : percentTop <= anchorTop - scrollTopPadding; 16683 var newState = (0, _extends2["default"])({}, oldState, { 16684 percentTop: percentTop, 16685 inBounds: inBounds, 16686 anchorTop: anchorTop, 16687 scrollingDown: scrollingDown 16688 }); 16689 16690 if (oldState && inBounds && (scrollDirectionChanged || newState.inBounds !== oldState.inBounds)) { 16691 return handler(options, newState) || newState; 16692 } 16693 16694 return newState; 16695 }; 16696}; 16697 16698var pointIntersects = function pointIntersects(point, rect) { 16699 return point.left > rect.left && point.left < rect.right && point.top > rect.top && point.top < rect.bottom; 16700}; 16701 16702var whenPageLoadFinish = function whenPageLoadFinish(handler) { 16703 return function (options, oldState) { 16704 var newState = { 16705 finished: document.readyState === 'complete' 16706 }; 16707 16708 if (newState.finished && !(oldState && oldState.finshed)) { 16709 handler(options); 16710 } 16711 16712 return newState; 16713 }; 16714}; 16715 16716var whenPageLoadStart = function whenPageLoadStart(handler) { 16717 return function (options, oldState) { 16718 var newState = { 16719 started: true 16720 }; 16721 16722 if (!oldState) { 16723 handler(options); 16724 } 16725 16726 return newState; 16727 }; 16728}; 16729 16730var whenClickCountChange = function whenClickCountChange(handler) { 16731 return function (options) { 16732 var oldState = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16733 clickCount: 0 16734 }; 16735 var newState = { 16736 clickCount: oldState.clickCount % 2 + 1 16737 }; 16738 16739 if (newState.clickCount !== oldState.clickCount) { 16740 return handler(options, newState) || newState; 16741 } 16742 16743 return newState; 16744 }; 16745}; 16746 16747var getComponentActiveOptions = function getComponentActiveOptions() { 16748 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16749 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16750 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16751 return state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16752 })) 16753 }); 16754}; 16755 16756var getComponentInactiveOptions = function getComponentInactiveOptions() { 16757 var allowNestedChildrenEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true; 16758 return (0, _extends2["default"])({}, baseActivityActionGroupOptions, { 16759 handler: withFilter(allowNestedChildrenEvents ? isOrContainsElement : isElement, whenComponentActiveChange(function (options, state) { 16760 return !state.isActive ? baseActionGroupOptions.handler(options, state) : state; 16761 })) 16762 }); 16763}; 16764 16765var scrollIntoOutOfViewOptions = (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 16766 handler: whenElementVisibiltyChange(function (options, state) { 16767 var elementVisible = state.elementVisible; 16768 var event = options.event, 16769 store = options.store; 16770 16771 var _store$getState2 = store.getState(), 16772 ixData = _store$getState2.ixData; 16773 16774 var events = ixData.events; // trigger the handler only once if only one of SCROLL_INTO or SCROLL_OUT_OF event types 16775 // are registered. 16776 16777 if (!events[event.action.config.autoStopEventId] && state.triggered) { 16778 return state; 16779 } 16780 16781 if (event.eventTypeId === SCROLL_INTO_VIEW === elementVisible) { 16782 actionGroupCreator(options); 16783 return (0, _extends2["default"])({}, state, { 16784 triggered: true 16785 }); 16786 } else { 16787 return state; 16788 } 16789 }) 16790}); 16791var MOUSE_OUT_ROUND_THRESHOLD = 0.05; 16792 16793var _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, { 16794 types: 'ecommerce-cart-open', 16795 handler: withFilter(isOrContainsElement, actionGroupCreator) 16796}), (0, _defineProperty2["default"])(_default2, ECOMMERCE_CART_CLOSE, { 16797 types: 'ecommerce-cart-close', 16798 handler: withFilter(isOrContainsElement, actionGroupCreator) 16799}), (0, _defineProperty2["default"])(_default2, MOUSE_CLICK, { 16800 types: 'click', 16801 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref6) { 16802 var clickCount = _ref6.clickCount; 16803 16804 if (hasAutoStopEvent(options)) { 16805 clickCount === 1 && actionGroupCreator(options); 16806 } else { 16807 actionGroupCreator(options); 16808 } 16809 })) 16810}), (0, _defineProperty2["default"])(_default2, MOUSE_SECOND_CLICK, { 16811 types: 'click', 16812 handler: withFilter(isOrContainsElement, whenClickCountChange(function (options, _ref7) { 16813 var clickCount = _ref7.clickCount; 16814 16815 if (clickCount === 2) { 16816 actionGroupCreator(options); 16817 } 16818 })) 16819}), (0, _defineProperty2["default"])(_default2, MOUSE_DOWN, (0, _extends2["default"])({}, baseActionGroupOptions, { 16820 types: 'mousedown' 16821})), (0, _defineProperty2["default"])(_default2, MOUSE_UP, (0, _extends2["default"])({}, baseActionGroupOptions, { 16822 types: 'mouseup' 16823})), (0, _defineProperty2["default"])(_default2, MOUSE_OVER, { 16824 types: MOUSE_OVER_OUT_TYPES, 16825 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16826 if (state.elementHovered) { 16827 actionGroupCreator(options); 16828 } 16829 })) 16830}), (0, _defineProperty2["default"])(_default2, MOUSE_OUT, { 16831 types: MOUSE_OVER_OUT_TYPES, 16832 handler: withFilter(isOrContainsElement, whenElementHoverChange(function (options, state) { 16833 if (!state.elementHovered) { 16834 actionGroupCreator(options); 16835 } 16836 })) 16837}), (0, _defineProperty2["default"])(_default2, MOUSE_MOVE, { 16838 types: 'mousemove mouseout scroll', 16839 handler: function handler( // $FlowFixMe 16840 _ref8) { 16841 var store = _ref8.store, 16842 element = _ref8.element, 16843 eventConfig = _ref8.eventConfig, 16844 nativeEvent = _ref8.nativeEvent, 16845 eventStateKey = _ref8.eventStateKey; 16846 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16847 clientX: 0, 16848 clientY: 0, 16849 pageX: 0, 16850 pageY: 0 16851 }; 16852 var basedOn = eventConfig.basedOn, 16853 selectedAxis = eventConfig.selectedAxis, 16854 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16855 reverse = eventConfig.reverse, 16856 _eventConfig$restingS = eventConfig.restingState, 16857 restingState = _eventConfig$restingS === void 0 ? 0 : _eventConfig$restingS; 16858 var _nativeEvent$clientX = nativeEvent.clientX, 16859 clientX = _nativeEvent$clientX === void 0 ? state.clientX : _nativeEvent$clientX, 16860 _nativeEvent$clientY = nativeEvent.clientY, 16861 clientY = _nativeEvent$clientY === void 0 ? state.clientY : _nativeEvent$clientY,
16862 _nativeEvent$pageX = nativeEvent.pageX, 16863 pageX = _nativeEvent$pageX === void 0 ? state.pageX : _nativeEvent$pageX, 16864 _nativeEvent$pageY = nativeEvent.pageY, 16865 pageY = _nativeEvent$pageY === void 0 ? state.pageY : _nativeEvent$pageY; 16866 var isXAxis = selectedAxis === 'X_AXIS'; 16867 var isMouseOut = nativeEvent.type === 'mouseout'; 16868 var value = restingState / 100; 16869 var namespacedParameterId = continuousParameterGroupId; 16870 var elementHovered = false; 16871 16872 switch (basedOn) { 16873 case _constants.EventBasedOn.VIEWPORT: 16874 { 16875 value = isXAxis ? Math.min(clientX, window.innerWidth) / window.innerWidth : Math.min(clientY, window.innerHeight) / window.innerHeight; 16876 break; 16877 } 16878 16879 case _constants.EventBasedOn.PAGE: 16880 { 16881 var _getDocumentState3 = getDocumentState(), 16882 scrollLeft = _getDocumentState3.scrollLeft, 16883 scrollTop = _getDocumentState3.scrollTop, 16884 scrollWidth = _getDocumentState3.scrollWidth, 16885 scrollHeight = _getDocumentState3.scrollHeight; 16886 16887 value = isXAxis ? Math.min(scrollLeft + pageX, scrollWidth) / scrollWidth : Math.min(scrollTop + pageY, scrollHeight) / scrollHeight; 16888 break; 16889 } 16890 16891 case _constants.EventBasedOn.ELEMENT: 16892 default: 16893 { 16894 namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 16895 var isMouseEvent = nativeEvent.type.indexOf('mouse') === 0; // Use isOrContainsElement for mouse events since they are fired from the target 16896 16897 if (isMouseEvent && isOrContainsElement({ 16898 element: element, 16899 nativeEvent: nativeEvent 16900 }) !== true) { 16901 break; 16902 } 16903 16904 var rect = element.getBoundingClientRect(); 16905 var left = rect.left, 16906 top = rect.top, 16907 width = rect.width, 16908 height = rect.height; // Otherwise we'll need to calculate the mouse position from the previous handler state 16909 // against the target element's rect 16910 16911 if (!isMouseEvent && !pointIntersects({ 16912 left: clientX, 16913 top: clientY 16914 }, rect)) { 16915 break; 16916 } 16917 16918 elementHovered = true; 16919 value = isXAxis ? (clientX - left) / width : (clientY - top) / height; 16920 break; 16921 } 16922 } // cover case where the event is a mouse out, but the value is not quite at 100% 16923 16924 16925 if (isMouseOut && (value > 1 - MOUSE_OUT_ROUND_THRESHOLD || value < MOUSE_OUT_ROUND_THRESHOLD)) { 16926 value = Math.round(value); 16927 } // Only update based on element if the mouse is moving over or has just left the element 16928 16929 16930 if (basedOn !== _constants.EventBasedOn.ELEMENT || elementHovered || // $FlowFixMe 16931 elementHovered !== state.elementHovered) { 16932 value = reverse ? 1 - value : value; 16933 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, value)); 16934 } 16935 16936 return { 16937 elementHovered: elementHovered, 16938 clientX: clientX, 16939 clientY: clientY, 16940 pageX: pageX, 16941 pageY: pageY 16942 }; 16943 } 16944}), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL, { 16945 types: SCROLL_EVENT_TYPES, 16946 // $FlowFixMe 16947 handler: function handler(_ref9) { 16948 var store = _ref9.store, 16949 eventConfig = _ref9.eventConfig; 16950 var continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16951 reverse = eventConfig.reverse; 16952 16953 var _getDocumentState4 = getDocumentState(), 16954 scrollTop = _getDocumentState4.scrollTop, 16955 scrollHeight = _getDocumentState4.scrollHeight, 16956 clientHeight = _getDocumentState4.clientHeight; 16957 16958 var value = scrollTop / (scrollHeight - clientHeight); 16959 value = reverse ? 1 - value : value; 16960 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16961 } 16962}), (0, _defineProperty2["default"])(_default2, SCROLLING_IN_VIEW, { 16963 types: SCROLL_EVENT_TYPES, 16964 handler: function handler( // $FlowFixMe 16965 _ref10) { 16966 var element = _ref10.element, 16967 store = _ref10.store, 16968 eventConfig = _ref10.eventConfig, 16969 eventStateKey = _ref10.eventStateKey; 16970 var state = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : { 16971 scrollPercent: 0 16972 }; 16973 16974 var _getDocumentState5 = getDocumentState(), 16975 scrollLeft = _getDocumentState5.scrollLeft, 16976 scrollTop = _getDocumentState5.scrollTop, 16977 scrollWidth = _getDocumentState5.scrollWidth, 16978 scrollHeight = _getDocumentState5.scrollHeight, 16979 visibleHeight = _getDocumentState5.clientHeight; 16980 16981 var basedOn = eventConfig.basedOn, 16982 selectedAxis = eventConfig.selectedAxis, 16983 continuousParameterGroupId = eventConfig.continuousParameterGroupId, 16984 startsEntering = eventConfig.startsEntering, 16985 startsExiting = eventConfig.startsExiting, 16986 addEndOffset = eventConfig.addEndOffset, 16987 addStartOffset = eventConfig.addStartOffset, 16988 _eventConfig$addOffse = eventConfig.addOffsetValue, 16989 addOffsetValue = _eventConfig$addOffse === void 0 ? 0 : _eventConfig$addOffse, 16990 _eventConfig$endOffse = eventConfig.endOffsetValue, 16991 endOffsetValue = _eventConfig$endOffse === void 0 ? 0 : _eventConfig$endOffse; 16992 var isXAxis = selectedAxis === 'X_AXIS'; 16993 16994 if (basedOn === _constants.EventBasedOn.VIEWPORT) { 16995 var value = isXAxis ? scrollLeft / scrollWidth : scrollTop / scrollHeight; 16996 16997 if (value !== state.scrollPercent) { 16998 store.dispatch((0, _IX2EngineActions.parameterChanged)(continuousParameterGroupId, value)); 16999 } 17000 17001 return { 17002 scrollPercent: value 17003 }; 17004 } else { 17005 var namespacedParameterId = getNamespacedParameterId(eventStateKey, continuousParameterGroupId); 17006 var elementRect = element.getBoundingClientRect(); 17007 var offsetStartPerc = (addStartOffset ? addOffsetValue : 0) / 100; 17008 var offsetEndPerc = (addEndOffset ? endOffsetValue : 0) / 100; // flip the offset percentages depending on start / exit type 17009 17010 offsetStartPerc = startsEntering ? offsetStartPerc : 1 - offsetStartPerc; 17011 offsetEndPerc = startsExiting ? offsetEndPerc : 1 - offsetEndPerc; 17012 var offsetElementTop = elementRect.top + Math.min(elementRect.height * offsetStartPerc, visibleHeight); 17013 var offsetElementBottom = elementRect.top + elementRect.height * offsetEndPerc; 17014 var offsetHeight = offsetElementBottom - offsetElementTop; 17015 var fixedScrollHeight = Math.min(visibleHeight + offsetHeight, scrollHeight); 17016 var fixedScrollTop = Math.min(Math.max(0, visibleHeight - offsetElementTop), fixedScrollHeight); 17017 var fixedScrollPerc = fixedScrollTop / fixedScrollHeight; 17018 17019 if (fixedScrollPerc !== state.scrollPercent) { 17020 store.dispatch((0, _IX2EngineActions.parameterChanged)(namespacedParameterId, fixedScrollPerc)); 17021 } 17022 17023 return { 17024 scrollPercent: fixedScrollPerc 17025 }; 17026 } 17027 } 17028}), (0, _defineProperty2["default"])(_default2, SCROLL_INTO_VIEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, SCROLL_OUT_OF_V
17028IEW, scrollIntoOutOfViewOptions), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_DOWN, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17029 handler: whenScrollDirectionChange(function (options, state) { 17030 if (state.scrollingDown) { 17031 actionGroupCreator(options); 17032 } 17033 }) 17034})), (0, _defineProperty2["default"])(_default2, PAGE_SCROLL_UP, (0, _extends2["default"])({}, baseScrollActionGroupOptions, { 17035 handler: whenScrollDirectionChange(function (options, state) { 17036 if (!state.scrollingDown) { 17037 actionGroupCreator(options); 17038 } 17039 }) 17040})), (0, _defineProperty2["default"])(_default2, PAGE_FINISH, { 17041 types: 'readystatechange IX2_PAGE_UPDATE', 17042 handler: withFilter(isElement, whenPageLoadFinish(actionGroupCreator)) 17043}), (0, _defineProperty2["default"])(_default2, PAGE_START, { 17044 types: 'readystatechange IX2_PAGE_UPDATE', 17045 handler: withFilter(isElement, whenPageLoadStart(actionGroupCreator)) 17046}), _default2); 17047 17048exports["default"] = _default; 17049 17050/***/ }), 17051/* 294 */ 17052/***/ (function(module, exports, __webpack_require__) { 17053
vendor: 4,744 bytes, lines 17054-17233
17054var createFlow = __webpack_require__(295); 17055 17056/** 17057 * Creates a function that returns the result of invoking the given functions 17058 * with the `this` binding of the created function, where each successive 17059 * invocation is supplied the return value of the previous. 17060 * 17061 * @static 17062 * @memberOf _ 17063 * @since 3.0.0 17064 * @category Util 17065 * @param {...(Function|Function[])} [funcs] The functions to invoke. 17066 * @returns {Function} Returns the new composite function. 17067 * @see _.flowRight 17068 * @example 17069 * 17070 * function square(n) { 17071 * return n * n; 17072 * } 17073 * 17074 * var addSquare = _.flow([_.add, square]); 17075 * addSquare(1, 2); 17076 * // => 9 17077 */ 17078var flow = createFlow(); 17079 17080module.exports = flow; 17081 17082 17083/***/ }), 17084/* 295 */ 17085/***/ (function(module, exports, __webpack_require__) { 17086 17087var LodashWrapper = __webpack_require__(63), 17088 flatRest = __webpack_require__(296), 17089 getData = __webpack_require__(119), 17090 getFuncName = __webpack_require__(120), 17091 isArray = __webpack_require__(1), 17092 isLaziable = __webpack_require__(309); 17093 17094/** Error message constants. */ 17095var FUNC_ERROR_TEXT = 'Expected a function'; 17096 17097/** Used to compose bitmasks for function metadata. */ 17098var WRAP_CURRY_FLAG = 8, 17099 WRAP_PARTIAL_FLAG = 32, 17100 WRAP_ARY_FLAG = 128, 17101 WRAP_REARG_FLAG = 256; 17102 17103/** 17104 * Creates a `_.flow` or `_.flowRight` function. 17105 * 17106 * @private 17107 * @param {boolean} [fromRight] Specify iterating from right to left. 17108 * @returns {Function} Returns the new flow function. 17109 */ 17110function createFlow(fromRight) { 17111 return flatRest(function(funcs) { 17112 var length = funcs.length, 17113 index = length, 17114 prereq = LodashWrapper.prototype.thru; 17115 17116 if (fromRight) { 17117 funcs.reverse(); 17118 } 17119 while (index--) { 17120 var func = funcs[index]; 17121 if (typeof func != 'function') { 17122 throw new TypeError(FUNC_ERROR_TEXT); 17123 } 17124 if (prereq && !wrapper && getFuncName(func) == 'wrapper') { 17125 var wrapper = new LodashWrapper([], true); 17126 } 17127 } 17128 index = wrapper ? index : length; 17129 while (++index < length) { 17130 func = funcs[index]; 17131 17132 var funcName = getFuncName(func), 17133 data = funcName == 'wrapper' ? getData(func) : undefined; 17134 17135 if (data && isLaziable(data[0]) && 17136 data[1] == (WRAP_ARY_FLAG | WRAP_CURRY_FLAG | WRAP_PARTIAL_FLAG | WRAP_REARG_FLAG) && 17137 !data[4].length && data[9] == 1 17138 ) { 17139 wrapper = wrapper[getFuncName(data[0])].apply(wrapper, data[3]); 17140 } else { 17141 wrapper = (func.length == 1 && isLaziable(func)) 17142 ? wrapper[funcName]() 17143 : wrapper.thru(func); 17144 } 17145 } 17146 return function() { 17147 var args = arguments, 17148 value = args[0]; 17149 17150 if (wrapper && args.length == 1 && isArray(value)) { 17151 return wrapper.plant(value).value(); 17152 } 17153 var index = 0, 17154 result = length ? funcs[index].apply(this, args) : value; 17155 17156 while (++index < length) { 17157 result = funcs[index].call(this, result); 17158 } 17159 return result; 17160 }; 17161 }); 17162} 17163 17164module.exports = createFlow; 17165 17166 17167/***/ }), 17168/* 296 */ 17169/***/ (function(module, exports, __webpack_require__) { 17170 17171var flatten = __webpack_require__(297), 17172 overRest = __webpack_require__(300), 17173 setToString = __webpack_require__(302); 17174 17175/** 17176 * A specialized version of `baseRest` which flattens the rest array. 17177 * 17178 * @private 17179 * @param {Function} func The function to apply a rest parameter to. 17180 * @returns {Function} Returns the new function. 17181 */ 17182function flatRest(func) { 17183 return setToString(overRest(func, undefined, flatten), func + ''); 17184} 17185 17186module.exports = flatRest; 17187 17188 17189/***/ }), 17190/* 297 */ 17191/***/ (function(module, exports, __webpack_require__) { 17192 17193var baseFlatten = __webpack_require__(298); 17194 17195/** 17196 * Flattens `array` a single level deep. 17197 * 17198 * @static 17199 * @memberOf _ 17200 * @since 0.1.0 17201 * @category Array 17202 * @param {Array} array The array to flatten. 17203 * @returns {Array} Returns the new flattened array. 17204 * @example 17205 * 17206 * _.flatten([1, [2, [3, [4]], 5]]); 17207 * // => [1, 2, [3, [4]], 5] 17208 */ 17209function flatten(array) { 17210 var length = array == null ? 0 : array.length; 17211 return length ? baseFlatten(array, 1) : []; 17212} 17213 17214module.exports = flatten; 17215 17216 17217/***/ }), 17218/* 298 */ 17219/***/ (function(module, exports, __webpack_require__) { 17220 17221var arrayPush = __webpack_require__(50), 17222 isFlattenable = __webpack_require__(299); 17223 17224/** 17225 * The base implementation of `_.flatten` with support for restricting flattening. 17226 * 17227 * @private 17228 * @param {Array} array The array to flatten. 17229 * @param {number} depth The maximum recursion depth. 17230 * @param {boolean} [predicate=isFlattenable] The function invoked per iteration. 17231 * @param {boolean} [isStrict] Restrict to values that pass `predicate` checks. 17232 * @param {Array} [result=[]] The initial result value. 17233 * @returns {Array} Returns the new flattened array.
vendor: 4,491 bytes, lines 17234-17405
17234 */ 17235function baseFlatten(array, depth, predicate, isStrict, result) { 17236 var index = -1, 17237 length = array.length; 17238 17239 predicate || (predicate = isFlattenable); 17240 result || (result = []); 17241 17242 while (++index < length) { 17243 var value = array[index]; 17244 if (depth > 0 && predicate(value)) { 17245 if (depth > 1) { 17246 // Recursively flatten arrays (susceptible to call stack limits). 17247 baseFlatten(value, depth - 1, predicate, isStrict, result); 17248 } else { 17249 arrayPush(result, value); 17250 } 17251 } else if (!isStrict) { 17252 result[result.length] = value; 17253 } 17254 } 17255 return result; 17256} 17257 17258module.exports = baseFlatten; 17259 17260 17261/***/ }), 17262/* 299 */ 17263/***/ (function(module, exports, __webpack_require__) { 17264 17265var Symbol = __webpack_require__(19), 17266 isArguments = __webpack_require__(33), 17267 isArray = __webpack_require__(1); 17268 17269/** Built-in value references. */ 17270var spreadableSymbol = Symbol ? Symbol.isConcatSpreadable : undefined; 17271 17272/** 17273 * Checks if `value` is a flattenable `arguments` object or array. 17274 * 17275 * @private 17276 * @param {*} value The value to check. 17277 * @returns {boolean} Returns `true` if `value` is flattenable, else `false`. 17278 */ 17279function isFlattenable(value) { 17280 return isArray(value) || isArguments(value) || 17281 !!(spreadableSymbol && value && value[spreadableSymbol]); 17282} 17283 17284module.exports = isFlattenable; 17285 17286 17287/***/ }), 17288/* 300 */ 17289/***/ (function(module, exports, __webpack_require__) { 17290 17291var apply = __webpack_require__(301); 17292 17293/* Built-in method references for those with the same name as other `lodash` methods. */ 17294var nativeMax = Math.max; 17295 17296/** 17297 * A specialized version of `baseRest` which transforms the rest array. 17298 * 17299 * @private 17300 * @param {Function} func The function to apply a rest parameter to. 17301 * @param {number} [start=func.length-1] The start position of the rest parameter. 17302 * @param {Function} transform The rest array transform. 17303 * @returns {Function} Returns the new function. 17304 */ 17305function overRest(func, start, transform) { 17306 start = nativeMax(start === undefined ? (func.length - 1) : start, 0); 17307 return function() { 17308 var args = arguments, 17309 index = -1, 17310 length = nativeMax(args.length - start, 0), 17311 array = Array(length); 17312 17313 while (++index < length) { 17314 array[index] = args[start + index]; 17315 } 17316 index = -1; 17317 var otherArgs = Array(start + 1); 17318 while (++index < start) { 17319 otherArgs[index] = args[index]; 17320 } 17321 otherArgs[start] = transform(array); 17322 return apply(func, this, otherArgs); 17323 }; 17324} 17325 17326module.exports = overRest; 17327 17328 17329/***/ }), 17330/* 301 */ 17331/***/ (function(module, exports) { 17332 17333/** 17334 * A faster alternative to `Function#apply`, this function invokes `func` 17335 * with the `this` binding of `thisArg` and the arguments of `args`. 17336 * 17337 * @private 17338 * @param {Function} func The function to invoke. 17339 * @param {*} thisArg The `this` binding of `func`. 17340 * @param {Array} args The arguments to invoke `func` with. 17341 * @returns {*} Returns the result of `func`. 17342 */ 17343function apply(func, thisArg, args) { 17344 switch (args.length) { 17345 case 0: return func.call(thisArg); 17346 case 1: return func.call(thisArg, args[0]); 17347 case 2: return func.call(thisArg, args[0], args[1]); 17348 case 3: return func.call(thisArg, args[0], args[1], args[2]); 17349 } 17350 return func.apply(thisArg, args); 17351} 17352 17353module.exports = apply; 17354 17355 17356/***/ }), 17357/* 302 */ 17358/***/ (function(module, exports, __webpack_require__) { 17359 17360var baseSetToString = __webpack_require__(303), 17361 shortOut = __webpack_require__(305); 17362 17363/** 17364 * Sets the `toString` method of `func` to return `string`. 17365 * 17366 * @private 17367 * @param {Function} func The function to modify. 17368 * @param {Function} string The `toString` result. 17369 * @returns {Function} Returns `func`. 17370 */ 17371var setToString = shortOut(baseSetToString); 17372 17373module.exports = setToString; 17374 17375 17376/***/ }), 17377/* 303 */ 17378/***/ (function(module, exports, __webpack_require__) { 17379 17380var constant = __webpack_require__(304), 17381 defineProperty = __webpack_require__(117), 17382 identity = __webpack_require__(60); 17383 17384/** 17385 * The base implementation of `setToString` without support for hot loop shorting. 17386 * 17387 * @private 17388 * @param {Function} func The function to modify. 17389 * @param {Function} string The `toString` result. 17390 * @returns {Function} Returns `func`. 17391 */ 17392var baseSetToString = !defineProperty ? identity : function(func, string) { 17393 return defineProperty(func, 'toString', { 17394 'configurable': true, 17395 'enumerable': false, 17396 'value': constant(string), 17397 'writable': true 17398 }); 17399}; 17400 17401module.exports = baseSetToString; 17402 17403 17404/***/ }), 17405/* 304 */
vendor: 7,234 bytes, lines 17406-17639
17406/***/ (function(module, exports) { 17407 17408/** 17409 * Creates a function that returns `value`. 17410 * 17411 * @static 17412 * @memberOf _ 17413 * @since 2.4.0 17414 * @category Util 17415 * @param {*} value The value to return from the new function. 17416 * @returns {Function} Returns the new constant function. 17417 * @example 17418 * 17419 * var objects = _.times(2, _.constant({ 'a': 1 })); 17420 * 17421 * console.log(objects); 17422 * // => [{ 'a': 1 }, { 'a': 1 }] 17423 * 17424 * console.log(objects[0] === objects[1]); 17425 * // => true 17426 */ 17427function constant(value) { 17428 return function() { 17429 return value; 17430 }; 17431} 17432 17433module.exports = constant; 17434 17435 17436/***/ }), 17437/* 305 */ 17438/***/ (function(module, exports) { 17439 17440/** Used to detect hot functions by number of calls within a span of milliseconds. */ 17441var HOT_COUNT = 800, 17442 HOT_SPAN = 16; 17443 17444/* Built-in method references for those with the same name as other `lodash` methods. */ 17445var nativeNow = Date.now; 17446 17447/** 17448 * Creates a function that'll short out and invoke `identity` instead 17449 * of `func` when it's called `HOT_COUNT` or more times in `HOT_SPAN` 17450 * milliseconds. 17451 * 17452 * @private 17453 * @param {Function} func The function to restrict. 17454 * @returns {Function} Returns the new shortable function. 17455 */ 17456function shortOut(func) { 17457 var count = 0, 17458 lastCalled = 0; 17459 17460 return function() { 17461 var stamp = nativeNow(), 17462 remaining = HOT_SPAN - (stamp - lastCalled); 17463 17464 lastCalled = stamp; 17465 if (remaining > 0) { 17466 if (++count >= HOT_COUNT) { 17467 return arguments[0]; 17468 } 17469 } else { 17470 count = 0; 17471 } 17472 return func.apply(undefined, arguments); 17473 }; 17474} 17475 17476module.exports = shortOut; 17477 17478 17479/***/ }), 17480/* 306 */ 17481/***/ (function(module, exports, __webpack_require__) { 17482 17483var WeakMap = __webpack_require__(100); 17484 17485/** Used to store function metadata. */ 17486var metaMap = WeakMap && new WeakMap; 17487 17488module.exports = metaMap; 17489 17490 17491/***/ }), 17492/* 307 */ 17493/***/ (function(module, exports) { 17494 17495/** 17496 * This method returns `undefined`. 17497 * 17498 * @static 17499 * @memberOf _ 17500 * @since 2.3.0 17501 * @category Util 17502 * @example 17503 * 17504 * _.times(2, _.noop); 17505 * // => [undefined, undefined] 17506 */ 17507function noop() { 17508 // No operation performed. 17509} 17510 17511module.exports = noop; 17512 17513 17514/***/ }), 17515/* 308 */ 17516/***/ (function(module, exports) { 17517 17518/** Used to lookup unminified function names. */ 17519var realNames = {}; 17520 17521module.exports = realNames; 17522 17523 17524/***/ }), 17525/* 309 */ 17526/***/ (function(module, exports, __webpack_require__) { 17527 17528var LazyWrapper = __webpack_require__(65), 17529 getData = __webpack_require__(119), 17530 getFuncName = __webpack_require__(120), 17531 lodash = __webpack_require__(310); 17532 17533/** 17534 * Checks if `func` has a lazy counterpart. 17535 * 17536 * @private 17537 * @param {Function} func The function to check. 17538 * @returns {boolean} Returns `true` if `func` has a lazy counterpart, 17539 * else `false`. 17540 */ 17541function isLaziable(func) { 17542 var funcName = getFuncName(func), 17543 other = lodash[funcName]; 17544 17545 if (typeof other != 'function' || !(funcName in LazyWrapper.prototype)) { 17546 return false; 17547 } 17548 if (func === other) { 17549 return true; 17550 } 17551 var data = getData(other); 17552 return !!data && func === data[0]; 17553} 17554 17555module.exports = isLaziable; 17556 17557 17558/***/ }), 17559/* 310 */ 17560/***/ (function(module, exports, __webpack_require__) { 17561 17562var LazyWrapper = __webpack_require__(65), 17563 LodashWrapper = __webpack_require__(63), 17564 baseLodash = __webpack_require__(64), 17565 isArray = __webpack_require__(1), 17566 isObjectLike = __webpack_require__(9), 17567 wrapperClone = __webpack_require__(311); 17568 17569/** Used for built-in method references. */ 17570var objectProto = Object.prototype; 17571 17572/** Used to check objects for own properties. */ 17573var hasOwnProperty = objectProto.hasOwnProperty; 17574 17575/** 17576 * Creates a `lodash` object which wraps `value` to enable implicit method 17577 * chain sequences. Methods that operate on and return arrays, collections, 17578 * and functions can be chained together. Methods that retrieve a single value 17579 * or may return a primitive value will automatically end the chain sequence 17580 * and return the unwrapped value. Otherwise, the value must be unwrapped 17581 * with `_#value`. 17582 * 17583 * Explicit chain sequences, which must be unwrapped with `_#value`, may be 17584 * enabled using `_.chain`. 17585 * 17586 * The execution of chained methods is lazy, that is, it's deferred until 17587 * `_#value` is implicitly or explicitly called. 17588 * 17589 * Lazy evaluation allows several methods to support shortcut fusion. 17590 * Shortcut fusion is an optimization to merge iteratee calls; this avoids 17591 * the creation of intermediate arrays and can greatly reduce the number of 17592 * iteratee executions. Sections of a chain sequence qualify for shortcut 17593 * fusion if the section is applied to an array and iteratees accept only 17594 * one argument. The heuristic for whether a section qualifies for shortcut 17595 * fusion is subject to change. 17596 * 17597 * Chaining is supported in custom builds as long as the `_#value` method is 17598 * directly or indirectly included in the build. 17599 * 17600 * In addition to lodash methods, wrappers have `Array` and `String` methods. 17601 * 17602 * The wrapper `Array` methods are: 17603 * `concat`, `join`, `pop`, `push`, `shift`, `sort`, `splice`, and `unshift` 17604 * 17605 * The wrapper `String` methods are: 17606 * `replace` and `split` 17607 * 17608 * The wrapper methods that support shortcut fusion are: 17609 * `at`, `compact`, `drop`, `dropRight`, `dropWhile`, `filter`, `find`, 17610 * `findLast`, `head`, `initial`, `last`, `map`, `reject`, `reverse`, `slice`, 17611 * `tail`, `take`, `takeRight`, `takeRightWhile`, `takeWhile`, and `toArray` 17612 * 17613 * The chainable wrapper methods are: 17614 * `after`, `ary`, `assign`, `assignIn`, `assignInWith`, `assignWith`, `at`, 17615 * `before`, `bind`, `bindAll`, `bindKey`, `castArray`, `chain`, `chunk`, 17616 * `commit`, `compact`, `concat`, `conforms`, `constant`, `countBy`, `create`, 17617 * `curry`, `debounce`, `defaults`, `defaultsDeep`, `defer`, `delay`, 17618 * `difference`, `differenceBy`, `differenceWith`, `drop`, `dropRight`, 17619 * `dropRightWhile`, `dropWhile`, `extend`, `extendWith`, `fill`, `filter`, 17620 * `flatMap`, `flatMapDeep`, `flatMapDepth`, `flatten`, `flattenDeep`, 17621 * `flattenDepth`, `flip`, `flow`, `flowRight`, `fromPairs`, `functions`, 17622 * `functionsIn`, `groupBy`, `initial`, `intersection`, `intersectionBy`, 17623 * `intersectionWith`, `invert`, `invertBy`, `invokeMap`, `iteratee`, `keyBy`, 17624 * `keys`, `keysIn`, `map`, `mapKeys`, `mapValues`, `matches`, `matchesProperty`, 17625 * `memoize`, `merge`, `mergeWith`, `method`, `methodOf`, `mixin`, `negate`, 17626 * `nthArg`, `omit`, `omitBy`, `once`, `orderBy`, `over`, `overArgs`, 17627 * `overEvery`, `overSome`, `partial`, `partialRight`, `partition`, `pick`, 17628 * `pickBy`, `plant`, `property`, `propertyOf`, `pull`, `pullAll`, `pullAllBy`, 17629 * `pullAllWith`, `pullAt`, `push`, `range`, `rangeRight`, `rearg`, `reject`, 17630 * `remove`, `rest`, `reverse`, `sampleSize`, `set`, `setWith`, `shuffle`, 17631 * `slice`, `sort`, `sortBy`, `splice`, `spread`, `tail`, `take`, `takeRight`, 17632 * `takeRightWhile`, `takeWhile`, `tap`, `throttle`, `thru`, `toArray`, 17633 * `toPairs`, `toPairsIn`, `toPath`, `toPlainObject`, `transform`, `unary`, 17634 * `union`, `unionBy`, `unionWith`, `uniq`, `uniqBy`, `uniqWith`, `unset`, 17635 * `unshift`, `unzip`, `unzipWith`, `update`, `updateWith`, `values`, 17636 * `valuesIn`, `without`, `wrap`, `xor`, `xorBy`, `xorWith`, `zip`, 17637 * `zipObject`, `zipObjectDeep`, and `zipWith` 17638 * 17639 * The wrapper methods that are **not** chainable by default are:
17640 * `add`, `attempt`, `camelCase`, `capitalize`, `ceil`, `clamp`, `clone`, 17641 * `cloneDeep`, `cloneDeepWith`, `cloneWith`, `conformsTo`, `deburr`, 17642 * `defaultTo`, `divide`, `each`, `eachRight`, `endsWith`, `eq`, `escape`, 17643 * `escapeRegExp`, `every`, `find`, `findIndex`, `findKey`, `findLast`, 17644 * `findLastIndex`, `findLastKey`, `first`, `floor`, `forEach`, `forEachRight`, 17645 * `forIn`, `forInRight`, `forOwn`, `forOwnRight`, `get`, `gt`, `gte`, `has`, 17646 * `hasIn`, `head`, `identity`, `includes`, `indexOf`, `inRange`, `invoke`, 17647 * `isArguments`, `isArray`, `isArrayBuffer`, `isArrayLike`, `isArrayLikeObject`, 17648 * `isBoolean`, `isBuffer`, `isDate`, `isElement`, `isEmpty`, `isEqual`, 17649 * `isEqualWith`, `isError`, `isFinite`, `isFunction`, `isInteger`, `isLength`, 17650 * `isMap`, `isMatch`, `isMatchWith`, `isNaN`, `isNative`, `isNil`, `isNull`, 17651 * `isNumber`, `isObject`, `isObjectLike`, `isPlainObject`, `isRegExp`, 17652 * `isSafeInteger`, `isSet`, `isString`, `isUndefined`, `isTypedArray`, 17653 * `isWeakMap`, `isWeakSet`, `join`, `kebabCase`, `last`, `lastIndexOf`, 17654 * `lowerCase`, `lowerFirst`, `lt`, `lte`, `max`, `maxBy`, `mean`, `meanBy`, 17655 * `min`, `minBy`, `multiply`, `noConflict`, `noop`, `now`, `nth`, `pad`, 17656 * `padEnd`, `padStart`, `parseInt`, `pop`, `random`, `reduce`, `reduceRight`, 17657 * `repeat`, `result`, `round`, `runInContext`, `sample`, `shift`, `size`, 17658 * `snakeCase`, `some`, `sortedIndex`, `sortedIndexBy`, `sortedLastIndex`, 17659 * `sortedLastIndexBy`, `startCase`, `startsWith`, `stubArray`, `stubFalse`, 17660 * `stubObject`, `stubString`, `stubTrue`, `subtract`, `sum`, `sumBy`, 17661 * `template`, `times`, `toFinite`, `toInteger`, `toJSON`, `toLength`, 17662 * `toLower`, `toNumber`, `toSafeInteger`, `toString`, `toUpper`, `trim`, 17663 * `trimEnd`, `trimStart`, `truncate`, `unescape`, `uniqueId`, `upperCase`, 17664 * `upperFirst`, `value`, and `words` 17665 * 17666 * @name _ 17667 * @constructor 17668 * @category Seq 17669 * @param {*} value The value to wrap in a `lodash` instance. 17670 * @returns {Object} Returns the new `lodash` wrapper instance. 17671 * @example 17672 * 17673 * function square(n) { 17674 * return n * n; 17675 * } 17676 * 17677 * var wrapped = _([1, 2, 3]); 17678 * 17679 * // Returns an unwrapped value. 17680 * wrapped.reduce(_.add); 17681 * // => 6 17682 * 17683 * // Returns a wrapped value. 17684 * var squares = wrapped.map(square); 17685 * 17686 * _.isArray(squares); 17687 * // => false 17688 * 17689 * _.isArray(squares.value()); 17690 * // => true 17691 */ 17692function lodash(value) { 17693 if (isObjectLike(value) && !isArray(value) && !(value instanceof LazyWrapper)) { 17694 if (value instanceof LodashWrapper) { 17695 return value; 17696 } 17697 if (hasOwnProperty.call(value, '__wrapped__')) { 17698 return wrapperClone(value); 17699 } 17700 } 17701 return new LodashWrapper(value); 17702} 17703 17704// Ensure wrappers are instances of `baseLodash`. 17705lodash.prototype = baseLodash.prototype; 17706lodash.prototype.constructor = lodash; 17707 17708module.exports = lodash; 17709 17710 17711/***/ }), 17712/* 311 */ 17713/***/ (function(module, exports, __webpack_require__) { 17714 17715var LazyWrapper = __webpack_require__(65), 17716 LodashWrapper = __webpack_require__(63), 17717 copyArray = __webpack_require__(312); 17718 17719/** 17720 * Creates a clone of `wrapper`. 17721 * 17722 * @private 17723 * @param {Object} wrapper The wrapper to clone. 17724 * @returns {Object} Returns the cloned wrapper. 17725 */ 17726function wrapperClone(wrapper) { 17727 if (wrapper instanceof LazyWrapper) { 17728 return wrapper.clone(); 17729 } 17730 var result = new LodashWrapper(wrapper.__wrapped__, wrapper.__chain__); 17731 result.__actions__ = copyArray(wrapper.__actions__); 17732 result.__index__ = wrapper.__index__; 17733 result.__values__ = wrapper.__values__; 17734 return result; 17735} 17736 17737module.exports = wrapperClone; 17738 17739 17740/***/ }), 17741/* 312 */ 17742/***/ (function(module, exports) { 17743 17744/** 17745 * Copies the values of `source` to `array`. 17746 * 17747 * @private 17748 * @param {Array} source The array to copy values from. 17749 * @param {Array} [array=[]] The array to copy values to. 17750 * @returns {Array} Returns `array`. 17751 */ 17752function copyArray(source, array) { 17753 var index = -1, 17754 length = source.length; 17755 17756 array || (array = Array(length)); 17757 while (++index < length) { 17758 array[index] = source[index]; 17759 } 17760 return array; 17761} 17762 17763module.exports = copyArray; 17764 17765 17766/***/ }), 17767/* 313 */ 17768/***/ (function(module, exports, __webpack_require__) { 17769 17770var baseClamp = __webpack_require__(314),
17771 toNumber = __webpack_require__(61); 17772 17773/** 17774 * Clamps `number` within the inclusive `lower` and `upper` bounds. 17775 * 17776 * @static 17777 * @memberOf _ 17778 * @since 4.0.0 17779 * @category Number 17780 * @param {number} number The number to clamp. 17781 * @param {number} [lower] The lower bound. 17782 * @param {number} upper The upper bound. 17783 * @returns {number} Returns the clamped number. 17784 * @example 17785 * 17786 * _.clamp(-10, -5, 5); 17787 * // => -5 17788 * 17789 * _.clamp(10, -5, 5); 17790 * // => 5 17791 */ 17792function clamp(number, lower, upper) { 17793 if (upper === undefined) { 17794 upper = lower; 17795 lower = undefined; 17796 } 17797 if (upper !== undefined) { 17798 upper = toNumber(upper); 17799 upper = upper === upper ? upper : 0; 17800 } 17801 if (lower !== undefined) { 17802 lower = toNumber(lower); 17803 lower = lower === lower ? lower : 0; 17804 } 17805 return baseClamp(toNumber(number), lower, upper); 17806} 17807 17808module.exports = clamp; 17809 17810 17811/***/ }), 17812/* 314 */ 17813/***/ (function(module, exports) { 17814 17815/** 17816 * The base implementation of `_.clamp` which doesn't coerce arguments. 17817 * 17818 * @private 17819 * @param {number} number The number to clamp. 17820 * @param {number} [lower] The lower bound. 17821 * @param {number} upper The upper bound. 17822 * @returns {number} Returns the clamped number. 17823 */ 17824function baseClamp(number, lower, upper) { 17825 if (number === number) { 17826 if (upper !== undefined) { 17827 number = number <= upper ? number : upper; 17828 } 17829 if (lower !== undefined) { 17830 number = number >= lower ? number : lower; 17831 } 17832 } 17833 return number; 17834} 17835 17836module.exports = baseClamp; 17837 17838 17839/***/ }), 17840/* 315 */ 17841/***/ (function(module, exports, __webpack_require__) { 17842 17843"use strict"; 17844 // @wf-will-never-add-flow-to-this-file 17845 17846/* globals window, document */ 17847 17848/* eslint-disable no-var */ 17849 17850/** 17851 * Webflow: Auto-select links to current page or section 17852 */ 17853 17854var Webflow = __webpack_require__(5); 17855 17856Webflow.define('links', module.exports = function ($, _) { 17857 var api = {}; 17858 var $win = $(window); 17859 var designer; 17860 var inApp = Webflow.env(); 17861 var location = window.location; 17862 var tempLink = document.createElement('a'); 17863 var linkCurrent = 'w--current'; 17864 var indexPage = /index\.(html|php)$/; 17865 var dirList = /\/$/; 17866 var anchors; 17867 var slug; // ----------------------------------- 17868 // Module methods 17869 17870 api.ready = api.design = api.preview = init; // ----------------------------------- 17871 // Private methods 17872 17873 function init() { 17874 designer = inApp && Webflow.env('design'); 17875 slug = Webflow.env('slug') || location.pathname || ''; // Reset scroll listener, init anchors 17876 17877 Webflow.scroll.off(scroll); 17878 anchors = []; // Test all links for a selectable href 17879 17880 var links = document.links; 17881 17882 for (var i = 0; i < links.length; ++i) { 17883 select(links[i]); 17884 } // Listen for scroll if any anchors exist 17885 17886 17887 if (anchors.length) { 17888 Webflow.scroll.on(scroll); 17889 scroll(); 17890 } 17891 } 17892 17893 function select(link) { 17894 var href = designer && link.getAttribute('href-disabled') || link.getAttribute('href'); 17895 tempLink.href = href; // Ignore any hrefs with a colon to safely avoid all uri schemes 17896 17897 if (href.indexOf(':') >= 0) { 17898 return; 17899 } 17900 17901 var $link = $(link); // Check for all links with hash (eg (this-host)(/this-path)#section) to this page 17902 17903 if (tempLink.hash.length > 1 && tempLink.host + tempLink.pathname === location.host + location.pathname) { 17904 // Ignore any hrefs with Google Translate type hash 17905 // Example: jQuery can't parse $('#googtrans(en|es)') 17906 // https://forum.webflow.com/t/dropdown-menus-not-working-on-site/87140 17907 if (!/^#[a-zA-Z0-9\-\_]+$/.test(tempLink.hash)) { 17908 return; 17909 } 17910 17911 var $section = $(tempLink.hash); 17912 $section.length && anchors.push({ 17913 link: $link, 17914 sec: $section, 17915 active: false 17916 }); 17917 return; 17918 } // Ignore empty # links 17919 17920 17921 if (href === '#' || href === '') { 17922 return; 17923 } // Determine whether the link should be selected 17924 17925 17926 var match = tempLink.href === location.href || href === slug || indexPage.test(href) && dirList.test(slug); 17927 setClass($link, linkCurrent, match); 17928 } 17929 17930 function scroll() { 17931 var viewTop = $win.scrollTop(); 17932 var viewHeight = $win.height(); // Check each anchor for a section in view 17933 17934 _.each(anchors, function (anchor) { 17935 var $link = anchor.link; 17936 var $section = anchor.sec; 17937 var top = $section.offset().top; 17938 var height = $section.outerHeight(); 17939 var offset = viewHeight * 0.5; 17940 var active = $section.is(':visible') && top + height - offset >= viewTop && top + offset <= viewTop + viewHeight; 17941 17942 if (anchor.active === active) { 17943 return; 17944 } 17945 17946 anchor.active = active; 17947 setClass($link, linkCurrent, active); 17948 }); 17949 } 17950 17951 function setClass($elem, className, add) { 17952 var exists = $elem.hasClass(className); 17953 17954 if (add && exists) { 17955 return; 17956 } 17957 17958 if (!add && !exists) { 17959 return; 17960 } 17961 17962 add ? $elem.addClass(className) : $elem.removeClass(className); 17963 } // Export module 17964 17965 17966 return api; 17967}); 17968 17969/***/ }), 17970/* 316 */ 17971/***/ (function(module, exports, __webpack_require__) { 17972 17973"use strict"; 17974 // @wf-will-never-add-flow-to-this-file 17975 17976/* globals window, document */ 17977 17978/* eslint-disable no-var */ 17979 17980/** 17981 * Webflow: Smooth scroll 17982 */ 17983 17984var Webflow = __webpack_require__(5); 17985 17986Webflow.define('scroll', module.exports = function ($) { 17987 // Native browser events & namespaces used in this module 17988 var CLICK = 'click'; 17989 var EMPTY_LINK_NS = '.wf-empty-link'; 17990 var SCROLL_NS = '.wf-scroll'; 17991 /** 17992 * A collection of namespaced events found in this module.
17993 * Namespaced events encapsulate our code, and make it safer and easier 17994 * for designers to apply custom code overrides. 17995 * @see https://api.jquery.com/on/#event-names 17996 * @typedef {Object.<string>} NamespacedEventsCollection 17997 */ 17998 17999 var NS_EVENTS = { 18000 CLICK_EMPTY: CLICK + EMPTY_LINK_NS, 18001 CLICK_SCROLL: CLICK + SCROLL_NS 18002 }; 18003 var $doc = $(document); 18004 var win = window; 18005 var loc = win.location; 18006 var history = inIframe() ? null : win.history; 18007 var validHash = /^[a-zA-Z0-9][\w:.-]*$/; 18008 var emptyHrefSelector = 'a[href="#"]'; 18009 /** 18010 * Select only links whose href: 18011 * - contains a # 18012 * - is not one of our namespaced TabLink elements 18013 * - is not _only_ a # 18014 */ 18015 18016 var localHrefSelector = 'a[href*="#"]:not(.w-tab-link):not(' + emptyHrefSelector + ')'; 18017 /** 18018 * The current page url, minus the hash. 18019 * Will be set in the `ready` function 18020 */ 18021 18022 var locHref; 18023 18024 function inIframe() { 18025 try { 18026 return Boolean(win.frameElement); 18027 } catch (e) { 18028 return true; 18029 } 18030 } 18031 /** 18032 * Determine if we should execute custom scroll 18033 */ 18034 18035 18036 function validateScroll(e) { 18037 if (Webflow.env('design')) { 18038 return; 18039 } // Ignore links being used by jQuery mobile 18040 18041 18042 if (window.$.mobile && $(e.currentTarget).hasClass('ui-link')) { 18043 return; 18044 } // The href property always contains the full url so we can compare 18045 // with the documentâs location to only target links on this page. 18046 18047 18048 var parts = this.href.split('#'); 18049 var hash = parts[0] === locHref ? parts[1] : null; 18050 18051 if (hash) { 18052 findEl(hash, e); 18053 } 18054 } 18055 18056 function findEl(hash, e) { 18057 if (!validHash.test(hash)) { 18058 return; 18059 } 18060 18061 var el = $('#' + hash); 18062 18063 if (!el.length) { 18064 return; 18065 } 18066 18067 if (e) { 18068 e.preventDefault(); 18069 e.stopPropagation(); 18070 } // Push new history state 18071 18072 18073 if (loc.hash !== hash && history && history.pushState && // Navigation breaks Chrome when the protocol is `file:`. 18074 !(Webflow.env.chrome && loc.protocol === 'file:')) { 18075 var oldHash = history.state && history.state.hash; 18076 18077 if (oldHash !== hash) { 18078 history.pushState({ 18079 hash: hash 18080 }, '', '#' + hash); 18081 } 18082 } // If a fixed header exists, offset for the height 18083 18084 18085 var rootTag = Webflow.env('editor') ? '.w-editor-body' : 'body'; 18086 var header = $('header, ' + rootTag + ' > .header, ' + rootTag + ' > .w-nav:not([data-no-scroll])'); 18087 var offset = header.css('position') === 'fixed' ? header.outerHeight() : 0; 18088 win.setTimeout(function () { 18089 scroll(el, offset); 18090 }, e ? 0 : 300); 18091 } 18092 18093 function scroll(el, offset) { 18094 var start = $(win).scrollTop(); 18095 var end = el.offset().top - offset; // If specified, scroll so that the element ends up in the middle of the viewport 18096 18097 if (el.data('scroll') === 'mid') { 18098 var available = $(win).height() - offset; 18099 var elHeight = el.outerHeight(); 18100 18101 if (elHeight < available) { 18102 end -= Math.round((available - elHeight) / 2); 18103 } 18104 } 18105 18106 var mult = 1; // Check for custom time multiplier on the body and the element 18107 18108 $('body').add(el).each(function () { 18109 var time = parseFloat($(this).attr('data-scroll-time'), 10); 18110 18111 if (!isNaN(time) && (time === 0 || time > 0)) { 18112 mult = time; 18113 } 18114 }); // Shim for IE8 and below 18115 18116 if (!Date.now) { 18117 Date.now = function () { 18118 return new Date().getTime(); 18119 }; 18120 } 18121 18122 var clock = Date.now(); 18123 18124 var animate = win.requestAnimationFrame || win.mozRequestAnimationFrame || win.webkitRequestAnimationFrame || function (fn) { 18125 win.setTimeout(fn, 15); 18126 }; 18127 18128 var duration = (472.143 * Math.log(Math.abs(start - end) + 125) - 2000) * mult; 18129 18130 var step = function step() { 18131 var elapsed = Date.now() - clock; 18132 win.scroll(0, getY(start, end, elapsed, duration)); 18133 18134 if (elapsed <= duration) { 18135 animate(step); 18136 } 18137 }; 18138 18139 step(); 18140 } 18141 18142 function getY(start, end, elapsed, duration) { 18143 if (elapsed > duration) { 18144 return end; 18145 } 18146 18147 return start + (end - start) * ease(elapsed / duration); 18148 } 18149 18150 function ease(t) { 18151 return t < 0.5 ? 4 * t * t * t : (t - 1) * (2 * t - 2) * (2 * t - 2) + 1; 18152 } 18153 18154 function ready() { 18155 var CLICK_EMPTY = NS_EVENTS.CLICK_EMPTY, 18156 CLICK_SCROLL = NS_EVENTS.CLICK_SCROLL; 18157 locHref = loc.href.split('#')[0]; 18158 $doc.on(CLICK_SCROLL, localHrefSelector, validateScroll); 18159 /** 18160 * Prevent empty hash links from triggering scroll. 18161 * Legacy feature to preserve: use the default "#" link 18162 * to trigger an interaction, and do not want the page 18163 * to scroll to the top. 18164 */ 18165 18166 $doc.on(CLICK_EMPTY, emptyHrefSelector, function (e) { 18167 e.preventDefault(); 18168 }); 18169 } // Export module 18170 18171 18172 return { 18173 ready: ready 18174 }; 18175}); 18176 18177/***/ }), 18178/* 317 */ 18179/***/ (function(module, exports, __webpack_require__) { 18180 18181"use strict"; 18182 // @wf-will-never-add-flow-to-this-file 18183 18184/* globals document, window */ 18185 18186/* eslint-disable no-var */ 18187 18188/** 18189 * Webflow: Touch events 18190 * Supports legacy 'tap' event 18191 * Adds a 'swipe' event to desktop and mobile 18192 */ 18193 18194var Webflow = __webpack_require__(5); 18195 18196Webflow.define('touch', module.exports = function ($) { 18197 var api = {}; 18198 var getSelection = window.getSelection; // Delegate all legacy 'tap' events to 'click' 18199 18200 $.event.special.tap = { 18201 bindType: 'click', 18202 delegateType: 'click' 18203 }; 18204 18205 api.init = function (el) { 18206 el = typeof el === 'string' ? $(el).get(0) : el; 18207 return el ? new Touch(el) : null; 18208 }; 18209 18210 function Touch(el) { 18211 var active = false;
18212 var useTouch = false; 18213 var thresholdX = Math.min(Math.round(window.innerWidth * 0.04), 40); 18214 var startX; 18215 var lastX; 18216 el.addEventListener('touchstart', start, false); 18217 el.addEventListener('touchmove', move, false); 18218 el.addEventListener('touchend', end, false); 18219 el.addEventListener('touchcancel', cancel, false); 18220 el.addEventListener('mousedown', start, false); 18221 el.addEventListener('mousemove', move, false); 18222 el.addEventListener('mouseup', end, false); 18223 el.addEventListener('mouseout', cancel, false); 18224 18225 function start(evt) { 18226 // We donât handle multi-touch events yet. 18227 var touches = evt.touches; 18228 18229 if (touches && touches.length > 1) { 18230 return; 18231 } 18232 18233 active = true; 18234 18235 if (touches) { 18236 useTouch = true; 18237 startX = touches[0].clientX; 18238 } else { 18239 startX = evt.clientX; 18240 } 18241 18242 lastX = startX; 18243 } 18244 18245 function move(evt) { 18246 if (!active) { 18247 return; 18248 } 18249 18250 if (useTouch && evt.type === 'mousemove') { 18251 evt.preventDefault(); 18252 evt.stopPropagation(); 18253 return; 18254 } 18255 18256 var touches = evt.touches; 18257 var x = touches ? touches[0].clientX : evt.clientX; 18258 var velocityX = x - lastX; 18259 lastX = x; // Allow swipes while pointer is down, but prevent them during text selection 18260 18261 if (Math.abs(velocityX) > thresholdX && getSelection && String(getSelection()) === '') { 18262 triggerEvent('swipe', evt, { 18263 direction: velocityX > 0 ? 'right' : 'left' 18264 }); 18265 cancel(); 18266 } 18267 } 18268 18269 function end(evt) { 18270 if (!active) { 18271 return; 18272 } 18273 18274 active = false; 18275 18276 if (useTouch && evt.type === 'mouseup') { 18277 evt.preventDefault(); 18278 evt.stopPropagation(); 18279 useTouch = false; 18280 return; 18281 } 18282 } 18283 18284 function cancel() { 18285 active = false; 18286 } 18287 18288 function destroy() { 18289 el.removeEventListener('touchstart', start, false); 18290 el.removeEventListener('touchmove', move, false); 18291 el.removeEventListener('touchend', end, false); 18292 el.removeEventListener('touchcancel', cancel, false); 18293 el.removeEventListener('mousedown', start, false); 18294 el.removeEventListener('mousemove', move, false); 18295 el.removeEventListener('mouseup', end, false); 18296 el.removeEventListener('mouseout', cancel, false); 18297 el = null; 18298 } // Public instance methods 18299 18300 18301 this.destroy = destroy; 18302 } // Wrap native event to supoprt preventdefault + stopPropagation 18303 18304 18305 function triggerEvent(type, evt, data) { 18306 var newEvent = $.Event(type, { 18307 originalEvent: evt 18308 }); 18309 $(evt.target).trigger(newEvent, data); 18310 } // Listen for touch events on all nodes by default. 18311 18312 18313 api.instance = api.init(document); // Export module 18314 18315 return api; 18316}); 18317 18318/***/ }), 18319/* 318 */ 18320/***/ (function(module, exports, __webpack_require__) { 18321 18322"use strict"; 18323 // @wf-will-never-add-flow-to-this-file 18324 18325/* globals window, document */ 18326 18327/* eslint-disable no-var */ 18328 18329/** 18330 * Webflow: Dropdown component 18331 */ 18332 18333var Webflow = __webpack_require__(5); 18334 18335var IXEvents = __webpack_require__(38); 18336 18337var KEY_CODES = { 18338 ARROW_LEFT: 37, 18339 ARROW_UP: 38, 18340 ARROW_RIGHT: 39, 18341 ARROW_DOWN: 40, 18342 ESCAPE: 27, 18343 SPACE: 32, 18344 ENTER: 13, 18345 HOME: 36, 18346 END: 35 18347}; 18348var FORCE_CLOSE = true; 18349Webflow.define('dropdown', module.exports = function ($, _) { 18350 var debounce = _.debounce; 18351 var api = {}; 18352 var inApp = Webflow.env(); 18353 var inPreview = false; 18354 var inDesigner; 18355 var touch = Webflow.env.touch; 18356 var namespace = '.w-dropdown'; 18357 var openStateClassName = 'w--open'; 18358 var ix = IXEvents.triggers; 18359 var defaultZIndex = 900; // @dropdown-depth 18360 18361 var focusOutEvent = 'focusout' + namespace; 18362 var keydownEvent = 'keydown' + namespace; 18363 var mouseEnterEvent = 'mouseenter' + namespace; 18364 var mouseMoveEvent = 'mousemove' + namespace; 18365 var mouseLeaveEvent = 'mouseleave' + namespace; 18366 var mouseUpEvent = (touch ? 'click' : 'mouseup') + namespace; 18367 var closeEvent = 'w-close' + namespace; 18368 var settingEvent = 'setting' + namespace; 18369 var $doc = $(document); 18370 var $dropdowns; // ----------------------------------- 18371 // Module methods 18372 18373 api.ready = init; 18374 18375 api.design = function () { 18376 // Close all when returning from preview 18377 if (inPreview) { 18378 closeAll(); 18379 } 18380 18381 inPreview = false;
18382 init(); 18383 }; 18384 18385 api.preview = function () { 18386 inPreview = true; 18387 init(); 18388 }; // ----------------------------------- 18389 // Private methods 18390 18391 18392 function init() { 18393 inDesigner = inApp && Webflow.env('design'); // Find all instances on the page 18394 18395 $dropdowns = $doc.find(namespace); 18396 $dropdowns.each(build); 18397 } 18398 18399 function build(i, el) { 18400 var $el = $(el); // Store state in data 18401 18402 var data = $.data(el, namespace); 18403 18404 if (!data) { 18405 data = $.data(el, namespace, { 18406 open: false, 18407 el: $el, 18408 config: {}, 18409 selectedIdx: -1 18410 }); 18411 } 18412 18413 data.toggle = data.el.children('.w-dropdown-toggle'); 18414 data.list = data.el.children('.w-dropdown-list'); 18415 data.links = data.list.find('a:not(.w-dropdown .w-dropdown a)'); 18416 data.complete = complete(data); 18417 data.mouseLeave = makeMouseLeaveHandler(data); 18418 data.mouseUpOutside = outside(data); 18419 data.mouseMoveOutside = moveOutside(data); // Set config from data attributes 18420 18421 configure(data); // Store the IDs of the toggle button & list 18422 18423 var toggleId = data.toggle.attr('id'); 18424 var listId = data.list.attr('id'); // If user did not provide toggle ID, set it 18425 18426 if (!toggleId) { 18427 toggleId = 'w-dropdown-toggle-' + i; 18428 } // If user did not provide list ID, set it 18429 18430 18431 if (!listId) { 18432 listId = 'w-dropdown-list-' + i; 18433 } // Add attributes to toggle element 18434 18435 18436 data.toggle.attr('id', toggleId); 18437 data.toggle.attr('aria-controls', listId); 18438 data.toggle.attr('aria-haspopup', 'menu'); 18439 data.toggle.attr('aria-expanded', 'false'); // If toggle element is not a button 18440 18441 if (data.toggle.prop('tagName') !== 'BUTTON') { 18442 // Give it an appropriate role 18443 data.toggle.attr('role', 'button'); // And give it a tabindex if user has not provided one 18444 18445 if (!data.toggle.attr('tabindex')) { 18446 data.toggle.attr('tabindex', '0'); 18447 } 18448 } // Add attributes to list element 18449 18450 18451 data.list.attr('id', listId); 18452 data.list.attr('aria-labelledby', toggleId); 18453 /** 18454 * In macOS Safari, links don't take focus on click unless they have 18455 * a tabindex. Without this, the dropdown will break. 18456 * @see https://gist.github.com/cvrebert/68659d0333a578d75372 18457 */ 18458 18459 data.links.each(function (idx, link) { 18460 if (!link.hasAttribute('tabindex')) link.setAttribute('tabindex', '0'); 18461 }); // Remove old events 18462 18463 data.el.off(namespace); 18464 data.toggle.off(namespace); 18465 18466 if (data.nav) { 18467 data.nav.off(namespace); 18468 } 18469 18470 var initialToggler = makeToggler(data, FORCE_CLOSE); 18471 18472 if (inDesigner) { 18473 data.el.on(settingEvent, makeSettingEventHandler(data)); 18474 } 18475 18476 if (!inDesigner) { 18477 // Close in preview mode and clean the data.hovering state 18478 if (inApp) { 18479 data.hovering = false; 18480 close(data); 18481 } 18482 18483 if (data.config.hover) { 18484 data.toggle.on(mouseEnterEvent, makeMouseEnterHandler(data)); 18485 } 18486 18487 data.el.on(closeEvent, initialToggler); 18488 data.el.on(keydownEvent, makeDropdownKeydownHandler(data)); 18489 data.el.on(focusOutEvent, makeDropdownFousoutHandler(data)); 18490 data.toggle.on(mouseUpEvent, initialToggler); 18491 data.toggle.on(keydownEvent, makeToggleKeydownHandler(data)); 18492 data.nav = data.el.closest('.w-nav'); 18493 data.nav.on(closeEvent, initialToggler); 18494 } 18495 } 18496 /** 18497 * Mutate the data object with a new config property 18498 */ 18499 18500 18501 function configure(data) { 18502 // Determine if z-index should be managed 18503 var zIndex = Number(data.el.css('z-index')); 18504 data.manageZ = zIndex === defaultZIndex || zIndex === defaultZIndex + 1; 18505 data.config = { 18506 hover: (data.el.attr('data-hover') === true || data.el.attr('data-hover') === '1') && !touch, 18507 delay: Number(data.el.attr('data-delay')) || 0 18508 }; 18509 } 18510 18511 function makeSettingEventHandler(data) { 18512 return function (evt, options) { 18513 options = options || {}; 18514 configure(data); 18515 options.open === true && open(data, true); 18516 options.open === false && close(data, { 18517 immediate: true 18518 }); 18519 }; 18520 } 18521 18522 function makeToggler(data, forceClose) { 18523 return debounce(function (evt) { 18524 if (data.open || evt && evt.type === 'w-close') { 18525 return close(data, { 18526 forceClose: forceClose 18527 }); 18528 } 18529 18530 open(data); 18531 }); 18532 } 18533 18534 function open(data) { 18535 if (data.open) { 18536 return; 18537 } 18538 18539 closeOthers(data); 18540 data.open = true; 18541 data.list.addClass(openStateClassName); 18542 data.toggle.addClass(openStateClassName); 18543 data.toggle.attr('aria-expanded', 'true'); // ARIA 18544 18545 ix.intro(0, data.el[0]); 18546 Webflow.redraw.up(); // Increase z-index to keep above other managed dropdowns 18547 18548 data.manageZ && data.el.css('z-index', defaultZIndex + 1); // Listen for click outside events 18549 18550 var isEditor = Webflow.env('editor'); 18551 18552 if (!inDesigner) { 18553 $doc.on(mouseUpEvent, data.mouseUpOutside); 18554 } 18555 18556 if (data.hovering && !isEditor) { 18557 data.el.on(mouseLeaveEvent, data.mouseLeave); 18558 } 18559 18560 if (data.hovering && isEditor) { 18561 $doc.on(mouseMoveEvent, data.mouseMoveOutside); 18562 } // Clear previous delay 18563 18564 18565 window.clearTimeout(data.delayId); 18566 } 18567 18568 function close(data) { 18569 var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}, 18570 immediate = _ref.immediate, 18571 forceClose = _ref.forceClose; 18572 18573 if (!data.open) { 18574 return; 18575 } // Do not close hover-based menus if currently hovering 18576 18577 18578 if (data.config.hover && data.hovering && !forceClose) { 18579 return; 18580 } 18581 18582 data.toggle.attr('aria-expanded', 'false'); 18583 data.open = false;
18584 var config = data.config; 18585 ix.outro(0, data.el[0]); // Stop listening for click outside events 18586 18587 $doc.off(mouseUpEvent, data.mouseUpOutside); 18588 $doc.off(mouseMoveEvent, data.mouseMoveOutside); 18589 data.el.off(mouseLeaveEvent, data.mouseLeave); // Clear previous delay 18590 18591 window.clearTimeout(data.delayId); // Skip delay during immediate 18592 18593 if (!config.delay || immediate) { 18594 return data.complete(); 18595 } // Optionally wait for delay before close 18596 18597 18598 data.delayId = window.setTimeout(data.complete, config.delay); 18599 } 18600 18601 function closeAll() { 18602 $doc.find(namespace).each(function (i, el) { 18603 $(el).triggerHandler(closeEvent); 18604 }); 18605 } 18606 18607 function closeOthers(data) { 18608 var self = data.el[0]; 18609 $dropdowns.each(function (i, other) { 18610 var $other = $(other); 18611 18612 if ($other.is(self) || $other.has(self).length) { 18613 return; 18614 } 18615 18616 $other.triggerHandler(closeEvent); 18617 }); 18618 } 18619 18620 function outside(data) { 18621 // Unbind previous click handler if it exists 18622 if (data.mouseUpOutside) { 18623 $doc.off(mouseUpEvent, data.mouseUpOutside); 18624 } // Close menu when clicked outside 18625 18626 18627 return debounce(function (evt) { 18628 if (!data.open) { 18629 return; 18630 } 18631 18632 var $target = $(evt.target); 18633 18634 if ($target.closest('.w-dropdown-toggle').length) { 18635 return; 18636 } 18637 18638 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 18639 var isEditor = Webflow.env('editor'); 18640 18641 if (isEventOutsideDropdowns) { 18642 if (isEditor) { 18643 var isEventOnDetachedSvg = $target.parents().length === 1 && $target.parents('svg').length === 1; 18644 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 18645 18646 if (isEventOnDetachedSvg || isEventOnHoverControls) { 18647 return; 18648 } 18649 } 18650 18651 close(data); 18652 } 18653 }); 18654 } 18655 18656 function complete(data) { 18657 return function () { 18658 data.list.removeClass(openStateClassName); 18659 data.toggle.removeClass(openStateClassName); // Reset z-index for managed dropdowns 18660 18661 data.manageZ && data.el.css('z-index', ''); 18662 }; 18663 } 18664 18665 function makeMouseEnterHandler(data) { 18666 return function () { 18667 data.hovering = true; 18668 open(data); 18669 }; 18670 } 18671 18672 function makeMouseLeaveHandler(data) { 18673 return function () { 18674 data.hovering = false; // We do not want the list to close upon mouseleave 18675 // if one of the links has focus 18676 18677 if (!data.links.is(':focus')) { 18678 close(data); 18679 } 18680 }; 18681 } 18682 18683 function moveOutside(data) { 18684 return debounce(function (evt) { 18685 if (!data.open) { 18686 return; 18687 } 18688 18689 var $target = $(evt.target); 18690 var isEventOutsideDropdowns = $.inArray(data.el[0], $target.parents(namespace)) === -1; 18691 18692 if (isEventOutsideDropdowns) { 18693 var isEventOnHoverControls = $target.parents('.w-editor-bem-EditorHoverControls').length; 18694 var isEventOnHoverToolbar = $target.parents('.w-editor-bem-RTToolbar').length; 18695 var $editorOverlay = $('.w-editor-bem-EditorOverlay'); 18696 var isDropdownInEdition = $editorOverlay.find('.w-editor-edit-outline').length || $editorOverlay.find('.w-editor-bem-RTToolbar').length; 18697 18698 if (isEventOnHoverControls || isEventOnHoverToolbar || isDropdownInEdition) { 18699 return; 18700 } 18701 18702 data.hovering = false; 18703 close(data); 18704 } 18705 }); 18706 } 18707 18708 function makeDropdownKeydownHandler(data) { 18709 return function (evt) { 18710 // Do not respond to keyboard events in designer or preview mode, 18711 // or if the list is not open 18712 if (inDesigner || inPreview || !data.open) { 18713 return; 18714 } // Realign selectedIdx with the menu item that is currently in focus. 18715 // We need this because we do not track the `Tab` key activity! 18716 18717 18718 data.selectedIdx = data.links.index(document.activeElement); // Evaluate item-selection logic 18719 18720 switch (evt.keyCode) { 18721 case KEY_CODES.HOME: 18722 { 18723 if (!data.open) return; 18724 data.selectedIdx = 0; 18725 focusSelectedLink(data); 18726 return evt.preventDefault(); 18727 } 18728 18729 case KEY_CODES.END: 18730 { 18731 if (!data.open) return; 18732 data.selectedIdx = data.links.length - 1; 18733 focusSelectedLink(data); 18734 return evt.preventDefault(); 18735 } 18736 18737 case KEY_CODES.ESCAPE: 18738 { 18739 close(data); 18740 data.toggle.focus(); 18741 return evt.stopPropagation(); 18742 } 18743 18744 case KEY_CODES.ARROW_RIGHT: 18745 case KEY_CODES.ARROW_DOWN: 18746 { 18747 data.selectedIdx = Math.min(data.links.length - 1, data.selectedIdx + 1); 18748 focusSelectedLink(data); 18749 return evt.preventDefault(); 18750 } 18751 18752 case KEY_CODES.ARROW_LEFT: 18753 case KEY_CODES.ARROW_UP: 18754 {
18755 data.selectedIdx = Math.max(-1, data.selectedIdx - 1); 18756 focusSelectedLink(data); 18757 return evt.preventDefault(); 18758 } 18759 } 18760 }; 18761 } 18762 18763 function focusSelectedLink(data) { 18764 if (data.links[data.selectedIdx]) { 18765 data.links[data.selectedIdx].focus(); 18766 } 18767 } 18768 18769 function makeToggleKeydownHandler(data) { 18770 // We want to close immediately 18771 // if interacting via keyboard 18772 var toggler = makeToggler(data, FORCE_CLOSE); 18773 return function (evt) { 18774 // Do not respond to keyboard events in designer or preview 18775 if (inDesigner || inPreview) return; // If the menu is not open, we don't want 18776 // the up or Down arrows to do anything 18777 18778 if (!data.open) { 18779 switch (evt.keyCode) { 18780 case KEY_CODES.ARROW_UP: 18781 case KEY_CODES.ARROW_DOWN: 18782 { 18783 return evt.stopPropagation(); 18784 } 18785 } 18786 } 18787 18788 switch (evt.keyCode) { 18789 case KEY_CODES.SPACE: 18790 case KEY_CODES.ENTER: 18791 { 18792 toggler(); 18793 evt.stopPropagation(); 18794 return evt.preventDefault(); 18795 } 18796 } 18797 }; 18798 } 18799 18800 function makeDropdownFousoutHandler(data) { 18801 return debounce(function (evt) { 18802 var relatedTarget = evt.relatedTarget, 18803 target = evt.target; 18804 var menuEl = data.el[0]; 18805 /** 18806 * Close menu 18807 * With focusout events, the `relatedTarget` is the element that will next receive focus. 18808 * @see: https://developer.mozilla.org/en-US/docs/Web/API/FocusEvent/relatedTarget 18809 */ 18810 18811 var menuContainsFocus = menuEl.contains(relatedTarget) || menuEl.contains(target); 18812 18813 if (!menuContainsFocus) { 18814 close(data); 18815 } 18816 18817 return evt.stopPropagation(); 18818 }); 18819 } // Export module 18820 18821 18822 return api; 18823}); 18824 18825/***/ }), 18826/* 319 */ 18827/***/ (function(module, exports, __webpack_require__) { 18828 18829"use strict"; 18830 // @wf-will-never-add-flow-to-this-file 18831 18832/* globals 18833 window, 18834 document, 18835 FormData, 18836 WEBFLOW_FORM_API_HOST, 18837 WEBFLOW_FORM_OLDIE_HOST 18838*/ 18839 18840/* eslint-disable no-var */ 18841 18842/** 18843 * Webflow: Forms 18844 */ 18845 18846var _interopRequireDefault = __webpack_require__(0); 18847 18848var _slicedToArray2 = _interopRequireDefault(__webpack_require__(320)); 18849 18850var Webflow = __webpack_require__(5); 18851 18852Webflow.define('forms', module.exports = function ($, _) { 18853 var api = {}; 18854 var $doc = $(document); 18855 var $forms; 18856 var loc = window.location; 18857 var retro = window.XDomainRequest && !window.atob; 18858 var namespace = '.w-form'; 18859 var siteId; 18860 var emailField = /e(-)?mail/i; 18861 var emailValue = /^\S+@\S+$/; 18862 var alert = window.alert; 18863 var inApp = Webflow.env(); 18864 var listening; 18865 var formUrl; 18866 var signFileUrl; // MailChimp domains: list-manage.com + mirrors 18867 18868 var chimpRegex = /list-manage[1-9]?.com/i; 18869 18870 var disconnected = _.debounce(function () { 18871 alert('Oops! This page has improperly configured forms. Please contact your website administrator to fix this issue.'); 18872 }, 100); 18873 18874 api.ready = api.design = api.preview = function () { 18875 // Init forms 18876 init(); // Wire document events on published site only once 18877 18878 if (!inApp && !listening) { 18879 addListeners(); 18880 } 18881 }; 18882 18883 function init() { 18884 siteId = $('html').attr('data-wf-site'); 18885 formUrl = "https://webflow.com" + '/api/v1/form/' + siteId; // Work around same-protocol IE XDR limitation - without this IE9 and below forms won't submit 18886 18887 if (retro && formUrl.indexOf("https://webflow.com") >= 0) { 18888 formUrl = formUrl.replace("https://webflow.com", "http://formdata.webflow.com"); 18889 } 18890 18891 signFileUrl = "".concat(formUrl, "/signFile"); 18892 $forms = $(namespace + ' form'); 18893 18894 if (!$forms.length) { 18895 return; 18896 } 18897 18898 $forms.each(build); 18899 } 18900 18901 function build(i, el) { 18902 // Store form state using namespace 18903 var $el = $(el); 18904 var data = $.data(el, namespace); 18905 18906 if (!data) { 18907 data = $.data(el, namespace, { 18908 form: $el 18909 }); 18910 } // data.form 18911 18912 18913 reset(data); 18914 var wrap = $el.closest('div.w-form'); 18915 data.done = wrap.find('> .w-form-done'); 18916 data.fail = wrap.find('> .w-form-fail'); 18917 data.fileUploads = wrap.find('.w-file-upload'); 18918 data.fileUploads.each(function (j) { 18919 initFileUpload(j, data); 18920 }); 18921 var action = data.action = $el.attr('action'); 18922 data.handler = null; 18923 data.redirect = $el.attr('data-redirect'); // MailChimp form 18924 18925 if (chimpRegex.test(action)) { 18926 data.handler = submitMailChimp; 18927 return; 18928 } // Custom form action 18929 18930 18931 if (action) { 18932 return; 18933 } // Webflow forms for hosting accounts 18934 18935 18936 if (siteId) { 18937 data.handler = typeof hostedSubmitWebflow === 'function' ? hostedSubmitWebflow : exportedSubmitWebflow; 18938 return; 18939 } // Alert for disconnected Webflow forms 18940 18941 18942 disconnected(); 18943 } 18944 18945 function addListeners() { 18946 listening = true; // Handle form submission for Webflow forms 18947 18948 $doc.on('submit', namespace + ' form', function (evt) { 18949 var data = $.data(this, namespace); 18950 18951 if (data.handler) { 18952 data.evt = evt; 18953 data.handler(data); 18954 } 18955 }); // handle checked ui for custom checkbox and radio button 18956 18957 var CHECKBOX_CLASS_NAME = '.w-checkbox-input'; 18958 var RADIO_INPUT_CLASS_NAME = '.w-radio-input'; 18959 var CHECKED_CLASS = 'w--redirected-checked'; 18960 var FOCUSED_CLASS = 'w--redirected-focus'; 18961 var CUSTOM_CONTROLS = [['checkbox', CHECKBOX_CLASS_NAME], ['radio', RADIO_INPUT_CLASS_NAME]]; 18962 $doc.on('change', namespace + " form input[type=\"checkbox\"]:not(" + CHECKBOX_CLASS_NAME + ')', function (evt) { 18963 $(evt.target).siblings(CHECKBOX_CLASS_NAME).toggleClass(CHECKED_CLASS); 18964 }); 18965 $doc.on('change', namespace + " form input[type=\"radio\"]", function (evt) { 18966 $("input[name=\"".concat(evt.target.name, "\"]:not(").concat(CHECKBOX_CLASS_NAME, ")")).map(function (i, el) { 18967 return $(el).siblings(RADIO_INPUT_CLASS_NAME).removeClass(CHECKED_CLASS); 18968 }); 18969 var $target = $(evt.target); 18970 18971 if (!$target.hasClass('w-radio-input')) { 18972 $target.siblings(RADIO_INPUT_CLASS_NAME).addClass(CHECKED_CLASS); 18973 } 18974 }); 18975 CUSTOM_CONTROLS.forEach(function (_ref) { 18976 var _ref2 = (0, _slicedToArray2["default"])(_ref, 2), 18977 controlType = _ref2[0], 18978 customControlClassName = _ref2[1]; 18979 18980 $doc.on('focus', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18981 $(evt.target).siblings(customControlClassName).addClass(FOCUSED_CLASS); 18982 }); 18983 $doc.on('blur', namespace + " form input[type=\"".concat(controlType, "\"]:not(") + customControlClassName + ')', function (evt) { 18984 $(evt.target).siblings(customControlClassName).removeClass(FOCUSED_CLASS); 18985 }); 18986 }); 18987 } // Reset data common to all submit handlers 18988 18989 18990 function reset(data) { 18991 var btn = data.btn = data.form.find(':input[type="submit"]'); 18992 data.wait = data.btn.attr('data-wait') || null; 18993 data.success = false;
18994 btn.prop('disabled', false); 18995 data.label && btn.val(data.label); 18996 } // Disable submit button 18997 18998 18999 function disableBtn(data) { 19000 var btn = data.btn; 19001 var wait = data.wait; 19002 btn.prop('disabled', true); // Show wait text and store previous label 19003 19004 if (wait) { 19005 data.label = btn.val(); 19006 btn.val(wait); 19007 } 19008 } // Find form fields, validate, and set value pairs 19009 19010 19011 function findFields(form, result) { 19012 var status = null; 19013 result = result || {}; // The ":input" selector is a jQuery shortcut to select all inputs, selects, textareas 19014 19015 form.find(':input:not([type="submit"]):not([type="file"])').each(function (i, el) { 19016 var field = $(el); 19017 var type = field.attr('type'); 19018 var name = field.attr('data-name') || field.attr('name') || 'Field ' + (i + 1); 19019 var value = field.val(); 19020 19021 if (type === 'checkbox') { 19022 value = field.is(':checked'); 19023 } else if (type === 'radio') { 19024 // Radio group value already processed 19025 if (result[name] === null || typeof result[name] === 'string') { 19026 return; 19027 } 19028 19029 value = form.find('input[name="' + field.attr('name') + '"]:checked').val() || null; 19030 } 19031 19032 if (typeof value === 'string') { 19033 value = $.trim(value); 19034 } 19035 19036 result[name] = value; 19037 status = status || getStatus(field, type, name, value); 19038 }); 19039 return status; 19040 } 19041 19042 function findFileUploads(form) { 19043 var result = {}; 19044 form.find(':input[type="file"]').each(function (i, el) { 19045 var field = $(el); 19046 var name = field.attr('data-name') || field.attr('name') || 'File ' + (i + 1); 19047 var value = field.attr('data-value'); 19048 19049 if (typeof value === 'string') { 19050 value = $.trim(value); 19051 } 19052 19053 result[name] = value; 19054 }); 19055 return result; 19056 } 19057 19058 function getStatus(field, type, name, value) { 19059 var status = null; 19060 19061 if (type === 'password') { 19062 status = 'Passwords cannot be submitted.'; 19063 } else if (field.attr('required')) { 19064 if (!value) { 19065 status = 'Please fill out the required field: ' + name; 19066 } else if (emailField.test(field.attr('type'))) { 19067 if (!emailValue.test(value)) { 19068 status = 'Please enter a valid email address for: ' + name; 19069 } 19070 } 19071 } else if (name === 'g-recaptcha-response' && !value) { 19072 status = 'Please confirm youâre not a robot.'; 19073 } 19074 19075 return status; 19076 } 19077 19078 function exportedSubmitWebflow(data) { 19079 preventDefault(data); 19080 afterSubmit(data); 19081 } // Submit form to MailChimp 19082 19083 19084 function submitMailChimp(data) { 19085 reset(data); 19086 var form = data.form; 19087 var payload = {}; // Skip Ajax submission if http/s mismatch, fallback to POST instead 19088 19089 if (/^https/.test(loc.href) && !/^https/.test(data.action)) { 19090 form.attr('method', 'post'); 19091 return; 19092 } 19093 19094 preventDefault(data); // Find & populate all fields 19095 19096 var status = findFields(form, payload); 19097 19098 if (status) { 19099 return alert(status); 19100 } // Disable submit button 19101 19102 19103 disableBtn(data); // Use special format for MailChimp params 19104 19105 var fullName; 19106 19107 _.each(payload, function (value, key) { 19108 if (emailField.test(key)) { 19109 payload.EMAIL = value; 19110 } 19111 19112 if (/^((full[ _-]?)?name)$/i.test(key)) { 19113 fullName = value; 19114 } 19115 19116 if (/^(first[ _-]?name)$/i.test(key)) { 19117 payload.FNAME = value; 19118 } 19119 19120 if (/^(last[ _-]?name)$/i.test(key)) { 19121 payload.LNAME = value; 19122 } 19123 }); 19124 19125 if (fullName && !payload.FNAME) { 19126 fullName = fullName.split(' '); 19127 payload.FNAME = fullName[0]; 19128 payload.LNAME = payload.LNAME || fullName[1]; 19129 } // Use the (undocumented) MailChimp jsonp api 19130 19131 19132 var url = data.action.replace('/post?', '/post-json?') + '&c=?'; // Add special param to prevent bot signups 19133 19134 var userId = url.indexOf('u=') + 2; 19135 userId = url.substring(userId, url.indexOf('&', userId)); 19136 var listId = url.indexOf('id=') + 3; 19137 listId = url.substring(listId, url.indexOf('&', listId)); 19138 payload['b_' + userId + '_' + listId] = ''; 19139 $.ajax({ 19140 url: url, 19141 data: payload, 19142 dataType: 'jsonp' 19143 }).done(function (resp) { 19144 data.success = resp.result === 'success' || /already/.test(resp.msg); 19145 19146 if (!data.success) { 19147 console.info('MailChimp error: ' + resp.msg); 19148 } 19149 19150 afterSubmit(data); 19151 }).fail(function () { 19152 afterSubmit(data); 19153 }); 19154 } // Common callback which runs after all Ajax submissions 19155 19156 19157 function afterSubmit(data) { 19158 var form = data.form; 19159 var redirect = data.redirect; 19160 var success = data.success; // Redirect to a success url if defined 19161 19162 if (success && redirect) { 19163 Webflow.location(redirect); 19164 return; 19165 } // Show or hide status divs 19166 19167 19168 data.done.toggle(success); 19169 data.fail.toggle(!success); // Hide form on success 19170 19171 form.toggle(!success); // Reset data and enable submit button 19172 19173 reset(data); 19174 } 19175 19176 function preventDefault(data) { 19177 data.evt && data.evt.preventDefault(); 19178 data.evt = null; 19179 } 19180 19181 function initFileUpload(i, form) { 19182 if (!form.fileUploads || !form.fileUploads[i]) { 19183 return; 19184 } 19185 19186 var file; 19187 var $el = $(form.fileUploads[i]); 19188 var $defaultWrap = $el.find('> .w-file-upload-default'); 19189 var $uploadingWrap = $el.find('> .w-file-upload-uploading'); 19190 var $successWrap = $el.find('> .w-file-upload-success'); 19191 var $errorWrap = $el.find('> .w-file-upload-error'); 19192 var $input = $defaultWrap.find('.w-file-upload-input'); 19193 var $label = $defaultWrap.find('.w-file-upload-label'); 19194 var $labelChildren = $label.children(); 19195 var $errorMsgEl = $errorWrap.find('.w-file-upload-error-msg'); 19196 var $fileEl = $successWrap.find('.w-file-upload-file'); 19197 var $removeEl = $successWrap.find('.w-file-remove-link'); 19198 var $fileNameEl = $fileEl.find('.w-file-upload-file-name'); 19199 var sizeErrMsg = $errorMsgEl.attr('data-w-size-error'); 19200 var typeErrMsg = $errorMsgEl.attr('data-w-type-error'); 19201 var genericErrMsg = $errorMsgEl.attr('data-w-generic-error'); 19202 19203 if (!inApp) { 19204 $removeEl.on('click', function () { 19205 $input.removeAttr('data-value'); 19206 $input.val(''); 19207 $fileNameEl.html(''); 19208 $defaultWrap.toggle(true); 19209 $successWrap.toggle(false); 19210 }); 19211 $input.on('change', function (e) { 19212 file = e.target && e.target.files && e.target.files[0]; 19213 19214 if (!file) { 19215 return; 19216 } // Show uploading 19217 19218 19219 $defaultWrap.toggle(false); 19220 $errorWrap.toggle(false); 19221 $uploadingWrap.toggle(true); // Set filename 19222 19223 $fileNameEl.text(file.name); // Disable submit button 19224 19225 if (!isUploading()) { 19226 disableBtn(form); 19227 } 19228 19229 form.fileUploads[i].uploading = true; 19230 signFile(file, afterSign); 19231 }); // Setting input width 1px and height equal label 19232 // This is so the browser required error will show up 19233 19234 var height = $label.outerHeight(); 19235 $input.height(height); 19236 $input.width(1); 19237 } else { 19238 $input.on('click', function (e) { 19239 e.preventDefault(); 19240 }); 19241 $label.on('click', function (e) { 19242 e.preventDefault(); 19243 }); 19244 $labelChildren.on('click', function (e) { 19245 e.preventDefault(); 19246 }); 19247 } 19248 19249 function parseError(err) { 19250 var errorMsg = err.responseJSON && err.responseJSON.msg; 19251 var userError = genericErrMsg; 19252 19253 if (typeof errorMsg === 'string' && errorMsg.indexOf('InvalidFileTypeError') === 0) { 19254 userError = typeErrMsg; 19255 } else if (typeof errorMsg === 'string' && errorMsg.indexOf('MaxFileSizeError') === 0) { 19256 userError = sizeErrMsg; 19257 } 19258 19259 $errorMsgEl.text(userError); 19260 $input.removeAttr('data-value'); 19261 $input.val(''); 19262 $uploadingWrap.toggle(false); 19263 $defaultWrap.toggle(true); 19264 $errorWrap.toggle(true); 19265 form.fileUploads[i].uploading = false;
19266 19267 if (!isUploading()) { 19268 reset(form); 19269 } 19270 } 19271 19272 function afterSign(err, data) { 19273 if (err) { 19274 return parseError(err); 19275 } 19276 19277 var fileName = data.fileName; 19278 var postData = data.postData; 19279 var fileId = data.fileId; 19280 var s3Url = data.s3Url; 19281 $input.attr('data-value', fileId); 19282 uploadS3(s3Url, postData, file, fileName, afterUpload); 19283 } 19284 19285 function afterUpload(err) { 19286 if (err) { 19287 return parseError(err); 19288 } // Show success 19289 19290 19291 $uploadingWrap.toggle(false); 19292 $successWrap.css('display', 'inline-block'); 19293 form.fileUploads[i].uploading = false; 19294 19295 if (!isUploading()) { 19296 reset(form); 19297 } 19298 } 19299 19300 function isUploading() { 19301 var uploads = form.fileUploads && form.fileUploads.toArray() || []; 19302 return uploads.some(function (value) { 19303 return value.uploading; 19304 }); 19305 } 19306 } 19307 19308 function signFile(file, cb) { 19309 var payload = { 19310 name: file.name, 19311 size: file.size 19312 }; 19313 $.ajax({ 19314 type: 'POST', 19315 url: signFileUrl, 19316 data: payload, 19317 dataType: 'json', 19318 crossDomain: true 19319 }).done(function (data) { 19320 cb(null, data); 19321 }).fail(function (err) { 19322 cb(err); 19323 }); 19324 } 19325 19326 function uploadS3(url, data, file, fileName, cb) { 19327 var formData = new FormData(); 19328 19329 for (var k in data) { 19330 formData.append(k, data[k]); 19331 } 19332 19333 formData.append('file', file, fileName); 19334 $.ajax({ 19335 type: 'POST', 19336 url: url, 19337 data: formData, 19338 processData: false, 19339 contentType: false 19340 }).done(function () { 19341 cb(null); 19342 }).fail(function (err) { 19343 cb(err); 19344 }); 19345 } // Export module 19346 19347 19348 return api; 19349}); 19350 19351/***/ }), 19352/* 320 */ 19353/***/ (function(module, exports, __webpack_require__) { 19354 19355var arrayWithHoles = __webpack_require__(321); 19356 19357var iterableToArrayLimit = __webpack_require__(322); 19358 19359var nonIterableRest = __webpack_require__(323); 19360 19361function _slicedToArray(arr, i) { 19362 return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || nonIterableRest(); 19363} 19364 19365module.exports = _slicedToArray; 19366 19367/***/ }), 19368/* 321 */ 19369/***/ (function(module, exports) { 19370 19371function _arrayWithHoles(arr) { 19372 if (Array.isArray(arr)) return arr; 19373} 19374 19375module.exports = _arrayWithHoles; 19376 19377/***/ }), 19378/* 322 */ 19379/***/ (function(module, exports) { 19380 19381function _iterableToArrayLimit(arr, i) { 19382 var _arr = []; 19383 var _n = true; 19384 var _d = false; 19385 var _e = undefined; 19386 19387 try { 19388 for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { 19389 _arr.push(_s.value); 19390 19391 if (i && _arr.length === i) break; 19392 } 19393 } catch (err) { 19394 _d = true; 19395 _e = err; 19396 } finally { 19397 try { 19398 if (!_n && _i["return"] != null) _i["return"](); 19399 } finally { 19400 if (_d) throw _e; 19401 } 19402 } 19403 19404 return _arr; 19405} 19406 19407module.exports = _iterableToArrayLimit; 19408 19409/***/ }), 19410/* 323 */ 19411/***/ (function(module, exports) { 19412 19413function _nonIterableRest() { 19414 throw new TypeError("Invalid attempt to destructure non-iterable instance"); 19415} 19416 19417module.exports = _nonIterableRest; 19418 19419/***/ }), 19420/* 324 */ 19421/***/ (function(module, exports, __webpack_require__) { 19422 19423"use strict"; 19424 // @wf-will-never-add-flow-to-this-file 19425 19426/* global document window */ 19427 19428/* eslint-disable no-var */ 19429 19430/** 19431 * Webflow: Tabs component 19432 */ 19433 19434var Webflow = __webpack_require__(5); 19435 19436var IXEvents = __webpack_require__(38); 19437 19438Webflow.define('tabs', module.exports = function ($) { 19439 var api = {}; 19440 var tram = $.tram; 19441 var $doc = $(document); 19442 var $tabs; 19443 var design; 19444 var env = Webflow.env; 19445 var safari = env.safari; 19446 var inApp = env(); 19447 var tabAttr = 'data-w-tab'; 19448 var paneAttr = 'data-w-pane'; 19449 var namespace = '.w-tabs'; 19450 var linkCurrent = 'w--current'; 19451 var tabActive = 'w--tab-active'; 19452 var ix = IXEvents.triggers; 19453 var inRedraw = false; // ----------------------------------- 19454 // Module methods 19455 19456 api.ready = api.design = api.preview = init; 19457 19458 api.redraw = function () { 19459 inRedraw = true; 19460 init(); 19461 inRedraw = false; 19462 }; 19463 19464 api.destroy = function () { 19465 $tabs = $doc.find(namespace); 19466 19467 if (!$tabs.length) { 19468 return; 19469 } 19470 19471 $tabs.each(resetIX); 19472 removeListeners(); 19473 }; // ----------------------------------- 19474 // Private methods 19475 19476
19477 function init() { 19478 design = inApp && Webflow.env('design'); // Find all instances on the page 19479 19480 $tabs = $doc.find(namespace); 19481 19482 if (!$tabs.length) { 19483 return; 19484 } 19485 19486 $tabs.each(build); 19487 19488 if (Webflow.env('preview') && !inRedraw) { 19489 $tabs.each(resetIX); 19490 } 19491 19492 removeListeners(); 19493 addListeners(); 19494 } 19495 19496 function removeListeners() { 19497 Webflow.redraw.off(api.redraw); 19498 } 19499 19500 function addListeners() { 19501 Webflow.redraw.on(api.redraw); 19502 } 19503 19504 function resetIX(i, el) { 19505 var data = $.data(el, namespace); 19506 19507 if (!data) { 19508 return; 19509 } 19510 19511 data.links && data.links.each(ix.reset); 19512 data.panes && data.panes.each(ix.reset); 19513 } 19514 19515 function build(i, el) { 19516 var widgetHash = namespace.substr(1) + '-' + i; 19517 var $el = $(el); // Store state in data 19518 19519 var data = $.data(el, namespace); 19520 19521 if (!data) { 19522 data = $.data(el, namespace, { 19523 el: $el, 19524 config: {} 19525 }); 19526 } 19527 19528 data.current = null; 19529 data.tabIdentifier = widgetHash + '-' + tabAttr; 19530 data.paneIdentifier = widgetHash + '-' + paneAttr; 19531 data.menu = $el.children('.w-tab-menu'); 19532 data.links = data.menu.children('.w-tab-link'); 19533 data.content = $el.children('.w-tab-content'); 19534 data.panes = data.content.children('.w-tab-pane'); // Remove old events 19535 19536 data.el.off(namespace); 19537 data.links.off(namespace); // This role is necessary in the ARIA spec 19538 19539 data.menu.attr('role', 'tablist'); // Set all tabs unfocusable 19540 19541 data.links.attr('tabindex', '-1'); // Set config from data attributes 19542 19543 configure(data); // Wire up events when not in design mode 19544 19545 if (!design) { 19546 data.links.on('click' + namespace, linkSelect(data)); 19547 data.links.on('keydown' + namespace, handleLinkKeydown(data)); // Trigger first intro event from current tab 19548 19549 var $link = data.links.filter('.' + linkCurrent); 19550 var tab = $link.attr(tabAttr); 19551 tab && changeTab(data, { 19552 tab: tab, 19553 immediate: true 19554 }); 19555 } 19556 } 19557 19558 function configure(data) { 19559 var config = {}; // Set config options from data attributes 19560 19561 config.easing = data.el.attr('data-easing') || 'ease'; 19562 var intro = parseInt(data.el.attr('data-duration-in'), 10); // eslint-disable-next-line no-self-compare 19563 19564 intro = config.intro = intro === intro ? intro : 0; 19565 var outro = parseInt(data.el.attr('data-duration-out'), 10); // eslint-disable-next-line no-self-compare 19566 19567 outro = config.outro = outro === outro ? outro : 0; 19568 config.immediate = !intro && !outro; // Store config in data 19569 19570 data.config = config; 19571 } 19572 19573 function getActiveTabIdx(data) { 19574 var tab = data.current; 19575 return Array.prototype.findIndex.call(data.links, function (t) { 19576 return t.getAttribute(tabAttr) === tab; 19577 }, null); 19578 } 19579 19580 function linkSelect(data) { 19581 return function (evt) { 19582 evt.preventDefault(); 19583 var tab = evt.currentTarget.getAttribute(tabAttr); 19584 tab && changeTab(data, { 19585 tab: tab 19586 }); 19587 }; 19588 } 19589 19590 function handleLinkKeydown(data) { 19591 return function (evt) { 19592 var currentIdx = getActiveTabIdx(data); 19593 var keyName = evt.key; 19594 var keyMap = { 19595 ArrowLeft: currentIdx - 1, 19596 ArrowUp: currentIdx - 1, 19597 ArrowRight: currentIdx + 1, 19598 ArrowDown: currentIdx + 1, 19599 End: data.links.length - 1, 19600 Home: 0 19601 }; // Bail out of function if this key is not 19602 // involved in tab management 19603 19604 if (!(keyName in keyMap)) return; 19605 evt.preventDefault(); 19606 var nextIdx = keyMap[keyName]; // go back to end of tabs if we wrap past the start 19607 19608 if (nextIdx === -1) { 19609 nextIdx = data.links.length - 1; 19610 } // go back to start if we wrap past the last tab 19611 19612 19613 if (nextIdx === data.links.length) { 19614 nextIdx = 0; 19615 } 19616 19617 var tabEl = data.links[nextIdx]; 19618 var tab = tabEl.getAttribute(tabAttr); 19619 tab && changeTab(data, { 19620 tab: tab 19621 }); 19622 }; 19623 } 19624 19625 function changeTab(data, options) { 19626 options = options || {}; 19627 var config = data.config; 19628 var easing = config.easing; 19629 var tab = options.tab; // Don't select the same tab twice 19630 19631 if (tab === data.current) { 19632 return; 19633 } 19634 19635 data.current = tab; 19636 /** 19637 * The currently active tab. 19638 * Will be referenced to manage focus after 19639 * TabLink attributes are changed 19640 * @type {HTMLAnchorElement} 19641 */ 19642 19643 var currentTab; // Select the current link 19644 19645 data.links.each(function (i, el) { 19646 var $el = $(el); // Add important attributes at build time. 19647 19648 if (options.immediate || config.immediate) { 19649 // Store corresponding pane for reference. 19650 var pane = data.panes[i]; // IDs are necessary for ARIA relationships, 19651 // so if the user did not create one, we create one 19652 // using our generated identifier 19653 19654 if (!el.id) { 19655 el.id = data.tabIdentifier + '-' + i; 19656 } 19657 19658 if (!pane.id) { 19659 pane.id = data.paneIdentifier + '-' + i; 19660 } 19661 19662 el.href = '#' + pane.id; // Tab elements must take this role 19663 19664 el.setAttribute('role', 'tab'); // Tab elements must reference the unique ID of the panel 19665 // that they control 19666 19667 el.setAttribute('aria-controls', pane.id); // Tab elements must report that they are not selected 19668 // by default 19669 19670 el.setAttribute('aria-selected', 'false'); // Panes must take on the `Tabpanel` role 19671 19672 pane.setAttribute('role', 'tabpanel'); // Elements with tabpanel role must be labelled by 19673 // their controlling tab 19674 19675 pane.setAttribute('aria-labelledby', el.id); 19676 } 19677 19678 if (el.getAttribute(tabAttr) === tab) { 19679 // This is the current tab. Store it. 19680 currentTab = el; 19681 $el.addClass(linkCurrent).removeAttr('tabindex').attr({ 19682 'aria-selected': 'true' 19683 }).each(ix.intro); 19684 } else if ($el.hasClass(linkCurrent)) { 19685 $el.removeClass(linkCurrent).attr({ 19686 tabindex: '-1', 19687 'aria-selected': 'false' 19688 }).each(ix.outro); 19689 } 19690 }); // Find the new tab panes and keep track of previous 19691 19692 var targets = []; 19693 var previous = []; 19694 data.panes.each(function (i, el) { 19695 var $el = $(el); 19696 19697 if (el.getAttribute(tabAttr) === tab) { 19698 targets.push(el); 19699 } else if ($el.hasClass(tabActive)) { 19700 previous.push(el); 19701 } 19702 }); 19703 var $targets = $(targets); 19704 var $previous = $(previous); // Switch tabs immediately and bypass transitions 19705 19706 if (options.immediate || config.immediate) { 19707 $targets.addClass(tabActive).each(ix.intro); 19708 $previous.removeClass(tabActive); // Redraw to benefit components in the hidden tab pane 19709 // But only if not currently in the middle of a redraw 19710 19711 if (!inRedraw) { 19712 Webflow.redraw.up(); 19713 } 19714 19715 return; 19716 } // Focus if this is not the on-page-load call to `changeTab` 19717 else { 19718 // Backwards compatible hack to prevent focus from scrolling 19719 var x = window.scrollX; 19720 var y = window.scrollY; 19721 currentTab.focus(); 19722 window.scrollTo(x, y); 19723 } // Fade out the currently active tab before intro 19724 19725 19726 if ($previous.length && config.outro) { 19727 $previous.each(ix.outro); 19728 tram($previous).add('opacity ' + config.outro + 'ms ' + easing, { 19729 fallback: safari 19730 }).start({ 19731 opacity: 0 19732 }).then(function () { 19733 return fadeIn(config, $previous, $targets); 19734 }); 19735 } else { 19736 // Skip the outro and play intro 19737 fadeIn(config, $previous, $targets); 19738 } 19739 } // Fade in the new target 19740 19741 19742 function fadeIn(config, $previous, $targets) { 19743 // Clear previous active class + styles touched by tram
19744 // We cannot remove the whole inline style because it could be dynamically bound 19745 $previous.removeClass(tabActive).css({ 19746 opacity: '', 19747 transition: '', 19748 transform: '', 19749 width: '', 19750 height: '' 19751 }); // Add active class to new target 19752 19753 $targets.addClass(tabActive).each(ix.intro); 19754 Webflow.redraw.up(); // Set opacity immediately if intro is zero 19755 19756 if (!config.intro) { 19757 return tram($targets).set({ 19758 opacity: 1 19759 }); 19760 } // Otherwise fade in opacity 19761 19762 19763 tram($targets).set({ 19764 opacity: 0 19765 }).redraw().add('opacity ' + config.intro + 'ms ' + config.easing, { 19766 fallback: safari 19767 }).start({ 19768 opacity: 1 19769 }); 19770 } // Export module 19771 19772 19773 return api; 19774}); 19775 19776/***/ }) 19777/******/ ]);/** 19778 * ---------------------------------------------------------------------- 19779 * Webflow: Interactions: Init 19780 */ 19781Webflow.require('ix').init([ 19782 {"slug":"new-interaction","name":"New Interaction","value":{"style":{},"triggers":[]}}, 19783 {"slug":"new-interaction-2","name":"New Interaction 2","value":{"style":{"x":"0px","y":"0px","z":"0px"},"triggers":[]}} 19784]); 19785/** 19786 * ---------------------------------------------------------------------- 19787 * Webflow: Interactions 2.0: Init 19788 */ 19789Webflow.require('ix2').init( 19790{"events":{"e-19":{"id":"e-19","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-20"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"bde30dfc-a349-bf24-bdaf-6a4ced02f0de"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1546785751025},"e-31":{"id":"e-31","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-2","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-32"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dd"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1546953678750},"e-33":{"id":"e-33","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-10","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-34"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3e5"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1546954278207},"e-51":{"id":"e-51","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-17","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-52"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|c3987383-3f43-2b43-4b39-6ba0585f9bd7"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1548171773377},"e-53":{"id":"e-53","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-17","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-54"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|6b657b53-e30e-36ad-4112-2fa50313e5d8"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1548172098507},"e-67":{"id":"e-67","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-25","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-68"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|c51e394f-630e-98ae-078c-178d45f89eec"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1555587691255},"e-69":{"id":"e-69","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-26","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-70"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|21a2fd8c-2113-f193-cd07-953c91073a5e"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1555595959129},"e-81":{"id":"e-81","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-27","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-82"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|dfcb1b98-886f-4450-079d-2aa23d0070eb"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1559446698754},"e-83":{"id":"e-83","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-10","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-84"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3e6"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1563548644622},"e-87":{"id":"e-87","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-23","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-88"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc9f4772f9b0a|bb3b63e6-b36d-9b29-f234-8def5b24b78d"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1565620814675},"e-97":{"id":"e-97","name":"","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-98"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f64bf66be3bc939842f9b05"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1565625467869},"e-131":{"id":"e-131","name":"","eventTypeId":"PAGE_START","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-132"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"PAGE","styleBlockIds":[],"id":"5f64bf66be3bc968202f9b06"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1578922389151},"e-155":{"id":"e-155","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-44","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-156"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc9e1072f9afe|c3987383-3f43-2b43-4b39-6ba0585f9bd7"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-157":{"id":"e-157","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-44","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-158"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc9e1072f9afe|6b657b53-e30e-36ad-4112-2fa50313e5d8"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-169":{"id":"e-169","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-48","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-170"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"
197901309fcd0-e371-ad54-af8e-b623990be159"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-171":{"id":"e-171","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-49","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-172"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"1309fcd0-e371-ad54-af8e-b623990be157"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-173":{"id":"e-173","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-50","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-174"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"1309fcd0-e371-ad54-af8e-b623990be15b"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-174":{"id":"e-174","name":"","eventTypeId":"MOUSE_SECOND_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-51","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-173"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"1309fcd0-e371-ad54-af8e-b623990be15b"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584106687903},"e-183":{"id":"e-183","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-55","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-184"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc9fb372f9b07|c3987383-3f43-2b43-4b39-6ba0585f9bd7"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584623981250},"e-185":{"id":"e-185","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-55","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-186"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc9fb372f9b07|6b657b53-e30e-36ad-4112-2fa50313e5d8"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1584623981250},"e-195":{"id":"e-195","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-61","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-196"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"c59c2c63-8431-81f4-4d9e-d92a60ab3e5c"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1587869259339},"e-205":{"id":"e-205","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-206"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|fce87dfc-d8ba-c1b7-681b-a4f7f0876c40"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1587875923426},"e-207":{"id":"e-207","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-208"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc968202f9b06|579c2665-a1d5-8c6c-1e74-8e181f35ef32"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1587876338604},"e-211":{"id":"e-211","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-62","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-212"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc976122f9b02|4e355f9b-0f4a-1d20-6b50-c2b760bc5471"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1589086148759},"e-213":{"id":"e-213","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-62","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-214"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc968202f9b06|5e324415-b977-7964-f4cf-d32487cba0e1"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1589086735717},"e-217":{"id":"e-217","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-6","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-218"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc939842f9b05|414083b0-e66a-55d1-c166-6a6038d5561e"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1593746853091},"e-219":{"id":"e-219","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-62","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-220"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"5f64bf66be3bc939842f9b05|414083b0-e66a-55d1-c166-6a6038d55620"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1593746853091},"e-221":{"id":"e-221","name":"","eventTypeId":"MOUSE_CLICK","action":{"id":"","actionTypeId":"GENERAL_START_ACTION","config":{"delay":0,"easing":"","duration":0,"actionListId":"a-63","affectedElements":{},"playInReverse":false,"autoStopEventId":"e-222"}},"mediaQueries":["main","medium","small","tiny"],"target":{"appliesTo":"ELEMENT","styleBlockIds":[],"id":"
197901309fcd0-e371-ad54-af8e-b623990be131"},"targets":[],"config":{"loop":false,"playInReverse":false,"scrollOffsetValue":null,"scrollOffsetUnit":null,"delay":null,"direction":null,"effectIn":null},"createdOn":1600436043381}},"actionLists":{"a-6":{"id":"a-6","title":"select steem","actionItemGroups":[{"actionItems":[{"id":"a-6-n-5","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}},{"id":"a-6-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}}]},{"actionItems":[{"id":"a-6-n-11","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-6-n-12","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"7c8cf347","target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.85}}]},{"actionItems":[{"id":"a-6-n-10","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-6-n-9","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"8ebed8c7","target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7}}]}],"createdOn":1546707675882,"useFirstGroupAsInitialState":false},"a-2":{"id":"a-2","title":"close login","actionItemGroups":[{"actionItems":[{"id":"a-2-n-10","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":200,"target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dc"},"value":0,"unit":""}},{"id":"a-2-n-11","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":250,"target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3db"},"value":1,"unit":""}}]},{"actionItems":[{"id":"a-2-n-9","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3db"}}},{"id":"a-2-n-8","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dc"}}}]}],"createdOn":1542620358636,"useFirstGroupAsInitialState":false},"a-10":{"id":"a-10","title":"close login - success","actionItemGroups":[{"actionItems":[{"id":"a-10-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"easeOut","duration":100,"target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3db"},"value":0,"unit":""}},{"id":"a-10-n-2","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"easeOut","duration":100,"target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dc"},"yValue":15,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-10-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"easeOut","duration":100,"target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dc"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-10-n-4","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3dc"}}},{"id":"a-10-n-5","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"44d2a0f4-1dff-e5f1-f39e-a04fe0fcd3db"}}},{"id":"a-10-n-9","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"1309fcd0-e371-ad54-af8e-b623990be159"}}},{"id":"a-10-n-10","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"id":"1309fcd0-e371-ad54-af8e-b623990be150"}}}]}],"createdOn":1542620358636,"useFirstGroupAsInitialState":false},"a-17":{"id":"a-17","title":"close keychain popup","actionItemGroups":[{"actionItems":[{"id":"a-17-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":200,"target":{"id":"5f64bf66be3bc976122f9b02|7b04eca5-b9f5-2e1a-2526-954877b9b637"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-17-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"5f64bf66be3bc976122f9b02|7b04eca5-b9f5-2e1a-2526-954877b9b637"}}}]}],"createdOn":1548171784580,"useFirstGroupAsInitialState":false},"a-25":{"id":"a-25","title":"select below","actionItemGroups":[{"actionItems":[{"id":"a-25-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"873765ac","target":{"id":"5f64bf66be3bc976122f9b02|c51e394f-630e-98ae-078c-178d45f89eec"},"rValue":35,"gValue":47,"bValue":52,"aValue":1}},{"id":"a-25-n-5","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"9bddd589","target":{"id":"5f64bf66be3bc976122f9b02|c51e394f-630e-98ae-078c-178d45f89eec"},"rValue":249,"gValue":170,"bValue":51,"aValue":1}}]},{"actionItems":[{"id":"a-25-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"8ebed8c7","target":{"useEventTarget":"SIBLINGS","selector":".below-above-btn","selectorGuids":["4ca69a7f-6256-cd55-359e-53ae3753a9c9"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7000000000000003}},{"id":"a-25-n-6","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"873765ac","target":{"useEventTarget":"SIBLINGS","selector":".below-above-btn","selectorGuids":["4ca69a7f-6256-cd55-359e-53ae3753a9c9"]},"rValue":35,"gValue":47,"bValue":52,"aValue":1}}]}],"createdOn":1555587711991,"useFirstGroupAsInitialState":false},"a-26":{"id":"a-26","title":"select above","actionItemGroups":[{"actionItems":[{"id":"a-26-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"873765ac","target":{"id":"5f64bf66be3bc976122f9b02|21a2fd8c-2113-f193-cd07-953c91073a5e"},"rValue":35,"gValue":47,"bValue":52,"aValue":1}},{"id":"a-26-n-5","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"9bddd589","target":{"id":"5f64bf66be3bc976122f9b02|21a2fd8c-2113-f193-cd07-953c91073a5e"},"rValue":249,"gValue":170,"bValue":51,"aValue":1}}]},{"actionItems":[{"id":"a-26-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"8ebed8c7","target":{"useEventTarget":"SIBLINGS","selector":".below-above-btn","selectorGuids":["4ca69a7f-6256-cd55-359e-53ae3753a9c9"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7000000000000003}},{"id":"a-26-n-6","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":200,"globalSwatchId":"873765ac","target":{"useEventTarget":"SIBLINGS","selector":".below-above-btn","selectorGuids":["4ca69a7f-6256-cd55-359e-53ae3753a9c9"]},"rValue":35,"gValue":47,"bValue":52,"aValue":1}}]}],"createdOn":1555595963499,"useFirstGroupAsInitialState":false},"a-27":{"id":"a-27","title":"select token","actionItemGroups":[{"actionItems":[{"id":"a-27-n-5","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}},{"id":"a-27-n-6","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}}]},{"actionItems":[{"id":"a-27-n-4","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-27-n-3","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"8ebed8c7","target":{"selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7000000000000003}}]},{"actionItems":[{"id":"a-27-n-7","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-27-n-8","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"8ebed8c7","target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7}}]}],"createdOn":1558325481759,"useFirstGroupAsInitialState":false},"a-23":{"id":"a-23","title":"switch token page","actionItemGroups":[{"actionItems":[{"id":"a-23-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"5f64bf66be3bc976122f9b02|43f32b0e-9df7-34e1-b639-a12daee63a44"}}},{"id":"a-23-n-8","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"id":"5f64bf66be3bc976122f9b02|85c00715-c67f-d835-7022-a88fe6d9b2ff"}}},{"id":"a-23-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5f64bf66be3bc976122f9b02|43f32b0e-9df7-34e1-b639-a12daee63a44"},"value":0,"unit":""}},{"id":"a-23-n-3","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"id":"5f64bf66be3bc976122f9b02|85c00715-c67f-d835-7022-a88fe6d9b2ff"},"value":1,"unit":""}}]},{"actionItems":[{"id":"a-23-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":200,"target":{"id":"5f64bf66be3bc976122f9b02|85c00715-c67f-d835-7022-a88fe6d9b2ff"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-23-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"id":"5f64bf66be3bc976122f9b02|43f32b0e-9df7-34e1-b639-a12daee63a44"}}},{"id":"a-23-n-6","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":200,"target":{"id":"5f64bf66be3bc976122f9b02|43f32b0e-9df7-34e1-b639-a12daee63a44"},"value":1,"unit":""}},{"id":"a-23-n-9","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"5f64bf66be3bc976122f9b02|85c00715-c67f-d835-7022-a88fe6d9b2ff"}}}]}],"createdOn":1554873590151,"useFirstGroupAsInitialState":true}
19790,"a-44":{"id":"a-44","title":"close keychain popup 2","actionItemGroups":[{"actionItems":[{"id":"a-44-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":200,"target":{"id":"5f64bf66be3bc9e1072f9afe|7b04eca5-b9f5-2e1a-2526-954877b9b637"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-44-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"5f64bf66be3bc9e1072f9afe|7b04eca5-b9f5-2e1a-2526-954877b9b637"}}}]}],"createdOn":1548171784580,"useFirstGroupAsInitialState":false},"a-48":{"id":"a-48","title":"open login 4","actionItemGroups":[{"actionItems":[{"id":"a-48-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"selector":".popup-wrapper.popup-login","selectorGuids":["6c4cad4c-28d5-fc6f-547d-3a05ccfc8181","45d41dc4-238c-a983-77b5-3a59e05682a6"]}}},{"id":"a-48-n-2","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".popup-wrapper.popup-login","selectorGuids":["6c4cad4c-28d5-fc6f-547d-3a05ccfc8181","45d41dc4-238c-a983-77b5-3a59e05682a6"]},"value":0,"unit":""}},{"id":"a-48-n-3","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"selector":".popup.popup-login","selectorGuids":["e2a3fb33-9ead-baf9-ec01-b716d7aecdbb","0dcae6fa-8060-6933-db1e-916de8af37f4"]}}},{"id":"a-48-n-4","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".popup.popup-login","selectorGuids":["e2a3fb33-9ead-baf9-ec01-b716d7aecdbb","0dcae6fa-8060-6933-db1e-916de8af37f4"]},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-48-n-5","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"selector":".popup-wrapper.popup-login","selectorGuids":["6c4cad4c-28d5-fc6f-547d-3a05ccfc8181","45d41dc4-238c-a983-77b5-3a59e05682a6"]}}},{"id":"a-48-n-6","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"selector":".popup.popup-login","selectorGuids":["e2a3fb33-9ead-baf9-ec01-b716d7aecdbb","0dcae6fa-8060-6933-db1e-916de8af37f4"]}}}]},{"actionItems":[{"id":"a-48-n-7","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".popup-wrapper.popup-login","selectorGuids":["6c4cad4c-28d5-fc6f-547d-3a05ccfc8181","45d41dc4-238c-a983-77b5-3a59e05682a6"]},"value":1,"unit":""}},{"id":"a-48-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":400,"target":{"selector":".popup.popup-login","selectorGuids":["e2a3fb33-9ead-baf9-ec01-b716d7aecdbb","0dcae6fa-8060-6933-db1e-916de8af37f4"]},"value":1,"unit":""}}]}],"createdOn":1546790608799,"useFirstGroupAsInitialState":true},"a-49":{"id":"a-49","title":"logout 4","actionItemGroups":[{"actionItems":[{"id":"a-49-n","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"id":"1309fcd0-e371-ad54-af8e-b623990be159"}}},{"id":"a-49-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"1309fcd0-e371-ad54-af8e-b623990be150"}}}]}],"createdOn":1546956617595,"useFirstGroupAsInitialState":false},"a-50":{"id":"a-50","title":"open menu 4","actionItemGroups":[{"actionItems":[{"id":"a-50-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"","duration":500,"target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]},"value":0,"unit":""}},{"id":"a-50-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]}}}]},{"actionItems":[{"id":"a-50-n-3","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-top","selectorGuids":["acaaec6a-8de1-362e-b0f2-b74f68466634"]},"zValue":-45,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-50-n-4","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-bottom","selectorGuids":["03044cf9-92ad-5829-1610-aa7e79628b8b"]}
19790,"zValue":45,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-50-n-5","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-top","selectorGuids":["acaaec6a-8de1-362e-b0f2-b74f68466634"]},"yValue":8,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-50-n-6","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-bottom","selectorGuids":["03044cf9-92ad-5829-1610-aa7e79628b8b"]},"yValue":-7,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}}]},{"actionItems":[{"id":"a-50-n-7","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"flex","target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]}}},{"id":"a-50-n-8","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]},"value":1,"unit":""}},{"id":"a-50-n-9","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":500,"globalSwatchId":"6e095db6","target":{"selector":".header-sec","selectorGuids":["536a5876-244a-2555-c3ce-83b45dc8847b"]},"rValue":22,"gValue":31,"bValue":36,"aValue":1}}]}],"createdOn":1547356067710,"useFirstGroupAsInitialState":true},"a-51":{"id":"a-51","title":"close menu 4","actionItemGroups":[{"actionItems":[{"id":"a-51-n","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-top","selectorGuids":["acaaec6a-8de1-362e-b0f2-b74f68466634"]},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-51-n-2","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-bottom","selectorGuids":["03044cf9-92ad-5829-1610-aa7e79628b8b"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-51-n-3","actionTypeId":"TRANSFORM_MOVE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-bottom","selectorGuids":["03044cf9-92ad-5829-1610-aa7e79628b8b"]},"yValue":0,"xUnit":"PX","yUnit":"PX","zUnit":"PX"}},{"id":"a-51-n-4","actionTypeId":"TRANSFORM_ROTATE","config":{"delay":0,"easing":"ease","duration":200,"target":{"selector":".line-top","selectorGuids":["acaaec6a-8de1-362e-b0f2-b74f68466634"]},"zValue":0,"xUnit":"DEG","yUnit":"DEG","zUnit":"DEG"}},{"id":"a-51-n-5","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":500,"target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]},"value":0,"unit":""}},{"id":"a-51-n-6","actionTypeId":"STYLE_BACKGROUND_COLOR","config":{"delay":0,"easing":"ease","duration":500,"globalSwatchId":"0897c9c9","target":{"selector":".header-sec","selectorGuids":["536a5876-244a-2555-c3ce-83b45dc8847b"]},"rValue":37,"gValue":52,"bValue":61,"aValue":1}}]},{"actionItems":[{"id":"a-51-n-7","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"selector":".menu-wrapper","selectorGuids":["af84950e-ca0b-743f-7ac9-5f0b405f2283"]}}}]}],"createdOn":1547356899607,"useFirstGroupAsInitialState":false},"a-55":{"id":"a-55","title":"close keychain popup 3","actionItemGroups":[{"actionItems":[{"id":"a-55-n","actionTypeId":"STYLE_OPACITY","config":{"delay":0,"easing":"ease","duration":200,"target":{"id":"5f64bf66be3bc9fb372f9b07|7b04eca5-b9f5-2e1a-2526-954877b9b637"},"value":0,"unit":""}}]},{"actionItems":[{"id":"a-55-n-2","actionTypeId":"GENERAL_DISPLAY","config":{"delay":0,"easing":"","duration":0,"value":"none","target":{"id":"5f64bf66be3bc9fb372f9b07|7b04eca5-b9f5-2e1a-2526-954877b9b637"}}}]}],"createdOn":1548171784580,"useFirstGroupAsInitialState":false},"a-61":{"id":"a-61","title":"close announcement bar on click","actionItemGroups":[{"actionItems":[{"id":"a-61-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"locked":false,"target":{"useEventTarget":"PARENT","selector":".announcement-bar","selectorGuids":["b276a990-1494-15fb-fc3e-49179d6e9dd3"]},"heightValue":36,"widthUnit":"PX","heightUnit":"PX"}}]},{"actionItems":[{"id":"a-61-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":300,"locked":false,"target":{"useEventTarget":"PARENT","selector":".announcement-bar","selectorGuids":["b276a990-1494-15fb-fc3e-49179d6e9dd3"]},"heightValue":0,"widthUnit":"PX","heightUnit":"PX"}}]}],"createdOn":1587869319130,"useFirstGroupAsInitialState":true},"a-62":{"id":"a-62","title":"select hive","actionItemGroups":[{"actionItems":[{"id":"a-62-n","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}},{"id":"a-62-n-2","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":200,"globalSwatchId":"9bddd589","target":{"selector":".currency.currency-btn.currency-btn-hive","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","259acdb2-fbe8-fc63-67e8-2dd9cb14de59"]},"rValue":249,"gValue":170,"bValue":51,"aValue":1}}]},{"actionItems":[{"id":"a-62-n-3","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"useEventTarget":"SIBLINGS","selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-62-n-4","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"8ebed8c7","target":{"useEventTarget":"SIBLINGS","selector":".currency.currency-btn.currency-btn-steem","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","317d7394-e4a1-b966-51c6-55c339476c80"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7}}]},{"actionItems":[{"id":"a-62-n-5","actionTypeId":"STYLE_BORDER","config":{"delay":0,"easing":"","duration":0,"target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":0,"gValue":0,"bValue":0,"aValue":0}},{"id":"a-62-n-6","actionTypeId":"STYLE_TEXT_COLOR","config":{"delay":0,"easing":"","duration":0,"globalSwatchId":"8ebed8c7","target":{"selector":".currency.currency-btn.currency-btn-epc","selectorGuids":["9fed0c9f-0546-c14e-e929-883f236e4e3a","30af9d1d-ea06-6272-7b96-fb221910285e","cc488ebf-c976-4f4c-7f48-f14e5cb9056f"]},"rValue":207,"gValue":207,"bValue":207,"aValue":0.7}}]}],"createdOn":1589086178247,"useFirstGroupAsInitialState":false},"a-63":{"id":"a-63","title":"close announcement bar on click 2","actionItemGroups":[{"actionItems":[{"id":"a-63-n","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":500,"locked":false,"target":{"useEventTarget":"PARENT","selector":".announcement-bar","selectorGuids":["b276a990-1494-15fb-fc3e-49179d6e9dd3"]},"heightValue":36,"widthUnit":"PX","heightUnit":"PX"}}]},{"actionItems":[{"id":"a-63-n-2","actionTypeId":"STYLE_SIZE","config":{"delay":0,"easing":"","duration":300,"locked":false,"target":{"useEventTarget":"PARENT","selector":".announcement-bar","selectorGuids":["b276a990-1494-15fb-fc3e-49179d6e9dd3"]},"heightValue":0,"widthUnit":"PX","heightUnit":"PX"}}]}],"createdOn":1587869319130,"useFirstGroupAsInitialState":true}},"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}]}} 19791);
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.